1 /* Generated from spnego.asn1 */
4 #ifndef __spnego_asn1_h__
5 #define __spnego_asn1_h__
10 #ifndef __asn1_common_definitions__
11 #define __asn1_common_definitions__
13 typedef struct octet_string {
18 typedef char *general_string;
25 #define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \
27 (BL) = length_##T((S)); \
32 (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
44 MechType ::= OBJECT IDENTIFIER
49 int encode_MechType(unsigned char *, size_t, const MechType *, size_t *);
50 int decode_MechType(const unsigned char *, size_t, MechType *, size_t *);
51 void free_MechType (MechType *);
52 size_t length_MechType(const MechType *);
53 int copy_MechType (const MechType *, MechType *);
57 MechTypeList ::= SEQUENCE OF MechType
60 typedef struct MechTypeList {
65 int encode_MechTypeList(unsigned char *, size_t, const MechTypeList *, size_t *);
66 int decode_MechTypeList(const unsigned char *, size_t, MechTypeList *, size_t *);
67 void free_MechTypeList (MechTypeList *);
68 size_t length_MechTypeList(const MechTypeList *);
69 int copy_MechTypeList (const MechTypeList *, MechTypeList *);
73 ContextFlags ::= BIT STRING {
84 typedef struct ContextFlags {
85 unsigned int delegFlag:1;
86 unsigned int mutualFlag:1;
87 unsigned int replayFlag:1;
88 unsigned int sequenceFlag:1;
89 unsigned int anonFlag:1;
90 unsigned int confFlag:1;
91 unsigned int integFlag:1;
95 int encode_ContextFlags(unsigned char *, size_t, const ContextFlags *, size_t *);
96 int decode_ContextFlags(const unsigned char *, size_t, ContextFlags *, size_t *);
97 void free_ContextFlags (ContextFlags *);
98 size_t length_ContextFlags(const ContextFlags *);
99 int copy_ContextFlags (const ContextFlags *, ContextFlags *);
100 unsigned ContextFlags2int(ContextFlags);
101 ContextFlags int2ContextFlags(unsigned);
102 extern struct units ContextFlags_units[];
105 NegTokenInit ::= SEQUENCE {
106 mechTypes[0] MechTypeList OPTIONAL,
107 reqFlags[1] ContextFlags OPTIONAL,
108 mechToken[2] OCTET STRING OPTIONAL,
109 mechListMIC[3] OCTET STRING OPTIONAL
113 typedef struct NegTokenInit {
114 MechTypeList *mechTypes;
115 ContextFlags *reqFlags;
116 octet_string *mechToken;
117 octet_string *mechListMIC;
120 int encode_NegTokenInit(unsigned char *, size_t, const NegTokenInit *, size_t *);
121 int decode_NegTokenInit(const unsigned char *, size_t, NegTokenInit *, size_t *);
122 void free_NegTokenInit (NegTokenInit *);
123 size_t length_NegTokenInit(const NegTokenInit *);
124 int copy_NegTokenInit (const NegTokenInit *, NegTokenInit *);
128 NegTokenTarg ::= SEQUENCE {
129 negResult[0] ENUMERATED {
131 accept_incomplete(1),
134 supportedMech[1] MechType OPTIONAL,
135 responseToken[2] OCTET STRING OPTIONAL,
136 mechListMIC[3] OCTET STRING OPTIONAL
140 typedef struct NegTokenTarg {
142 accept_completed = 0,
143 accept_incomplete = 1,
147 MechType *supportedMech;
148 octet_string *responseToken;
149 octet_string *mechListMIC;
152 int encode_NegTokenTarg(unsigned char *, size_t, const NegTokenTarg *, size_t *);
153 int decode_NegTokenTarg(const unsigned char *, size_t, NegTokenTarg *, size_t *);
154 void free_NegTokenTarg (NegTokenTarg *);
155 size_t length_NegTokenTarg(const NegTokenTarg *);
156 int copy_NegTokenTarg (const NegTokenTarg *, NegTokenTarg *);
159 #endif /* __spnego_asn1_h__ */