Index: mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaptemplates.c |
=================================================================== |
--- mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaptemplates.c (revision 191424) |
+++ mozilla/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaptemplates.c (working copy) |
@@ -1,417 +0,0 @@ |
-/* This Source Code Form is subject to the terms of the Mozilla Public |
- * License, v. 2.0. If a copy of the MPL was not distributed with this |
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
- |
-#include "pkix_pl_ldapt.h" |
- |
-SEC_ASN1_MKSUB(SEC_AnyTemplate) |
-SEC_ASN1_MKSUB(SEC_NullTemplate) |
-SEC_ASN1_MKSUB(SEC_OctetStringTemplate) |
- |
-/* |
- * CertificatePair ::= SEQUENCE { |
- * forward [0] Certificate OPTIONAL, |
- * reverse [1] Certificate OPTIONAL |
- * -- at least one of the pair shall be present -- |
- * } |
- */ |
- |
-const SEC_ASN1Template PKIX_PL_LDAPCrossCertPairTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(LDAPCertPair) }, |
- { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- SEC_ASN1_EXPLICIT | SEC_ASN1_XTRN | 0, |
- offsetof(LDAPCertPair, forward), SEC_ASN1_SUB(SEC_AnyTemplate) }, |
- { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- SEC_ASN1_EXPLICIT | SEC_ASN1_XTRN | 1, |
- offsetof(LDAPCertPair, reverse), SEC_ASN1_SUB(SEC_AnyTemplate) }, |
- { 0 } |
-}; |
- |
-/* |
- * BindRequest ::= |
- * [APPLICATION 0] SEQUENCE { |
- * version INTEGER (1..127), |
- * name LDAPDN, |
- * authentication CHOICE { |
- * simple [0] OCTET STRING, |
- * krbv42LDAP [1] OCTET STRING, |
- * krbv42DSA [2] OCTET STRING |
- * } |
- * } |
- * |
- * LDAPDN ::= LDAPString |
- * |
- * LDAPString ::= OCTET STRING |
- */ |
- |
-#define LDAPStringTemplate SEC_ASN1_SUB(SEC_OctetStringTemplate) |
- |
-static const SEC_ASN1Template LDAPBindApplTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL }, |
- { SEC_ASN1_INTEGER, offsetof(LDAPBind, version) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPBind, bindName) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPBind, authentication) }, |
- { 0 } |
-}; |
- |
-static const SEC_ASN1Template LDAPBindTemplate[] = { |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_APPLICATION | LDAP_BIND_TYPE, 0, |
- LDAPBindApplTemplate, sizeof (LDAPBind) } |
-}; |
- |
-/* |
- * BindResponse ::= [APPLICATION 1] LDAPResult |
- * |
- * LDAPResult ::= |
- * SEQUENCE { |
- * resultCode ENUMERATED { |
- * 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) |
- * }, |
- * matchedDN LDAPDN, |
- * errorMessage LDAPString |
- * } |
- */ |
- |
-static const SEC_ASN1Template LDAPResultTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL }, |
- { SEC_ASN1_ENUMERATED, offsetof(LDAPResult, resultCode) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPResult, matchedDN) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPResult, errorMessage) }, |
- { 0 } |
-}; |
- |
-static const SEC_ASN1Template LDAPBindResponseTemplate[] = { |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_APPLICATION | LDAP_BINDRESPONSE_TYPE, 0, |
- LDAPResultTemplate, sizeof (LDAPBindResponse) } |
-}; |
- |
-/* |
- * UnbindRequest ::= [APPLICATION 2] NULL |
- */ |
- |
-static const SEC_ASN1Template LDAPUnbindTemplate[] = { |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_APPLICATION | SEC_ASN1_XTRN | |
- LDAP_UNBIND_TYPE , 0, SEC_ASN1_SUB(SEC_NullTemplate) } |
-}; |
- |
-/* |
- * AttributeValueAssertion ::= |
- * SEQUENCE { |
- * attributeType AttributeType, |
- * attributeValue AttributeValue, |
- * } |
- * |
- * AttributeType ::= LDAPString |
- * -- text name of the attribute, or dotted |
- * -- OID representation |
- * |
- * AttributeValue ::= OCTET STRING |
- */ |
- |
-#define LDAPAttributeTypeTemplate LDAPStringTemplate |
- |
-/* |
- * SubstringFilter ::= |
- * SEQUENCE { |
- * type AttributeType, |
- * SEQUENCE OF CHOICE { |
- * initial [0] LDAPString, |
- * any [1] LDAPString, |
- * final [2] LDAPString, |
- * } |
- * } |
- */ |
- |
-#define LDAPSubstringFilterInitialTemplate LDAPStringTemplate |
-#define LDAPSubstringFilterAnyTemplate LDAPStringTemplate |
-#define LDAPSubstringFilterFinalTemplate LDAPStringTemplate |
- |
-static const SEC_ASN1Template LDAPSubstringFilterChoiceTemplate[] = { |
- { SEC_ASN1_CHOICE, offsetof(LDAPSubstring, selector), 0, |
- sizeof (LDAPFilter) }, |
- { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 0, |
- offsetof(LDAPSubstring, item), |
- LDAPSubstringFilterInitialTemplate, |
- LDAP_INITIALSUBSTRING_TYPE }, |
- { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 1, |
- offsetof(LDAPSubstring, item), |
- LDAPSubstringFilterAnyTemplate, |
- LDAP_ANYSUBSTRING_TYPE }, |
- { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 2, |
- offsetof(LDAPSubstring, item), |
- LDAPSubstringFilterFinalTemplate, |
- LDAP_FINALSUBSTRING_TYPE }, |
- { 0 } |
-}; |
- |
-/* |
- * Filter ::= |
- * CHOICE { |
- * and [0] SET OF Filter, |
- * or [1] SET OF Filter, |
- * not [2] Filter, |
- * equalityMatch [3] AttributeValueAssertion, |
- * substrings [4] SubstringFilter, |
- * greaterOrEqual [5] AttributeValueAssertion, |
- * lessOrEqual [6] AttributeValueAssertion, |
- * present [7] AttributeType, |
- * approxMatch [8] AttributeValueAssertion |
- } |
- */ |
- |
-static const SEC_ASN1Template LDAPSubstringFilterTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof (LDAPSubstringFilter) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPSubstringFilter, attrType) }, |
- { SEC_ASN1_SEQUENCE_OF, offsetof(LDAPSubstringFilter, strings), |
- LDAPSubstringFilterChoiceTemplate }, |
- { 0 } |
-}; |
- |
-const SEC_ASN1Template LDAPFilterTemplate[]; /* forward reference */ |
- |
-static const SEC_ASN1Template LDAPSetOfFiltersTemplate[] = { |
- { SEC_ASN1_SET_OF, 0, LDAPFilterTemplate } |
-}; |
- |
-static const SEC_ASN1Template LDAPAVAFilterTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof (LDAPAttributeValueAssertion) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPAttributeValueAssertion, attrType) }, |
- { SEC_ASN1_OCTET_STRING, offsetof(LDAPAttributeValueAssertion, attrValue) }, |
- { 0 } |
-}; |
- |
-static const SEC_ASN1Template LDAPPresentFilterTemplate[] = { |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPPresentFilter, attrType) } |
-}; |
- |
-#define LDAPEqualFilterTemplate LDAPAVAFilterTemplate |
-#define LDAPGreaterOrEqualFilterTemplate LDAPAVAFilterTemplate |
-#define LDAPLessOrEqualFilterTemplate LDAPAVAFilterTemplate |
-#define LDAPApproxMatchFilterTemplate LDAPAVAFilterTemplate |
- |
-const SEC_ASN1Template LDAPFilterTemplate[] = { |
- { SEC_ASN1_CHOICE, offsetof(LDAPFilter, selector), 0, sizeof(LDAPFilter) }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_ANDFILTER_TYPE, |
- offsetof(LDAPFilter, filter.andFilter.filters), |
- LDAPSetOfFiltersTemplate, LDAP_ANDFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_ORFILTER_TYPE, |
- offsetof(LDAPFilter, filter.orFilter.filters), |
- LDAPSetOfFiltersTemplate, LDAP_ORFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_NOTFILTER_TYPE | SEC_ASN1_POINTER, |
- offsetof(LDAPFilter, filter.notFilter), |
- LDAPFilterTemplate, LDAP_NOTFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_EQUALFILTER_TYPE, |
- offsetof(LDAPFilter, filter.equalFilter), |
- LDAPEqualFilterTemplate, LDAP_EQUALFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_SUBSTRINGFILTER_TYPE, offsetof(LDAPFilter, filter.substringFilter), |
- LDAPSubstringFilterTemplate, LDAP_SUBSTRINGFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_GREATEROREQUALFILTER_TYPE, |
- offsetof(LDAPFilter, filter.greaterOrEqualFilter), |
- LDAPGreaterOrEqualFilterTemplate, LDAP_GREATEROREQUALFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_LESSOREQUALFILTER_TYPE, |
- offsetof(LDAPFilter, filter.lessOrEqualFilter), |
- LDAPLessOrEqualFilterTemplate, LDAP_LESSOREQUALFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_PRESENTFILTER_TYPE, |
- offsetof(LDAPFilter, filter.presentFilter), |
- LDAPPresentFilterTemplate, LDAP_PRESENTFILTER_TYPE }, |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | |
- LDAP_APPROXMATCHFILTER_TYPE, |
- offsetof(LDAPFilter, filter.approxMatchFilter), |
- LDAPApproxMatchFilterTemplate, LDAP_APPROXMATCHFILTER_TYPE }, |
- { 0 } |
-}; |
- |
-/* |
- * SearchRequest ::= |
- * [APPLICATION 3] SEQUENCE { |
- * baseObject LDAPDN, |
- * scope ENUMERATED { |
- * baseObject (0), |
- * singleLevel (1), |
- * wholeSubtree (2) |
- * }, |
- * derefAliases ENUMERATED { |
- * neverDerefAliases (0), |
- * derefInSearching (1), |
- * derefFindingBaseObj (2), |
- * alwaysDerefAliases (3) |
- * }, |
- * sizeLimit INTEGER (0 .. MAXINT), |
- * -- value of 0 implies no sizeLimit |
- * timeLimit INTEGER (0 .. MAXINT), |
- * -- value of 0 implies no timeLimit |
- * attrsOnly BOOLEAN, |
- * -- TRUE, if only attributes (without values) |
- * -- to be returned |
- * filter Filter, |
- * attributes SEQUENCE OF AttributeType |
- * } |
- */ |
- |
-static const SEC_ASN1Template LDAPAttributeTemplate[] = { |
- { SEC_ASN1_LDAP_STRING, 0, NULL, sizeof (SECItem) } |
-}; |
- |
-static const SEC_ASN1Template LDAPSearchApplTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPSearch, baseObject) }, |
- { SEC_ASN1_ENUMERATED, offsetof(LDAPSearch, scope) }, |
- { SEC_ASN1_ENUMERATED, offsetof(LDAPSearch, derefAliases) }, |
- { SEC_ASN1_INTEGER, offsetof(LDAPSearch, sizeLimit) }, |
- { SEC_ASN1_INTEGER, offsetof(LDAPSearch, timeLimit) }, |
- { SEC_ASN1_BOOLEAN, offsetof(LDAPSearch, attrsOnly) }, |
- { SEC_ASN1_INLINE, offsetof(LDAPSearch, filter), LDAPFilterTemplate }, |
- { SEC_ASN1_SEQUENCE_OF, offsetof(LDAPSearch, attributes), LDAPAttributeTemplate }, |
- { 0 } |
-}; |
- |
-static const SEC_ASN1Template LDAPSearchTemplate[] = { |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_APPLICATION | LDAP_SEARCH_TYPE, 0, |
- LDAPSearchApplTemplate, sizeof (LDAPSearch) } |
-}; |
- |
-/* |
- * SearchResponse ::= |
- * CHOICE { |
- * entry [APPLICATION 4] SEQUENCE { |
- * objectName LDAPDN, |
- * attributes SEQUENCE OF SEQUENCE { |
- * AttributeType, |
- * SET OF AttributeValue |
- * } |
- * } |
- * resultCode [APPLICATION 5] LDAPResult |
- * } |
- */ |
- |
-static const SEC_ASN1Template LDAPSearchResponseAttrTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(LDAPSearchResponseAttr) }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPSearchResponseAttr, attrType) }, |
- { SEC_ASN1_SET_OF | SEC_ASN1_XTRN, offsetof(LDAPSearchResponseAttr, val), |
- LDAPStringTemplate }, |
- { 0 } |
-}; |
- |
-static const SEC_ASN1Template LDAPEntryTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL }, |
- { SEC_ASN1_LDAP_STRING, offsetof(LDAPSearchResponseEntry, objectName) }, |
- { SEC_ASN1_SEQUENCE_OF, offsetof(LDAPSearchResponseEntry, attributes), |
- LDAPSearchResponseAttrTemplate }, |
- { 0 } |
-}; |
- |
-static const SEC_ASN1Template LDAPSearchResponseEntryTemplate[] = { |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_APPLICATION | LDAP_SEARCHRESPONSEENTRY_TYPE, 0, |
- LDAPEntryTemplate, sizeof (LDAPSearchResponseEntry) } |
-}; |
- |
-static const SEC_ASN1Template LDAPSearchResponseResultTemplate[] = { |
- { SEC_ASN1_APPLICATION | LDAP_SEARCHRESPONSERESULT_TYPE, 0, |
- LDAPResultTemplate, sizeof (LDAPSearchResponseResult) } |
-}; |
- |
-/* |
- * AbandonRequest ::= |
- * [APPLICATION 16] MessageID |
- */ |
- |
-static const SEC_ASN1Template LDAPAbandonTemplate[] = { |
- { SEC_ASN1_INTEGER, offsetof(LDAPAbandonRequest, messageID) } |
-}; |
- |
-static const SEC_ASN1Template LDAPAbandonRequestTemplate[] = { |
- { SEC_ASN1_CONSTRUCTED | SEC_ASN1_APPLICATION | LDAP_ABANDONREQUEST_TYPE, 0, |
- LDAPAbandonTemplate, sizeof (LDAPAbandonRequest) } |
-}; |
- |
-/* |
- * LDAPMessage ::= |
- * SEQUENCE { |
- * messageID MessageID, |
- * protocolOp CHOICE { |
- * bindRequest BindRequest, |
- * bindResponse BindResponse, |
- * unbindRequest UnbindRequest, |
- * searchRequest SearchRequest, |
- * searchResponse SearchResponse, |
- * abandonRequest AbandonRequest |
- * } |
- * } |
- * |
- * (other choices exist, not shown) |
- * |
- * MessageID ::= INTEGER (0 .. maxInt) |
- */ |
- |
-static const SEC_ASN1Template LDAPMessageProtocolOpTemplate[] = { |
- { SEC_ASN1_CHOICE, offsetof(LDAPProtocolOp, selector), 0, sizeof (LDAPProtocolOp) }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.bindMsg), |
- LDAPBindTemplate, LDAP_BIND_TYPE }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.bindResponseMsg), |
- LDAPBindResponseTemplate, LDAP_BINDRESPONSE_TYPE }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.unbindMsg), |
- LDAPUnbindTemplate, LDAP_UNBIND_TYPE }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.searchMsg), |
- LDAPSearchTemplate, LDAP_SEARCH_TYPE }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.searchResponseEntryMsg), |
- LDAPSearchResponseEntryTemplate, LDAP_SEARCHRESPONSEENTRY_TYPE }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.searchResponseResultMsg), |
- LDAPSearchResponseResultTemplate, LDAP_SEARCHRESPONSERESULT_TYPE }, |
- { SEC_ASN1_INLINE, offsetof(LDAPProtocolOp, op.abandonRequestMsg), |
- LDAPAbandonRequestTemplate, LDAP_ABANDONREQUEST_TYPE }, |
- { 0 } |
-}; |
- |
-const SEC_ASN1Template PKIX_PL_LDAPMessageTemplate[] = { |
- { SEC_ASN1_SEQUENCE, 0, NULL }, |
- { SEC_ASN1_INTEGER, offsetof(LDAPMessage, messageID) }, |
- { SEC_ASN1_INLINE, offsetof(LDAPMessage, protocolOp), |
- LDAPMessageProtocolOpTemplate }, |
- { 0 } |
-}; |
- |
-/* This function simply returns the address of the message template. |
- * This is necessary for Windows DLLs. |
- */ |
-SEC_ASN1_CHOOSER_IMPLEMENT(PKIX_PL_LDAPMessageTemplate) |