mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
364 lines
9.2 KiB
364 lines
9.2 KiB
#ifndef _LDAP_Module_H_
|
|
#define _LDAP_Module_H_
|
|
|
|
#include "msber.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct SearchResponse_entry_attributes_Seq_values * PSearchResponse_entry_attributes_Seq_values;
|
|
|
|
typedef struct ModifyRequest_modifications_Seq_modification_values * PModifyRequest_modifications_Seq_modification_values;
|
|
|
|
typedef struct AddRequest_attrs_Seq_values * PAddRequest_attrs_Seq_values;
|
|
|
|
typedef struct SearchResponse_entry_attributes * PSearchResponse_entry_attributes;
|
|
|
|
typedef struct SubstringFilter_attributes * PSubstringFilter_attributes;
|
|
|
|
typedef struct AddRequest_attrs * PAddRequest_attrs;
|
|
|
|
typedef struct ModifyRequest_modifications * PModifyRequest_modifications;
|
|
|
|
typedef struct SearchRequest_attributes * PSearchRequest_attributes;
|
|
|
|
typedef struct Filter_or * PFilter_or;
|
|
|
|
typedef struct Filter_and * PFilter_and;
|
|
|
|
typedef struct UnbindRequest {
|
|
char placeholder;
|
|
} UnbindRequest;
|
|
|
|
typedef ASN1uint32_t MessageID;
|
|
|
|
typedef ASN1octetstring_t AttributeValue;
|
|
|
|
typedef ASN1octetstring_t LDAPString;
|
|
|
|
typedef MessageID AbandonRequest;
|
|
|
|
typedef LDAPString LDAPDN;
|
|
|
|
typedef LDAPString RelativeLDAPDN;
|
|
|
|
typedef LDAPString AttributeType;
|
|
|
|
typedef LDAPDN DelRequest;
|
|
|
|
typedef struct SearchResponse_entry_attributes_Seq_values {
|
|
PSearchResponse_entry_attributes_Seq_values next;
|
|
AttributeValue value;
|
|
} SearchResponse_entry_attributes_Seq_values_Element;
|
|
|
|
typedef struct ModifyRequest_modifications_Seq_modification_values {
|
|
PModifyRequest_modifications_Seq_modification_values next;
|
|
AttributeValue value;
|
|
} ModifyRequest_modifications_Seq_modification_values_Element;
|
|
|
|
typedef struct AddRequest_attrs_Seq_values {
|
|
PAddRequest_attrs_Seq_values next;
|
|
AttributeValue value;
|
|
} AddRequest_attrs_Seq_values_Element;
|
|
|
|
typedef struct ModifyRequest_modifications_Seq_modification {
|
|
AttributeType type;
|
|
PModifyRequest_modifications_Seq_modification_values values;
|
|
} ModifyRequest_modifications_Seq_modification;
|
|
|
|
typedef struct SearchResponse_entry_attributes_Seq {
|
|
AttributeType type;
|
|
PSearchResponse_entry_attributes_Seq_values values;
|
|
} SearchResponse_entry_attributes_Seq;
|
|
|
|
typedef struct SearchResponse_entry_attributes {
|
|
PSearchResponse_entry_attributes next;
|
|
SearchResponse_entry_attributes_Seq value;
|
|
} SearchResponse_entry_attributes_Element;
|
|
|
|
typedef enum operation {
|
|
add = 0,
|
|
operation_delete = 1,
|
|
replace = 2,
|
|
} operation;
|
|
typedef struct ModifyRequest_modifications_Seq {
|
|
operation operation;
|
|
ModifyRequest_modifications_Seq_modification modification;
|
|
} ModifyRequest_modifications_Seq;
|
|
|
|
typedef struct AddRequest_attrs_Seq {
|
|
AttributeType type;
|
|
PAddRequest_attrs_Seq_values values;
|
|
} AddRequest_attrs_Seq;
|
|
|
|
typedef struct SubstringFilter_attributes_Seq {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define initial_choice 1
|
|
LDAPString initial;
|
|
# define any_choice 2
|
|
LDAPString any;
|
|
# define final_choice 3
|
|
LDAPString final;
|
|
} u;
|
|
} SubstringFilter_attributes_Seq;
|
|
|
|
typedef struct SubstringFilter_attributes {
|
|
PSubstringFilter_attributes next;
|
|
SubstringFilter_attributes_Seq value;
|
|
} SubstringFilter_attributes_Element;
|
|
|
|
typedef struct AddRequest_attrs {
|
|
PAddRequest_attrs next;
|
|
AddRequest_attrs_Seq value;
|
|
} AddRequest_attrs_Element;
|
|
|
|
typedef struct ModifyRequest_modifications {
|
|
PModifyRequest_modifications next;
|
|
ModifyRequest_modifications_Seq value;
|
|
} ModifyRequest_modifications_Element;
|
|
|
|
typedef struct SearchResponse_entry {
|
|
LDAPDN objectName;
|
|
PSearchResponse_entry_attributes attributes;
|
|
} SearchResponse_entry;
|
|
|
|
typedef struct SearchRequest_attributes {
|
|
PSearchRequest_attributes next;
|
|
AttributeType value;
|
|
} SearchRequest_attributes_Element;
|
|
|
|
typedef struct SaslCredentials {
|
|
LDAPString mechanism;
|
|
ASN1octetstring_t credentials;
|
|
} SaslCredentials;
|
|
|
|
typedef struct ModifyRequest {
|
|
LDAPDN object;
|
|
PModifyRequest_modifications modifications;
|
|
} ModifyRequest;
|
|
|
|
typedef struct AddRequest {
|
|
LDAPDN entry;
|
|
PAddRequest_attrs attrs;
|
|
} AddRequest;
|
|
|
|
typedef struct ModifyRDNRequest {
|
|
LDAPDN entry;
|
|
RelativeLDAPDN newrdn;
|
|
} ModifyRDNRequest;
|
|
|
|
typedef enum resultCode {
|
|
success = 0,
|
|
operationsError = 1,
|
|
protocolError = 2,
|
|
timeLimitExceeded = 3,
|
|
sizeLimitExceeded = 4,
|
|
compareFalse = 5,
|
|
compareTrue = 6,
|
|
authMethodNotSupported = 7,
|
|
strongAuthRequired = 8,
|
|
noSuchAttribute = 16,
|
|
undefinedAttributeType = 17,
|
|
inappropriateMatching = 18,
|
|
constraintViolation = 19,
|
|
attributeOrValueExists = 20,
|
|
invalidAttributeSyntax = 21,
|
|
noSuchObject = 32,
|
|
aliasProblem = 33,
|
|
invalidDNSyntax = 34,
|
|
isLeaf = 35,
|
|
aliasDereferencingProblem = 36,
|
|
inappropriateAuthentication = 48,
|
|
invalidCredentials = 49,
|
|
insufficientAccessRights = 50,
|
|
busy = 51,
|
|
unavailable = 52,
|
|
unwillingToPerform = 53,
|
|
loopDetect = 54,
|
|
namingViolation = 64,
|
|
objectClassViolation = 65,
|
|
notAllowedOnNonLeaf = 66,
|
|
notAllowedOnRDN = 67,
|
|
entryAlreadyExists = 68,
|
|
objectClassModsProhibited = 69,
|
|
other = 80,
|
|
} resultCode;
|
|
typedef struct LDAPResult {
|
|
resultCode resultCode;
|
|
LDAPDN matchedDN;
|
|
LDAPString errorMessage;
|
|
} LDAPResult;
|
|
|
|
typedef struct AttributeValueAssertion {
|
|
AttributeType attributeType;
|
|
AttributeValue attributeValue;
|
|
} AttributeValueAssertion;
|
|
|
|
typedef struct SubstringFilter {
|
|
AttributeType type;
|
|
PSubstringFilter_attributes attributes;
|
|
} SubstringFilter;
|
|
|
|
typedef struct AuthenticationChoice {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define simple_choice 1
|
|
ASN1octetstring_t simple;
|
|
# define sasl_choice 2
|
|
SaslCredentials sasl;
|
|
# define sicilyNegotiate_choice 3
|
|
ASN1octetstring_t sicilyNegotiate;
|
|
# define sicilyInitial_choice 4
|
|
ASN1octetstring_t sicilyInitial;
|
|
# define sicilySubsequent_choice 5
|
|
ASN1octetstring_t sicilySubsequent;
|
|
} u;
|
|
} AuthenticationChoice;
|
|
|
|
typedef LDAPResult BindResponse;
|
|
|
|
typedef struct SearchResponse {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define entry_choice 1
|
|
SearchResponse_entry entry;
|
|
# define resultCode_choice 2
|
|
LDAPResult resultCode;
|
|
} u;
|
|
} SearchResponse;
|
|
|
|
typedef LDAPResult ModifyResponse;
|
|
|
|
typedef LDAPResult AddResponse;
|
|
|
|
typedef LDAPResult DelResponse;
|
|
|
|
typedef LDAPResult ModifyRDNResponse;
|
|
|
|
typedef struct CompareRequest {
|
|
LDAPDN entry;
|
|
AttributeValueAssertion ava;
|
|
} CompareRequest;
|
|
|
|
typedef LDAPResult CompareResponse;
|
|
|
|
typedef struct Filter {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define and_choice 1
|
|
PFilter_and and;
|
|
# define or_choice 2
|
|
PFilter_or or;
|
|
# define equalityMatch_choice 3
|
|
AttributeValueAssertion equalityMatch;
|
|
# define substrings_choice 4
|
|
SubstringFilter substrings;
|
|
# define greaterOrEqual_choice 5
|
|
AttributeValueAssertion greaterOrEqual;
|
|
# define lessOrEqual_choice 6
|
|
AttributeValueAssertion lessOrEqual;
|
|
# define present_choice 7
|
|
AttributeType present;
|
|
# define approxMatch_choice 8
|
|
AttributeValueAssertion approxMatch;
|
|
} u;
|
|
} Filter;
|
|
|
|
typedef struct Filter_or {
|
|
PFilter_or next;
|
|
Filter value;
|
|
} Filter_or_Element;
|
|
|
|
typedef struct Filter_and {
|
|
PFilter_and next;
|
|
Filter value;
|
|
} Filter_and_Element;
|
|
|
|
typedef struct BindRequest {
|
|
ASN1uint16_t version;
|
|
LDAPDN name;
|
|
AuthenticationChoice authentication;
|
|
} BindRequest;
|
|
|
|
typedef enum scope {
|
|
baseObject = 0,
|
|
singleLevel = 1,
|
|
wholeSubtree = 2,
|
|
} scope;
|
|
typedef enum derefAliases {
|
|
neverDerefAliases = 0,
|
|
derefInSearching = 1,
|
|
derefFindingBaseObj = 2,
|
|
alwaysDerefAliases = 3,
|
|
} derefAliases;
|
|
typedef struct SearchRequest {
|
|
LDAPDN baseObject;
|
|
scope scope;
|
|
derefAliases derefAliases;
|
|
ASN1uint32_t sizeLimit;
|
|
ASN1uint32_t timeLimit;
|
|
ASN1bool_t attrsOnly;
|
|
Filter filter;
|
|
PSearchRequest_attributes attributes;
|
|
} SearchRequest;
|
|
|
|
typedef struct LDAPMessage_protocolOp {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define bindRequest_choice 1
|
|
BindRequest bindRequest;
|
|
# define bindResponse_choice 2
|
|
BindResponse bindResponse;
|
|
# define unbindRequest_choice 3
|
|
UnbindRequest unbindRequest;
|
|
# define searchRequest_choice 4
|
|
SearchRequest searchRequest;
|
|
# define searchResponse_choice 5
|
|
SearchResponse searchResponse;
|
|
# define modifyRequest_choice 6
|
|
ModifyRequest modifyRequest;
|
|
# define modifyResponse_choice 7
|
|
ModifyResponse modifyResponse;
|
|
# define addRequest_choice 8
|
|
AddRequest addRequest;
|
|
# define addResponse_choice 9
|
|
AddResponse addResponse;
|
|
# define delRequest_choice 10
|
|
DelRequest delRequest;
|
|
# define delResponse_choice 11
|
|
DelResponse delResponse;
|
|
# define modifyRDNRequest_choice 12
|
|
ModifyRDNRequest modifyRDNRequest;
|
|
# define modifyRDNResponse_choice 13
|
|
ModifyRDNResponse modifyRDNResponse;
|
|
# define compareDNRequest_choice 14
|
|
CompareRequest compareDNRequest;
|
|
# define compareDNResponse_choice 15
|
|
CompareResponse compareDNResponse;
|
|
# define abandonRequest_choice 16
|
|
AbandonRequest abandonRequest;
|
|
} u;
|
|
} LDAPMessage_protocolOp;
|
|
|
|
typedef struct LDAPMessage {
|
|
MessageID messageID;
|
|
LDAPMessage_protocolOp protocolOp;
|
|
} LDAPMessage;
|
|
#define LDAPMessage_ID 0
|
|
#define SIZE_LDAP_Module_ID_0 sizeof(LDAPMessage)
|
|
|
|
extern ASN1int32_t maxInt;
|
|
|
|
extern ASN1module_t LDAP_Module;
|
|
extern void ASN1CALL LDAP_Module_Startup(void);
|
|
extern void ASN1CALL LDAP_Module_Cleanup(void);
|
|
|
|
/* Prototypes of element functions for SEQUENCE OF and SET OF constructs */
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _LDAP_Module_H_ */
|