source: trunk/server/source4/heimdal/lib/asn1/asn1-common.h

Last change on this file was 745, checked in by Silvan Scherrer, 13 years ago

Samba Server: updated trunk to 3.6.0

File size: 2.1 KB
Line 
1/* $Id$ */
2
3#include <stddef.h>
4#include <time.h>
5#include <krb5-types.h>
6
7#ifndef __asn1_common_definitions__
8#define __asn1_common_definitions__
9
10typedef struct heim_integer {
11 size_t length;
12 void *data;
13 int negative;
14} heim_integer;
15
16typedef struct heim_octet_string {
17 size_t length;
18 void *data;
19} heim_octet_string;
20
21typedef char *heim_general_string;
22typedef char *heim_utf8_string;
23typedef struct heim_octet_string heim_printable_string;
24typedef struct heim_octet_string heim_ia5_string;
25
26typedef struct heim_bmp_string {
27 size_t length;
28 uint16_t *data;
29} heim_bmp_string;
30
31typedef struct heim_universal_string {
32 size_t length;
33 uint32_t *data;
34} heim_universal_string;
35
36typedef char *heim_visible_string;
37
38typedef struct heim_oid {
39 size_t length;
40 unsigned *components;
41} heim_oid;
42
43typedef struct heim_bit_string {
44 size_t length;
45 void *data;
46} heim_bit_string;
47
48typedef struct heim_octet_string heim_any;
49typedef struct heim_octet_string heim_any_set;
50
51#define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \
52 do { \
53 (BL) = length_##T((S)); \
54 (B) = malloc((BL)); \
55 if((B) == NULL) { \
56 (R) = ENOMEM; \
57 } else { \
58 (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
59 (S), (L)); \
60 if((R) != 0) { \
61 free((B)); \
62 (B) = NULL; \
63 } \
64 } \
65 } while (0)
66
67#ifdef _WIN32
68#ifndef ASN1_LIB
69#define ASN1EXP __declspec(dllimport)
70#else
71#define ASN1EXP
72#endif
73#define ASN1CALL __stdcall
74#else
75#define ASN1EXP
76#define ASN1CALL
77#endif
78
79#endif
Note: See TracBrowser for help on using the repository browser.