windows-nt/Source/XPSP1/NT/ds/security/base/lsa/server/spnego.h
2020-09-26 16:20:57 +08:00

133 lines
3.2 KiB
C

#ifndef _SPNEGO_Module_H_
#define _SPNEGO_Module_H_
#include "msber.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct MechTypeList * PMechTypeList;
typedef ASN1objectidentifier_t MechType;
typedef PMechTypeList SavedMechTypeList;
#define SavedMechTypeList_PDU 0
#define SIZE_SPNEGO_Module_PDU_0 sizeof(SavedMechTypeList)
typedef ASN1bitstring_t ContextFlags;
#define delegFlag 0x80
#define mutualFlag 0x40
#define replayFlag 0x20
#define sequenceFlag 0x10
#define anonFlag 0x8
#define confFlag 0x4
#define integFlag 0x2
typedef ASN1octetstring_t MechSpecInfo;
typedef enum NegResult {
accept_completed = 0,
accept_incomplete = 1,
reject = 2,
} NegResult;
typedef struct MechTypeList {
PMechTypeList next;
MechType value;
} MechTypeList_Element;
typedef struct NegHints {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
# define hintName_present 0x80
ASN1ztcharstring_t hintName;
# define hintAddress_present 0x40
ASN1octetstring_t hintAddress;
} NegHints;
typedef struct NegTokenInit {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
# define NegTokenInit_mechTypes_present 0x80
PMechTypeList mechTypes;
# define NegTokenInit_reqFlags_present 0x40
ContextFlags reqFlags;
# define NegTokenInit_mechToken_present 0x20
ASN1octetstring_t mechToken;
# define NegTokenInit_negHints_present 0x10
NegHints negHints;
# define NegTokenInit_mechListMIC_present 0x8
ASN1octetstring_t mechListMIC;
} NegTokenInit;
typedef struct NegTokenInit2 {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
# define NegTokenInit2_mechTypes_present 0x80
PMechTypeList mechTypes;
# define NegTokenInit2_reqFlags_present 0x40
ContextFlags reqFlags;
# define NegTokenInit2_mechToken_present 0x20
ASN1octetstring_t mechToken;
# define NegTokenInit2_mechListMIC_present 0x10
ASN1octetstring_t mechListMIC;
# define NegTokenInit2_negHints_present 0x8
NegHints negHints;
} NegTokenInit2;
typedef struct NegTokenTarg {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
# define negResult_present 0x80
NegResult negResult;
# define supportedMech_present 0x40
MechType supportedMech;
# define responseToken_present 0x20
ASN1octetstring_t responseToken;
# define NegTokenTarg_mechListMIC_present 0x10
ASN1octetstring_t mechListMIC;
} NegTokenTarg;
typedef struct NegotiationToken {
ASN1choice_t choice;
union {
# define negTokenInit_chosen 1
NegTokenInit negTokenInit;
# define negTokenTarg_chosen 2
NegTokenTarg negTokenTarg;
# define negTokenInit2_chosen 3
NegTokenInit2 negTokenInit2;
} u;
} NegotiationToken;
#define NegotiationToken_PDU 1
#define SIZE_SPNEGO_Module_PDU_1 sizeof(NegotiationToken)
typedef struct InitialNegToken {
MechType spnegoMech;
NegotiationToken negToken;
} InitialNegToken;
#define InitialNegToken_PDU 2
#define SIZE_SPNEGO_Module_PDU_2 sizeof(InitialNegToken)
extern ASN1module_t SPNEGO_Module;
extern void ASN1CALL SPNEGO_Module_Startup(void);
extern void ASN1CALL SPNEGO_Module_Cleanup(void);
/* Prototypes of element functions for SEQUENCE OF and SET OF constructs */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _SPNEGO_Module_H_ */