1 /* Generated from spnego.asn1 */
4 #ifndef __spnego_asn1_h__
5 #define __spnego_asn1_h__
7 #include <parse_units.h>
11 #ifndef __asn1_common_definitions__
12 #define __asn1_common_definitions__
14 typedef struct octet_string {
19 typedef char *general_string;
26 #define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \
28 (BL) = length_##T((S)); \
33 (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
45 MechType ::= OBJECT IDENTIFIER
50 int encode_MechType(unsigned char *, size_t, const MechType *, size_t *);
51 int decode_MechType(const unsigned char *, size_t, MechType *, size_t *);
52 void free_MechType (MechType *);
53 size_t length_MechType(const MechType *);
54 int copy_MechType (const MechType *, MechType *);
58 MechTypeList ::= SEQUENCE OF MechType
61 typedef struct MechTypeList {
66 int encode_MechTypeList(unsigned char *, size_t, const MechTypeList *, size_t *);
67 int decode_MechTypeList(const unsigned char *, size_t, MechTypeList *, size_t *);
68 void free_MechTypeList (MechTypeList *);
69 size_t length_MechTypeList(const MechTypeList *);
70 int copy_MechTypeList (const MechTypeList *, MechTypeList *);
74 ContextFlags ::= BIT STRING {
85 typedef struct ContextFlags {
86 unsigned int delegFlag:1;
87 unsigned int mutualFlag:1;
88 unsigned int replayFlag:1;
89 unsigned int sequenceFlag:1;
90 unsigned int anonFlag:1;
91 unsigned int confFlag:1;
92 unsigned int integFlag:1;
96 int encode_ContextFlags(unsigned char *, size_t, const ContextFlags *, size_t *);
97 int decode_ContextFlags(const unsigned char *, size_t, ContextFlags *, size_t *);
98 void free_ContextFlags (ContextFlags *);
99 size_t length_ContextFlags(const ContextFlags *);
100 int copy_ContextFlags (const ContextFlags *, ContextFlags *);
101 unsigned ContextFlags2int(ContextFlags);
102 ContextFlags int2ContextFlags(unsigned);
103 extern struct units ContextFlags_units[];
106 NegTokenInit ::= SEQUENCE {
107 mechTypes[0] MechTypeList OPTIONAL,
108 reqFlags[1] ContextFlags OPTIONAL,
109 mechToken[2] OCTET STRING OPTIONAL,
110 mechListMIC[3] OCTET STRING OPTIONAL
114 typedef struct NegTokenInit {
115 MechTypeList *mechTypes;
116 ContextFlags *reqFlags;
117 octet_string *mechToken;
118 octet_string *mechListMIC;
121 int encode_NegTokenInit(unsigned char *, size_t, const NegTokenInit *, size_t *);
122 int decode_NegTokenInit(const unsigned char *, size_t, NegTokenInit *, size_t *);
123 void free_NegTokenInit (NegTokenInit *);
124 size_t length_NegTokenInit(const NegTokenInit *);
125 int copy_NegTokenInit (const NegTokenInit *, NegTokenInit *);
129 NegTokenTarg ::= SEQUENCE {
130 negResult[0] ENUMERATED {
132 accept_incomplete(1),
135 supportedMech[1] MechType OPTIONAL,
136 responseToken[2] OCTET STRING OPTIONAL,
137 mechListMIC[3] OCTET STRING OPTIONAL
141 typedef struct NegTokenTarg {
143 accept_completed = 0,
144 accept_incomplete = 1,
148 MechType *supportedMech;
149 octet_string *responseToken;
150 octet_string *mechListMIC;
153 int encode_NegTokenTarg(unsigned char *, size_t, const NegTokenTarg *, size_t *);
154 int decode_NegTokenTarg(const unsigned char *, size_t, NegTokenTarg *, size_t *);
155 void free_NegTokenTarg (NegTokenTarg *);
156 size_t length_NegTokenTarg(const NegTokenTarg *);
157 int copy_NegTokenTarg (const NegTokenTarg *, NegTokenTarg *);
160 #endif /* __spnego_asn1_h__ */