Remove building with NOCRYPTO option
[minix.git] / crypto / external / bsd / heimdal / dist / lib / asn1 / asn1-common.h
blobb8ac37f82bbbac844cd3d0953160de23128e00db
1 /* $NetBSD: asn1-common.h,v 1.1.1.3 2014/04/24 12:45:28 pettai Exp $ */
3 /* Id */
5 #include <stddef.h>
6 #include <time.h>
7 #include <krb5/krb5-types.h>
9 #ifndef __asn1_common_definitions__
10 #define __asn1_common_definitions__
12 typedef struct heim_integer {
13 size_t length;
14 void *data;
15 int negative;
16 } heim_integer;
18 typedef struct heim_octet_string {
19 size_t length;
20 void *data;
21 } heim_octet_string;
23 typedef char *heim_general_string;
24 typedef char *heim_utf8_string;
25 typedef struct heim_octet_string heim_printable_string;
26 typedef struct heim_octet_string heim_ia5_string;
28 typedef struct heim_bmp_string {
29 size_t length;
30 uint16_t *data;
31 } heim_bmp_string;
33 typedef struct heim_universal_string {
34 size_t length;
35 uint32_t *data;
36 } heim_universal_string;
38 typedef char *heim_visible_string;
40 typedef struct heim_oid {
41 size_t length;
42 unsigned *components;
43 } heim_oid;
45 typedef struct heim_bit_string {
46 size_t length;
47 void *data;
48 } heim_bit_string;
50 typedef struct heim_octet_string heim_any;
51 typedef struct heim_octet_string heim_any_set;
53 #define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \
54 do { \
55 (BL) = length_##T((S)); \
56 (B) = malloc((BL)); \
57 if((B) == NULL) { \
58 (R) = ENOMEM; \
59 } else { \
60 (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
61 (S), (L)); \
62 if((R) != 0) { \
63 free((B)); \
64 (B) = NULL; \
65 } \
66 } \
67 } while (0)
69 #ifdef _WIN32
70 #ifndef ASN1_LIB
71 #define ASN1EXP __declspec(dllimport)
72 #else
73 #define ASN1EXP
74 #endif
75 #define ASN1CALL __stdcall
76 #else
77 #define ASN1EXP
78 #define ASN1CALL
79 #endif
81 #endif