| OLD | NEW |
| (Empty) |
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | |
| 2 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
| 4 | |
| 5 #ifndef _LDAP_H_ | |
| 6 #define _LDAP_H_ | |
| 7 | |
| 8 #include "certt.h" | |
| 9 #include "pkixt.h" | |
| 10 | |
| 11 #ifdef __cplusplus | |
| 12 extern "C" { | |
| 13 #endif | |
| 14 | |
| 15 extern const SEC_ASN1Template PKIX_PL_LDAPCrossCertPairTemplate[]; | |
| 16 SEC_ASN1_CHOOSER_DECLARE(PKIX_PL_LDAPCrossCertPairTemplate) | |
| 17 extern const SEC_ASN1Template PKIX_PL_LDAPMessageTemplate[]; | |
| 18 SEC_ASN1_CHOOSER_DECLARE(PKIX_PL_LDAPMessageTemplate) | |
| 19 extern const SEC_ASN1Template LDAPFilterTemplate[]; | |
| 20 SEC_ASN1_CHOOSER_DECLARE(LDAPFilterTemplate) | |
| 21 | |
| 22 /* ********************************************************************** */ | |
| 23 | |
| 24 #define SEC_ASN1_LDAP_STRING SEC_ASN1_OCTET_STRING | |
| 25 | |
| 26 #define LDAPATTR_CACERT (1<<0) | |
| 27 #define LDAPATTR_USERCERT (1<<1) | |
| 28 #define LDAPATTR_CROSSPAIRCERT (1<<2) | |
| 29 #define LDAPATTR_CERTREVLIST (1<<3) | |
| 30 #define LDAPATTR_AUTHREVLIST (1<<4) | |
| 31 #define MAX_LDAPATTRS 5 | |
| 32 typedef PKIX_UInt32 LdapAttrMask; | |
| 33 | |
| 34 typedef enum { | |
| 35 SIMPLE_AUTH = 0, | |
| 36 KRBV42LDAP_AUTH = 1, | |
| 37 KRBV42DSA_AUTH = 2 | |
| 38 } AuthType; | |
| 39 | |
| 40 typedef enum { | |
| 41 BASE_OBJECT = 0, | |
| 42 SINGLE_LEVEL = 1, | |
| 43 WHOLE_SUBTREE = 2 | |
| 44 } ScopeType; | |
| 45 | |
| 46 typedef enum { | |
| 47 NEVER_DEREF = 0, | |
| 48 DEREF_IN_SEARCHING = 1, | |
| 49 DEREF_FINDING_BASEOBJ = 2, | |
| 50 ALWAYS_DEREF = 3 | |
| 51 } DerefType; | |
| 52 | |
| 53 typedef enum { | |
| 54 LDAP_INITIALSUBSTRING_TYPE = 0, | |
| 55 LDAP_ANYSUBSTRING_TYPE = 1, | |
| 56 LDAP_FINALSUBSTRING_TYPE = 2 | |
| 57 } LDAPSubstringFilterType; | |
| 58 | |
| 59 typedef enum { | |
| 60 LDAP_ANDFILTER_TYPE = 0, | |
| 61 LDAP_ORFILTER_TYPE = 1, | |
| 62 LDAP_NOTFILTER_TYPE = 2, | |
| 63 LDAP_EQUALFILTER_TYPE = 3, | |
| 64 LDAP_SUBSTRINGFILTER_TYPE = 4, | |
| 65 LDAP_GREATEROREQUALFILTER_TYPE = 5, | |
| 66 LDAP_LESSOREQUALFILTER_TYPE = 6, | |
| 67 LDAP_PRESENTFILTER_TYPE = 7, | |
| 68 LDAP_APPROXMATCHFILTER_TYPE = 8 | |
| 69 } LDAPFilterType; | |
| 70 | |
| 71 typedef enum { | |
| 72 LDAP_BIND_TYPE = 0, | |
| 73 LDAP_BINDRESPONSE_TYPE = 1, | |
| 74 LDAP_UNBIND_TYPE = 2, | |
| 75 LDAP_SEARCH_TYPE = 3, | |
| 76 LDAP_SEARCHRESPONSEENTRY_TYPE = 4, | |
| 77 LDAP_SEARCHRESPONSERESULT_TYPE = 5, | |
| 78 LDAP_ABANDONREQUEST_TYPE = 16 | |
| 79 } LDAPMessageType; | |
| 80 | |
| 81 typedef enum { | |
| 82 SUCCESS = 0, | |
| 83 OPERATIONSERROR = 1, | |
| 84 PROTOCOLERROR = 2, | |
| 85 TIMELIMITEXCEEDED = 3, | |
| 86 SIZELIMITEXCEEDED = 4, | |
| 87 COMPAREFALSE = 5, | |
| 88 COMPARETRUE = 6, | |
| 89 AUTHMETHODNOTSUPPORTED = 7, | |
| 90 STRONGAUTHREQUIRED = 8, | |
| 91 NOSUCHATTRIBUTE = 16, | |
| 92 UNDEFINEDATTRIBUTETYPE = 17, | |
| 93 INAPPROPRIATEMATCHING = 18, | |
| 94 CONSTRAINTVIOLATION = 19, | |
| 95 ATTRIBUTEORVALUEEXISTS = 20, | |
| 96 INVALIDATTRIBUTESYNTAX = 21, | |
| 97 NOSUCHOBJECT = 32, | |
| 98 ALIASPROBLEM = 33, | |
| 99 INVALIDDNSYNTAX = 34, | |
| 100 ISLEAF = 35, | |
| 101 ALIASDEREFERENCINGPROBLEM = 36, | |
| 102 INAPPROPRIATEAUTHENTICATION = 48, | |
| 103 INVALIDCREDENTIALS = 49, | |
| 104 INSUFFICIENTACCESSRIGHTS = 50, | |
| 105 BUSY = 51, | |
| 106 UNAVAILABLE = 52, | |
| 107 UNWILLINGTOPERFORM = 53, | |
| 108 LOOPDETECT = 54, | |
| 109 NAMINGVIOLATION = 64, | |
| 110 OBJECTCLASSVIOLATION = 65, | |
| 111 NOTALLOWEDONNONLEAF = 66, | |
| 112 NOTALLOWEDONRDN = 67, | |
| 113 ENTRYALREADYEXISTS = 68, | |
| 114 OBJECTCLASSMODSPROHIBITED = 69, | |
| 115 OTHER = 80 | |
| 116 } LDAPResultCode; | |
| 117 | |
| 118 typedef struct LDAPLocationStruct LDAPLocation; | |
| 119 typedef struct LDAPCertPairStruct LDAPCertPair; | |
| 120 typedef struct LDAPSimpleBindStruct LDAPSimpleBind; | |
| 121 typedef struct LDAPBindAPIStruct LDAPBindAPI; | |
| 122 typedef struct LDAPBindStruct LDAPBind; | |
| 123 typedef struct LDAPResultStruct LDAPBindResponse; | |
| 124 typedef struct LDAPResultStruct LDAPResult; | |
| 125 typedef struct LDAPSearchResponseAttrStruct LDAPSearchResponseAttr; | |
| 126 typedef struct LDAPSearchResponseEntryStruct LDAPSearchResponseEntry; | |
| 127 typedef struct LDAPResultStruct LDAPSearchResponseResult; | |
| 128 typedef struct LDAPUnbindStruct LDAPUnbind; | |
| 129 typedef struct LDAPFilterStruct LDAPFilter; | |
| 130 typedef struct LDAPAndFilterStruct LDAPAndFilter; | |
| 131 typedef struct LDAPNotFilterStruct LDAPNotFilter; | |
| 132 typedef struct LDAPSubstringStruct LDAPSubstring; | |
| 133 typedef struct LDAPSubstringFilterStruct LDAPSubstringFilter; | |
| 134 typedef struct LDAPPresentFilterStruct LDAPPresentFilter; | |
| 135 typedef struct LDAPAttributeValueAssertionStruct LDAPAttributeValueAssertion; | |
| 136 typedef struct LDAPNameComponentStruct LDAPNameComponent; | |
| 137 typedef struct LDAPRequestParamsStruct LDAPRequestParams; | |
| 138 typedef struct LDAPSearchStruct LDAPSearch; | |
| 139 typedef struct LDAPAbandonRequestStruct LDAPAbandonRequest; | |
| 140 typedef struct protocolOpStruct LDAPProtocolOp; | |
| 141 typedef struct LDAPMessageStruct LDAPMessage; | |
| 142 typedef LDAPAndFilter LDAPOrFilter; | |
| 143 typedef LDAPAttributeValueAssertion LDAPEqualFilter; | |
| 144 typedef LDAPAttributeValueAssertion LDAPGreaterOrEqualFilter; | |
| 145 typedef LDAPAttributeValueAssertion LDAPLessOrEqualFilter; | |
| 146 typedef LDAPAttributeValueAssertion LDAPApproxMatchFilter; | |
| 147 | |
| 148 struct LDAPLocationStruct { | |
| 149 PLArenaPool *arena; | |
| 150 void *serverSite; | |
| 151 void **filterString; | |
| 152 void **attrBitString; | |
| 153 }; | |
| 154 | |
| 155 struct LDAPCertPairStruct { | |
| 156 SECItem forward; | |
| 157 SECItem reverse; | |
| 158 }; | |
| 159 | |
| 160 struct LDAPSimpleBindStruct { | |
| 161 char *bindName; | |
| 162 char *authentication; | |
| 163 }; | |
| 164 | |
| 165 struct LDAPBindAPIStruct { | |
| 166 AuthType selector; | |
| 167 union { | |
| 168 LDAPSimpleBind simple; | |
| 169 } chooser; | |
| 170 }; | |
| 171 | |
| 172 struct LDAPBindStruct { | |
| 173 SECItem version; | |
| 174 SECItem bindName; | |
| 175 SECItem authentication; | |
| 176 }; | |
| 177 | |
| 178 struct LDAPResultStruct { | |
| 179 SECItem resultCode; | |
| 180 SECItem matchedDN; | |
| 181 SECItem errorMessage; | |
| 182 }; | |
| 183 | |
| 184 struct LDAPSearchResponseAttrStruct { | |
| 185 SECItem attrType; | |
| 186 SECItem **val; | |
| 187 }; | |
| 188 | |
| 189 struct LDAPSearchResponseEntryStruct { | |
| 190 SECItem objectName; | |
| 191 LDAPSearchResponseAttr **attributes; | |
| 192 }; | |
| 193 | |
| 194 struct LDAPUnbindStruct { | |
| 195 SECItem dummy; | |
| 196 }; | |
| 197 | |
| 198 struct LDAPAndFilterStruct { | |
| 199 LDAPFilter **filters; | |
| 200 }; | |
| 201 | |
| 202 struct LDAPNotFilterStruct { | |
| 203 LDAPFilter *filter; | |
| 204 }; | |
| 205 | |
| 206 struct LDAPSubstringStruct { | |
| 207 LDAPSubstringFilterType selector; | |
| 208 SECItem item; | |
| 209 }; | |
| 210 | |
| 211 struct LDAPSubstringFilterStruct { | |
| 212 SECItem attrType; | |
| 213 LDAPSubstring *strings; | |
| 214 }; | |
| 215 | |
| 216 struct LDAPPresentFilterStruct { | |
| 217 SECItem attrType; | |
| 218 }; | |
| 219 | |
| 220 struct LDAPAttributeValueAssertionStruct { | |
| 221 SECItem attrType; | |
| 222 SECItem attrValue; | |
| 223 }; | |
| 224 | |
| 225 struct LDAPFilterStruct { | |
| 226 LDAPFilterType selector; | |
| 227 union { | |
| 228 LDAPAndFilter andFilter; | |
| 229 LDAPOrFilter orFilter; | |
| 230 LDAPNotFilter notFilter; | |
| 231 LDAPEqualFilter equalFilter; | |
| 232 LDAPSubstringFilter substringFilter; | |
| 233 LDAPGreaterOrEqualFilter greaterOrEqualFilter; | |
| 234 LDAPLessOrEqualFilter lessOrEqualFilter; | |
| 235 LDAPPresentFilter presentFilter; | |
| 236 LDAPApproxMatchFilter approxMatchFilter; | |
| 237 } filter; | |
| 238 }; | |
| 239 | |
| 240 struct LDAPNameComponentStruct { | |
| 241 unsigned char *attrType; | |
| 242 unsigned char *attrValue; | |
| 243 }; | |
| 244 | |
| 245 struct LDAPRequestParamsStruct { | |
| 246 char *baseObject; /* e.g. "c=US" */ | |
| 247 ScopeType scope; | |
| 248 DerefType derefAliases; | |
| 249 PKIX_UInt32 sizeLimit; /* 0 = no limit */ | |
| 250 PRIntervalTime timeLimit; /* 0 = no limit */ | |
| 251 LDAPNameComponent **nc; /* e.g. {{"cn","xxx"},{"o","yyy"},NULL} */ | |
| 252 LdapAttrMask attributes; | |
| 253 }; | |
| 254 | |
| 255 struct LDAPSearchStruct { | |
| 256 SECItem baseObject; | |
| 257 SECItem scope; | |
| 258 SECItem derefAliases; | |
| 259 SECItem sizeLimit; | |
| 260 SECItem timeLimit; | |
| 261 SECItem attrsOnly; | |
| 262 LDAPFilter filter; | |
| 263 SECItem **attributes; | |
| 264 }; | |
| 265 | |
| 266 struct LDAPAbandonRequestStruct { | |
| 267 SECItem messageID; | |
| 268 }; | |
| 269 | |
| 270 struct protocolOpStruct { | |
| 271 LDAPMessageType selector; | |
| 272 union { | |
| 273 LDAPBind bindMsg; | |
| 274 LDAPBindResponse bindResponseMsg; | |
| 275 LDAPUnbind unbindMsg; | |
| 276 LDAPSearch searchMsg; | |
| 277 LDAPSearchResponseEntry searchResponseEntryMsg; | |
| 278 LDAPSearchResponseResult searchResponseResultMsg; | |
| 279 LDAPAbandonRequest abandonRequestMsg; | |
| 280 } op; | |
| 281 }; | |
| 282 | |
| 283 struct LDAPMessageStruct { | |
| 284 SECItem messageID; | |
| 285 LDAPProtocolOp protocolOp; | |
| 286 }; | |
| 287 | |
| 288 typedef struct PKIX_PL_LdapClientStruct PKIX_PL_LdapClient; | |
| 289 | |
| 290 typedef PKIX_Error * | |
| 291 (*PKIX_PL_LdapClient_InitiateFcn)( | |
| 292 PKIX_PL_LdapClient *client, | |
| 293 LDAPRequestParams *requestParams, | |
| 294 void **pNBIO, | |
| 295 PKIX_List **pResponse, | |
| 296 void *plContext); | |
| 297 | |
| 298 typedef PKIX_Error * | |
| 299 (*PKIX_PL_LdapClient_ResumeFcn)( | |
| 300 PKIX_PL_LdapClient *client, | |
| 301 void **pNBIO, | |
| 302 PKIX_List **pResponse, | |
| 303 void *plContext); | |
| 304 | |
| 305 struct PKIX_PL_LdapClientStruct { | |
| 306 PKIX_PL_LdapClient_InitiateFcn initiateFcn; | |
| 307 PKIX_PL_LdapClient_ResumeFcn resumeFcn; | |
| 308 }; | |
| 309 | |
| 310 #ifdef __cplusplus | |
| 311 } | |
| 312 #endif | |
| 313 | |
| 314 #endif | |
| OLD | NEW |