133 lines
3.2 KiB
C
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_ */
|