0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2006, 2007, 2012, 2013, 2015, 2016 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic Updater/* $Id: spnego_asn1.c,v 1.4 2007/06/19 23:47:16 tbox Exp $ */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * \brief Method routines generated from SPNEGO ASN.1 module.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * See spnego_asn1.pl for details. Do not edit.
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews if((B) == NULL) { \
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews if((R) != 0) { \
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * MechType ::= OBJECT IDENTIFIER
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int encode_MechType(unsigned char *, size_t, const MechType *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int decode_MechType(const unsigned char *, size_t, MechType *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: length_MechType */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: copy_MechType */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * MechTypeList ::= SEQUENCE OF MechType
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int encode_MechTypeList(unsigned char *, size_t, const MechTypeList *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int decode_MechTypeList(const unsigned char *, size_t, MechTypeList *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: length_MechTypeList */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: copy_MechTypeList */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * ContextFlags ::= BIT STRING { delegFlag(0), mutualFlag(1), replayFlag(2),
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * sequenceFlag(3), anonFlag(4), confFlag(5), integFlag(6) }
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int encode_ContextFlags(unsigned char *, size_t, const ContextFlags *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int decode_ContextFlags(const unsigned char *, size_t, ContextFlags *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: length_ContextFlags */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: copy_ContextFlags */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: ContextFlags2int */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: int2ContextFlags */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: asn1_ContextFlags_units */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * NegTokenInit ::= SEQUENCE { mechTypes[0] MechTypeList, reqFlags[1]
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * ContextFlags OPTIONAL, mechToken[2] OCTET STRING OPTIONAL,
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * mechListMIC[3] OCTET STRING OPTIONAL }
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int encode_NegTokenInit(unsigned char *, size_t, const NegTokenInit *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int decode_NegTokenInit(const unsigned char *, size_t, NegTokenInit *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: length_NegTokenInit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: copy_NegTokenInit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * NegTokenResp ::= SEQUENCE { negState[0] ENUMERATED {
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * accept-completed(0), accept-incomplete(1), reject(2), request-mic(3) }
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * OPTIONAL, supportedMech[1] MechType OPTIONAL, responseToken[2] OCTET
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews * STRING OPTIONAL, mechListMIC[3] OCTET STRING OPTIONAL }
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int encode_NegTokenResp(unsigned char *, size_t, const NegTokenResp *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsstatic int decode_NegTokenResp(const unsigned char *, size_t, NegTokenResp *, size_t *);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: length_NegTokenResp */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused declaration: copy_NegTokenResp */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews#endif /* __asn1_h__ */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
444f2a8efd07b9b4472781fbab89208eb1c4c5f5Mark Andrews#define BACK if (e) return e; p -= l; len -= l; ret += l; POST(p); POST(len); POST(ret)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsencode_MechType(unsigned char *p, size_t len, const MechType * data, size_t * size)
444f2a8efd07b9b4472781fbab89208eb1c4c5f5Mark Andrews#define FORW if(e) goto fail; p += l; len -= l; ret += l; POST(p); POST(len); POST(ret)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsdecode_MechType(const unsigned char *p, size_t len, MechType * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: length_MechType */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: copy_MechType */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsencode_MechTypeList(unsigned char *p, size_t len, const MechTypeList * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_MechType(p, len, &(data)->val[i], &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_UNIV, CONS, UT_Sequence, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsdecode_MechTypeList(const unsigned char *p, size_t len, MechTypeList * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, ASN1_C_UNIV, CONS, UT_Sequence, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->val = realloc((data)->val, sizeof(*((data)->val)) * (data)->len);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_MechType(p, len, &(data)->val[(data)->len - 1], &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: length_MechTypeList */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: copy_MechTypeList */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsencode_ContextFlags(unsigned char *p, size_t len, const ContextFlags * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews unsigned char c = 0;
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_UNIV, PRIM, UT_BitString, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsdecode_ContextFlags(const unsigned char *p, size_t len, ContextFlags * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, ASN1_C_UNIV, PRIM, UT_BitString, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: length_ContextFlags */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: copy_ContextFlags */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: ContextFlags2int */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: int2ContextFlags */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused variable: ContextFlags_units */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: asn1_ContextFlags_units */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsencode_NegTokenInit(unsigned char *p, size_t len, const NegTokenInit * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_octet_string(p, len, (data)->mechListMIC, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 3, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_octet_string(p, len, (data)->mechToken, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 2, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_ContextFlags(p, len, (data)->reqFlags, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 1, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_MechTypeList(p, len, &(data)->mechTypes, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 0, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_UNIV, CONS, UT_Sequence, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsdecode_NegTokenInit(const unsigned char *p, size_t len, NegTokenInit * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, ASN1_C_UNIV, CONS, UT_Sequence, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 0, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_MechTypeList(p, len, &(data)->mechTypes, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 1, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->reqFlags = malloc(sizeof(*(data)->reqFlags));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_ContextFlags(p, len, (data)->reqFlags, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 2, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->mechToken = malloc(sizeof(*(data)->mechToken));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_octet_string(p, len, (data)->mechToken, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 3, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->mechListMIC = malloc(sizeof(*(data)->mechListMIC));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_octet_string(p, len, (data)->mechListMIC, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: length_NegTokenInit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: copy_NegTokenInit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsencode_NegTokenResp(unsigned char *p, size_t len, const NegTokenResp * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_octet_string(p, len, (data)->mechListMIC, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 3, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_octet_string(p, len, (data)->responseToken, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 2, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_MechType(p, len, (data)->supportedMech, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 1, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = encode_enumerated(p, len, (data)->negState, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_CONTEXT, CONS, 0, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_put_length_and_tag(p, len, ret, ASN1_C_UNIV, CONS, UT_Sequence, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrewsdecode_NegTokenResp(const unsigned char *p, size_t len, NegTokenResp * data, size_t * size)
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, ASN1_C_UNIV, CONS, UT_Sequence, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 0, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->negState = malloc(sizeof(*(data)->negState));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_enumerated(p, len, (data)->negState, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 1, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->supportedMech = malloc(sizeof(*(data)->supportedMech));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_MechType(p, len, (data)->supportedMech, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 2, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->responseToken = malloc(sizeof(*(data)->responseToken));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_octet_string(p, len, (data)->responseToken, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag(p, len, ASN1_C_CONTEXT, CONS, 3, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews (data)->mechListMIC = malloc(sizeof(*(data)->mechListMIC));
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = decode_octet_string(p, len, (data)->mechListMIC, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews e = der_match_tag_and_length(p, len, (Der_class) 0, (Der_type) 0, 0, &reallen, &l);
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: length_NegTokenResp */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused function: copy_NegTokenResp */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Generated from spnego.asn1 */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* Do not edit */
289ae548d52bc8f982d9823af64cafda7bd92232Mark Andrews/* unused variable: asn1_NegotiationToken_dummy_holder */