view Side-By-Side changes
INTERNET-DRAFTK. Dally,S. Legg, Editor draft-ietf-ldapbis-syntaxes-04.txt Adacel Technologies Intended Category: Standard Track K. Dally Obsoletes: RFC 2252, RFC 2256 The MITRE Corp.Expires: 27 August 2002 S. Legg Obsoletes: RFC 2252 ADACEL 27 February20 December 2002Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions <draft-ietf-ldapbis-syntaxes-02>LDAP: Syntaxes and Matching Rules Copyright (C) The Internet Society (2002). All Rights Reserved. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 ofRFC 2026. This document is intended to be, after appropriate review and revision, submitted to the RFC Editor as a Standard Track document. Distribution of this memo is unlimited. Technical discussion of this document will take place on the IETF LDAP Revision Working Group (LDAPbis) mailing list <ietf-ldapbis@openldap.org>. Please send editorial comments directly to the author <kdally@mitre.org>.RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents asInternet- Drafts.Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work inprogress."progress". The list of current Internet-Drafts can be accessed athttp://www.ietf.org/ietf/1id-abstracts.txt.http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.Copyright 2002, The Internet Society. All Rights Reserved. Please see the Copyright section nearThis document is intended to be, after appropriate review and revision, submitted to theendRFC Editor as a Standard Track document. Distribution of this documentfor more information. Dally,is unlimited. Technical discussion of this document should take place on the IETF LDAP Revision Working Group (LDAPbis) mailing list <ietf-ldapbis@openldap.org>. Please send editorial comments directly to the editor <steven.legg@adacel.com.au>. This Internet-Draft expires on 20 June 2003. Abstract Each attribute stored in a Lightweight Directory Access Protocol (LDAP) directory, and whose values may be transfered in the LDAP Legg & Dally Expires27 August 200220 June 2003 [Page 1] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002Abstractprotocol, has a defined syntax which constrains the structure and format of its values. TheLightweight Directory Access Protocol (LDAP) [Prot] providescomparison semantics forexchanging AttributeValue fields in protocol.values of a syntax are not part of the syntax definition but are instead provided through separately defined matching rules. Matching rules specify an argument, an assertion value, which also has a defined syntax. This document defines a base set of syntaxesfor LDAP,andthematching rulesby which attribute values of these syntaxes are represented in the LDAP protocol. The syntaxes defined in this document are used by this and other documents to define attribute types. In addition, this document defines the set of attribute syntaxes, which LDAP servers support, and other schema elements (required and optional) that are common to all LDAP servers. [Editor's note: This document is a modified version of the text of RFC 2252, in order to bring it up to date. This action is part of the maintenance activity that is neededfor use inorder to progressdefining attributes for LDAP(v3) to Draft Standard. The changes are described in Annex C of this document. Open items are listed in Annex B. End of Editor's note] Dally,directories. Legg & Dally Expires27 August 200220 June 2003 [Page 2] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002 1. Table of ContentsStatus of this Memo....................................................1 Abstract...............................................................2Abstract ...................................................... 1 1.Overview...........................................................6Table of Contents ............................................. 3 2. Introduction .................................................. 4 3. Conventions ................................................... 5 4. Syntaxes ...................................................... 5 4.1 GeneralIssues.....................................................6 2.1 Notation..........................................................6 2.2 Syntaxes..........................................................9 2.2.1 Syntaxes Implementation Status..................................9 2.2.2 Syntax Object Identifiers...................................... 9 2.2.3Considerations .................................... 5 4.2 Common Definitions ........................................ 6 4.3 SyntaxDescription.............................................10 2.2.4 Example........................................................10 2.3 Matching Rules...................................................11 2.3.1 Matching Rules Implementation Status...........................11 2.3.2 Matching Rule Description......................................11 2.3.3 Example........................................................12 2.4 Attribute Types..................................................12 2.4.1 Attribute Types Implementation Status..........................12 2.4.2 Attribute Types Description....................................13 2.4.3 Example........................................................15 2.5 Object Classes...................................................15 2.5.1 Object Classes Implementation Status...........................15 2.5.2 Object Class Description.......................................16 2.5.3 Example........................................................16 3. Syntaxes..........................................................18 3.1Definitions ........................................ 7 4.3.1 Attribute TypeDescription.......................................18 3.2Description ........................... 7 4.3.2 BitString.......................................................18 3.3 Boolean..........................................................19 3.4String ........................................... 7 4.3.3 Boolean .............................................. 8 4.3.4 CountryString...................................................19 3.5String ....................................... 8 4.3.5 DeliveryMethod..................................................19 3.6Method ...................................... 9 4.3.6 DirectoryString.................................................20 3.7String ..................................... 9 4.3.7 DIT Content RuleDescription.....................................20 3.8Description ......................... 10 4.3.8 DIT Structure RuleDescription...................................21 3.9 DN...............................................................22 3.10Description ....................... 11 4.3.9 DN ................................................... 11 4.3.10 EnhancedGuide...................................................23 3.11Guide ...................................... 12 4.3.11 Facsimile TelephoneNumber.......................................23 3.12 Fax..............................................................24 3.13Number .......................... 13 4.3.12 Fax ................................................. 13 4.3.13 GeneralizedTime.................................................24 3.14 Guide............................................................25 3.15Time .................................... 14 4.3.14 Guide ............................................... 15 4.3.15 IA5String.......................................................25 3.16 Integer..........................................................25 3.17 JPEG.............................................................26 3.18String .......................................... 15 4.3.16 Integer ............................................. 16 4.3.17 JPEG ................................................ 16 4.3.18 LDAP SyntaxDescription..........................................26 3.19Description ............................. 16 4.3.19 Matching RuleDescription........................................26 3.20Description ........................... 17 4.3.20 Matching Rule UseDescription....................................26 3.21 MHS OR Address...................................................27 3.22Description ....................... 17 4.3.21 Name and OptionalUID............................................27 3.23UID ............................... 18 4.3.22 Name FormDescription............................................28 Dally, Legg Expires 27 August 2002 [Page 3] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 3.24Description ............................... 18 4.3.23 NumericString...................................................29 3.25String ...................................... 19 4.3.24 Object ClassDescription.........................................29 3.26Description ............................ 19 4.3.25 OctetString.....................................................29 3.27 OID..............................................................30 3.28String ........................................ 20 4.3.26 OID ................................................. 20 4.3.27 OtherMailbox....................................................30 3.29Mailbox ....................................... 20 4.3.28 PostalAddress...................................................30 3.30 Presentation Address.............................................31 3.31Address ...................................... 21 4.3.29 PrintableString.................................................33 3.32String .................................... 22 4.3.30 Substring Assertion.......................................33 3.33................................. 22 4.3.31 TelephoneNumber.................................................34 3.34Number .................................... 23 4.3.32 Teletex TerminalIdentifier......................................34 3.35Identifier ......................... 24 4.3.33 TelexNumber.....................................................34 3.36Number ........................................ 24 4.3.34 UTCTime.........................................................35 4. Matching Rules....................................................36 4.1 bitStringMatch...................................................36 4.2 caseExactIA5Match................................................36 4.3 caseIgnoreIA5Match...............................................36 4.4 caseIgnoreListMatch..............................................36 4.5 caseIgnoreMatch..................................................37 4.6 caseIgnoreOrderingMatch..........................................37 4.7 caseIgnoreSubstringsMatch........................................37 4.8 distinguishedNameMatch...........................................37 4.9 generalizedTimeMatch.............................................37 4.10 generalizedTimeOrderingMatch.....................................38 4.11 integerFirstComponentMatch.......................................38 4.12 integerMatch.....................................................38 4.13 numericStringMatch...............................................38 4.14 numericStringSubstringsMatch.....................................38 4.15 objectIdentifierFirstComponentMatch..............................39 4.16 objectIdentifierMatch............................................39 4.17 octetStringMatch.................................................39 4.18 presentationAddressMatch.........................................40 4.19 protocolInformationMatch.........................................40 4.20 telephoneNumberMatch.............................................40 4.21 telephoneNumberSubstringsMatch...................................40 4.22 uniqueMemberMatch................................................40Time ............................................ 25 5.Attribute Types...................................................41Matching Rules ................................................ 26 5.1altServer........................................................41General Considerations .................................... 26 5.2attributeTypes...................................................41 5.3 createTimestamp..................................................41 5.4 creatorsName.....................................................41 5.5 dITContentRules..................................................42 5.6 dITStructureRules................................................42 5.7 ldapSyntaxes.....................................................42 5.8 matchingRules....................................................42 5.9 matchingRuleUse..................................................42 5.10 modifiersName....................................................43 5.11 modifyTimestamp..................................................43 5.12 nameForms........................................................43 5.13 namingContexts...................................................43 Dally, Legg ExpiresMatching Rule Definitions ................................. 27August 2002 [Page 4] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-025.2.1 bitStringMatch ....................................... 27February 2002 5.14 objectClasses....................................................44 5.15 subschemaSubentry................................................44 5.16 supportedControl.................................................44 5.17 supportedExtension...............................................45 5.18 supportedLDAPVersion.............................................45 5.19 supportedSASLMechanisms..........................................45 6. Object Classes....................................................46 6.1 Extensible Object Class..........................................46 6.2 subschema........................................................46 7. Security Considerations...........................................47 7.1 Disclosure.......................................................47 7.2 Security Information Syntaxes....................................47 7.3 Use of Attribute Values in Security Applications.................47 7.4 Securing the Directory...........................................47 8. Acknowledgements..................................................48 9. Author's Address..................................................48 10. References........................................................48 10.1 Normative.......................................................48 10.2 Informative.....................................................49 11. Full Copyright Statement..........................................50 Annex A Object Identifiers for Syntaxes..............................51 Annex B Topics to be Addressed in This Document......................52 Annex C Change Log...................................................53 Dally,Legg & Dally Expires27 August 200220 June 2003 [Page5]3] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 20021. Overview This document defines the framework for developing schemas for directories accessible via the5.2.2 caseExactIA5Match .................................... 28 5.2.3 caseIgnoreIA5Match ................................... 28 5.2.4 caseIgnoreIA5SubstringsMatch ......................... 29 5.2.5 caseIgnoreListMatch .................................. 29 5.2.6 caseIgnoreMatch ...................................... 30 5.2.7 caseIgnoreOrderingMatch .............................. 30 5.2.8 caseIgnoreSubstringsMatch ............................ 31 5.2.9 distinguishedNameMatch ............................... 31 5.2.10 generalizedTimeMatch ................................ 32 5.2.11 generalizedTimeOrderingMatch ........................ 32 5.2.12 integerFirstComponentMatch .......................... 32 5.2.13 integerMatch ........................................ 33 5.2.14 numericStringMatch .................................. 33 5.2.15 numericStringSubstringsMatch ........................ 34 5.2.16 objectIdentifierFirstComponentMatch ................. 34 5.2.17 objectIdentifierMatch ............................... 35 5.2.18 octetStringMatch .................................... 35 5.2.19 telephoneNumberMatch ................................ 36 5.2.20 telephoneNumberSubstringsMatch ...................... 36 5.2.21 uniqueMemberMatch ................................... 37 6. Security Considerations ....................................... 37 7. Acknowledgements .............................................. 38 8. IANA Considerations ........................................... 38 9. Normative References .......................................... 39 10. Informative References ....................................... 40 11. Authors' Addresses ........................................... 41 12. Copyright Notice ............................................. 41 Appendix A. Summary of Syntax Object Identifiers ................. 42 Appendix B. Changes from RFC 2252 & RFC 2256 ..................... 43 2. Introduction Each attribute stored in a Lightweight Directory Access Protocol (LDAP)[Prot]. Schema is the collection of attribute type definitions, object class definitionsdirectory [ROADMAP], andother informationwhose values may be transfered in the LDAP protocol [PROT], has a defined syntax (i.e. data type) whichspecifyconstrains theentriesstructure andtheir contents that a server holds. A server uses schema to determine how to match a filter or attribute value assertion (informat of its values. The comparison semantics for values of acompare operation) against the attributessyntax are not part ofan entry, and whether to permit add and modify operations. Therefore, Section 2 statesthegeneral requirements and notation forsyntax definitionof attribute types, object classes, syntaxes andbut are instead provided through separately defined matching rules.Section 3 lists syntaxes, section 4 matching rules, section 5 attribute types, and section 6 object classes. Additional documents define schemas for representing real-world objects as directory entries. 2. General Issues The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [Keywds].Matching rules specify an argument, an assertion value, which also has a defined syntax. This documentdescribes the syntaxes of data conveyed in an Internet protocol. Attribute Type and Object Class definitions are written indefines astring representationbase set ofthe AttributeTypeDescriptionsyntaxes andObjectClassDescription data types definedmatching rules for use inX.501 [Models]. Implementorsdefining attributes for LDAP directories. Readers arestronglyadvised tofirst readfamiliarize themselves with thedescription of how schema is represented in X.500Directory Information Models [MODELS] before reading the rest of this document.2.1 Notation ForSection 4 provides definitions for thepurposesbase set ofdefiningLDAP syntaxes. Section 5 provides definitions for the base set of matching rules fordescribing attribute syntaxesLegg & Dally Expires 20 June 2003 [Page 4] INTERNET-DRAFT LDAP: Syntaxes andother schema elements,Matching Rules December 20, 2002 LDAP. This document is a integral part of thefollowing augmented Backus-Naur Form (ABNF) definitions will be used. They are based onLDAP technical specification [ROADMAP] which obsoletes theABNF stylespreviously defined LDAP technical specification [RFC3377] in its entirety. Sections 4, 5 and 7 of RFC 2252 [RFC2252] are obsoleted by [MODELS]. The remainder of RFC 2252 is obsoleted by this document. Sections 6 and 8 of RFC2234 [ABNF].2256 are obsoleted by this document. The changes from RFC 2252 and RFC 2256 [RFC2256] are described in Appendix B of this document. 3. Conventions Theschemakey words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [KEYWORD]. Syntax definitions are written according to the <SyntaxDescription> ABNF [ABNF] rule specified in [MODELS], and matching rule definitions are written according to the <MatchingRuleDescription> ABNF rule specified in [MODELS], except that the syntax and matching rule definitions provided in this document are line-wrapped for readability.TheWhen such definitionsfor ALPHA, DIGIT, ldapOID, number, DOT, LDIGIT, and HYPHENaregiventransfered as attribute values in the LDAP protocolspecification [Prot]. Dally, Legg Expires 27 August 2002 [Page 6] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 The definition(e.g. as values ofOCTET, from [ABNF], is: OCTET = %x00-FF ; 8 bitsthe ldapSyntaxes and matchingRules attributes [MODELS] respectively) then those values would not contain line breaks. 4. Syntaxes Syntax definitions constrain the structure ofdata hex-digit = DIGIT / "a" / "b" / "c" / "d" / "e" / "f" / "A" / "B" / "C" / "D" / "E" / "F" k = ALPHA / DIGIT / HYPHEN octetstring = *OCTET p = ALPHA / DIGIT / "'" / "(" / ")" / "+" / "," / HYPHEN / "DOT" / "="/ "/" / ":" / "?" / " " numericstring = 1*DIGIT anhstring = 1*k keystring = ALPHA [ anhstring ] printablestring = 1*p space = 1*" " whsp = [ space ] utf8 = <any sequence of octets formed from the UTF-8 [UTF-8] transformation of a character from ISO 10646 [UCS] except "'"> dstring = 1*( utf8 / "''" ) ; escaped utf8 string, each "'" ; appearingattribute values stored in an LDAP directory, and determine thevalue to be encoded is ; escaped by a preceding "'" qdstring = "'" dstring "'" qdstringlist = [ qdstring *( space qdstring ) ] qdstrings = qdstring / ( "(" whsp qdstringlist whsp ")" ) In the following ABNF for the string representation of OBJECT IDENTIFIERs, 'descr' is the syntacticrepresentation ofan object descriptor, which consists of letters, digits,attribute andhyphens starting with a letter. An OBJECT IDENTIFIERassertion values transfered in thenumericoid format SHOULD NOT have leading zeroes (e.g., "0.9.3" is permitted but "0.09.3" SHOULD NOT be generated). When 'oid' elements occurLDAP protocol. Syntaxes that are required for directory operation, or that are ina value, the 'descr' notation optioncommon use, are specified in this section. Servers SHOULDbe usedrecognize all the syntaxes listed inpreferencethis document, but are NOT REQUIRED to otherwise support them, and MAY recognise or support other syntaxes. However, the'numericoid'. An object descriptordefinition of additional arbitrary syntaxes ismore readable than a numeric OBJECT IDENTIFIER,discouraged since it will hinder interoperability. Client anda Dally,server implementations typically do not have the ability to dynamically recognize new syntaxes. 4.1 General Considerations Legg & Dally Expires27 August 200220 June 2003 [Page7]5] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 February 2002 descriptor (where assignedLDAP: Syntaxes andknown byMatching Rules December 20, 2002 The description of each syntax specifies how attribute or assertion values conforming to theimplementation) SHOULDsyntax are to beusedrepresented when transfered inpreference to numeric oidsthe LDAP protocol [PROT]. This representation is referred to as thegreatest extent possible. ExamplesLDAP-specific encoding to distinguish it from other methods ofobject descriptors in LDAP areencoding attributetype, object class, and matching rule names. oid = descr / numericoid descr = keystring numericoid = numericstring *( DOT numericstring ) noidlen = numericoid [ "{" len "}" ] len = numericstring oids = oid / ( "(" space oidlist space ")" ) ; set of oids of either form oidlist = oid *( space "$" space oid ) qdescrs = qdescr / ( "(" whsp qdescrlist whsp ")" ) ; object descriptors used as schema element names qdescrlist = [ qdescr *( whsp qdescr ) ] qdescr = "'" descr "'" xstring = "X-" 1*( ALPHA / HYPHEN / "_" ) extensions = *( space xstring space qdstrings ) Note that while lines have been folded for readability invalues (e.g. thedefinitionsBER encoding [BER] used by X.500 [X.500] directories). The LDAP-specific encoding ofschema elements, (e.g., objectClassDescription attribute), the values transferred in protocol would not contain newlines. In cases where an arbitrary string, notaDistinguished Namegiven attribute syntax always produces octet-aligned values. To the greatest extent possible, encoding rules for LDAP syntaxes should produce character strings that can be displayed with little orpartno translation by clients implementing LDAP. However, clients MUST NOT assume that the LDAP-specific encoding ofone, is used ina value of anattribute, a backslash quoting mechanismunrecognized syntax isused to escape the following separator symbol character, (such as, "'", "$" or "#") if it occurs in thata human-readable character string.The backslash is followed byThere are apair of hexadecimal digits representing the next character. A backslash itself infew cases (e.g. thestring which forms part ofJPEG syntax) when it is not reasonable to produce alargerhuman-readable representation. Each LDAP syntax isalwaysuniquely identified with an object identifier [ASN.1] representedas '\5C' or '\5c'. An example is giveninsection 3.33, postalAddress syntax. Serversthe dotted-decimal format (short descriptive names are notrequireddefined for syntaxes). These object identifiers are not intended to be displayed toprovideusers. The object identifiers for thesame or any textsyntaxes defined in this document are summarized in Appendix A. A suggested minimum upper bound on thedescription partnumber ofthe subschema values they maintain. Dally, Legg Expires 27 August 2002 [Page 8] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 2.2 Syntaxes This section defines general requirements for LDAPcharacters in an attribute valuesyntaxes. All documents defining attribute syntaxes for usewithLDAP are expected to conform to these requirements. Syntaxes are also defined for matching rules whose assertion value syntax is different from the attribute value syntax. In an LDAP schema, an Object Identifier (OID) is assigned toasyntax definition when the syntax is named. Syntaxes that are currently in use in this specification andstring-based syntax, or theuser schema specification [User] are specified in this documentnumber of octets inSection 3. The object identifiersa value forthese syntaxes are listed in Annex A, also. In X.501 [Models] and X.520 [Attr],all other syntaxes, MAY be indicated by appending thedefinitionbound inside of curly braces following thesyntaxsyntax's OBJECT IDENTIFIER in an attribute type definition (see the <noidlen> rule in [MODELS]). Such a bound is not considered part of theattribute specification and a distinct OID for thesyntaxis not assigned. As a result, X.501 does not defineidentifier. For example, "1.3.6.1.4.1.1466.115.121.1.15{64}" in an attributefor publishing syntaxes explicitly indefinition suggests that the directory server will allow asubschema entry. In [Prot],value of theencodingattribute to be up to 64 characters long, although it may allow longer character strings. Note that a single character of theLDAP protocolDirectory String syntax can be encoded in more than one octet since UTF-8 [UTF-8] isspecified.a variable-length encoding. Therefore a 64 character string may be more than 64 octets in length. 4.2 Common Definitions Theprotcol encapsulates values of attributesfollowing ABNF rules are used inmany places. In this specification, the encodinga number of thevalues is specified, as part of eachsyntaxdefinition. These value encoding rules are termed "native LDAP encoding". The native LDAP encoding of a value is what is transmitteddefinitions inthe protocol, unless a transfer option has been invoked for the value. The transfer option mechanismSection 4.3. PrintableCharacter = ALPHA / DIGIT / SQUOTE / LPAREN / RPAREN / PLUS / COMMA / HYPHEN / DOT / EQUALS / SLASH / COLON / QUESTION / SPACE PrintableString = 1*PrintableCharacter Legg & Dally Expires 20 June 2003 [Page 6] INTERNET-DRAFT LDAP: Syntaxes andthe Binary transfer optionMatching Rules December 20, 2002 IA5String = *(%x00-7F) HEX-DIGIT = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" ; N.B. allows upper and lower case SLASH = %x2F ; forward slash ("/") COLON = %x3A ; colon (":") QUESTION = %x3F ; question mark ("?") The <OCTET>, <ALPHA>, <DIGIT>, <SQUOTE>, <LPAREN>, <RPAREN>, <PLUS>, <COMMA>, <HYPHEN>, <DOT>, <EQUALS> and <SPACE> rules are defined in[Prot]. The native LDAP encoding[MODELS]. 4.3 Syntax Definitions 4.3.1 Attribute Type Description A value ofa given attribute syntax always produces octet-aligned values. Tothegreatest extent possible,Attribute Type Description syntax is thenative LDAPdefinition of an attribute type. The LDAP-specific encoding of a value of this syntax issupposed to be usable for display purposes. In particular, encoding rules for attribute syntaxes defining non-binary values are supposed to produce strings that can be displayed with little or no translationdefined byclients implementing LDAP. There are a few cases (e.g., audio) however, when it is not sensible to produce a human-readable representation. 2.2.1 Syntaxes Implementation Status Clients and servers need not implement allthesyntaxes listed, and MAY implement other syntaxes. Clients MUST NOT assume that<AttributeTypeDescription> rule in [MODELS]. For example, thenative LDAP encodingfollowing definition of the createTimestamp attribute type from [MODELS] is also a value ofan unrecognizedthe Attribute Type Description syntaxis a human-readable character string. 2.2.2 Syntax Object Identifiers Syntaxes(note: line breaks have been added foruse with LDAP are named by OBJECT IDENTIFIERs, which are dotted-decimal strings. Thesereadability - they are notintended to be displayed Dally Expires 27 August 2002 [Page 9] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 to users. Annex A listspart of thesyntaxes that have been defined for LDAPvalue when transfered inthis document. Other documents define additional syntaxes. However, theprotocol). ( 2.5.18.1 NAME 'createTimestamp' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation ) The LDAP definitionof additional arbitrary syntaxes is strongly deprecated since it will hinder interoperability. Today's client and server implementations generally do not havefor theabilityAttribute Type Description syntax is: ( 1.3.6.1.4.1.1466.115.121.1.3 DESC 'Attribute Type Description' ) This syntax corresponds todynamically recognize new syntaxes. In most cases, attributes will be defined withthesyntax for directory strings.AttributeTypeDescription ASN.1 type from [X.501]. 4.3.2 Bit String Asuggested minimum upper bound on the number of characters in avaluewith a string-based syntax, orof thenumberBit String syntax is a sequence of binary digits. The LDAP-specific encoding ofbytes ina valuefor all other syntaxes, can be indicated by appending this bound count insideofcurly bracesthis syntax is defined by the following ABNF: BitString = SQUOTE *binary-digit SQUOTE "B" binary-digit = "0" / "1" Legg & Dally Expires 20 June 2003 [Page 7] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 The <SQUOTE> rule is defined in [MODELS]. Example: '0101111101'B The LDAP definition for the Bit String syntaxname's OBJECT IDENTIFIER in an attributeis: ( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'Bit String' ) This syntax corresponds to the BIT STRING ASN.1 typedefinition. Seefrom [ASN.1]. 4.3.3 Boolean A value of the"numericoid" production in paragraph 2.1. Such a boundBoolean syntax isnot partone of thesyntax name itself. For instance, "1.3.6.4.1.1466.0{64}" suggests that server implementations would allow a string to be 64 characters long, although they can allow longer strings. Note thatBoolean values, true or false. The LDAP-specific encoding of asingle charactervalue ofthe Directory Stringthis syntaxcan be encoded in more than one byte since UTF-8 [UTF-8]isa variable-length encoding. 2.2.3 Syntax Description Thedefined by the followingABNF is used in this document to associate a short description (e.g., a name) with a syntax OBJECT IDENTIFIER.ABNF: Boolean = "TRUE" / "FALSE" Theproductions for whsp, numericoid, qdescrs and qdstring are given in paragraph 2.1. Implementors, note that future versions of this document could expand thisLDAP definitionto include additional terms. Terms whose identifier begins with "X-" are reservedforprivate experiments, and MUST be followed by a <space> and a <qdstrings> tokens. SyntaxDescription = "(" whsp numericoid [ space "DESC" space qdstring ] extensions whsp ")" Note thattheSyntaxDescription ABNF is alsoBoolean syntax is: ( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' ) This syntax corresponds to theABNF that definesBOOLEAN ASN.1 type from [ASN.1]. 4.3.4 Country String A value of thenative LDAPCountry String syntax is one of the two-character codes from ISO 3166 [ISO3166] for representing a country. The LDAP-specific encoding ofvaluesa value of this syntax is defined by the following ABNF: CountryString = 2(PrintableCharacter) The <PrintableCharacter> rule is defined in Section 4.2. Examples: US AU The LDAPSyntax Description syntax. 2.2.4 Example For example, the syntax descripion ofdefinition for theINTEGERCountry String syntaxfor whole number valuesis: (1.3.6.1.4.1.1466.115.121.1.271.3.6.1.4.1.1466.115.121.1.11 DESC'INTEGER''Country String' )Dally,This syntax corresponds to the following ASN.1 type from [X.520]: Legg & Dally Expires27 August 200220 June 2003 [Page10]8] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 February 2002 2.3LDAP: Syntaxes and Matching RulesThe matching rules specifiedDecember 20, 2002 PrintableString (SIZE (2)) -- IS 3166 codes only 4.3.5 Delivery Method A value of the Delivery Method syntax is a sequence of items that indicate, in preference order, the service(s) by which an entity is willing and/or capable of receiving messages. The LDAP-specific encoding of a value of thisdocument aresyntax is definedin section 4. ( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'INTEGER'by the following ABNF: DeliveryMethod = pdm *( WSP DOLLAR WSP pdm )Matchingpdm = "any" / "mhs" / "physical" / "telex" / "teletex" / "g3fax" / "g4fax" / "ia5" / "videotex" / "telephone" The <WSP> and <DOLLAR> rules areused by servers to compare attribute values against assertion values when performing Search and Compare operations. They are also used to identify the value to be added or deleted when modifying entries, and are used when comparing a purported distinguished name with the name of an entry. Most of the attributes given in this document have an equality matching rule defined. ...An OID is assigned to a matching rule when it is defined. A matching rule definition ought not be changed without having a new OID assigned to it. 2.3.1 Matching Rules Implementation Status Servers which support matching rules and the extensibleMatch SHOULD implement all the matching rules in section 4. Servers MUST publish in the matchingRules attribute, the definitions of matching rules referenced by values of the attributeTypes and matchingRuleUse attributes in the same subschema entry. Other unreferenced matching rules MAY be published in the matchingRules attribute. If the server supports the extensibleMatch, then the server MAY use the matchingRuleUse attribute to indicate the applicability of selected matching rules to designated attribute types in an extensibleMatch. 2.3.2 Matching Rule Description Matching rule descriptions are written according to the following ABNF. The productions for numericoid, qdescrs, qdstring, oid, and whsp are given in section 2.1. Implementors, note that future versions of this document could expand this ABNF to include additional terms. Terms whose identifier begins with "X-" are reserved for private experiments, and MUST be followed by a <space> and a <qdstrings> tokens. MatchingRuleDescription = "(" whsp numericoid [ space "NAME" space qdescrs ] [ space "DESC" space qdstring ] [ space "OBSOLETE" ] space "SYNTAX" space numericoid Dally, Legg Expires 27 August 2002 [Page 11] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 extensions whsp ")" The first numericoid is the identifier of the MatchingRule being described. Note that the MatchingRuleDescription ABNF is also the ABNF that defines the native LDAP encoding of values of the Matching Rule Description syntax. 2.3.3 Example For example, in specifying a server which implements a privately- defined matching rule for performing sound-alike matches on Directory String-valued attributes, the matching rule could be written as (1.1.2.3.4.5 is an example, the OID of an actual matching rule would be different): matchingRule: ( 1.1.2.3.4.5 NAME 'soundAlikeMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) This description could be the one included in the subschema entry in the server. If this matching rule could be used with the attributes 2.5.4.41 and 2.5.4.15, the following could be the use description present in the subschema entry: matchingRuleUse: ( 1.1.2.3.4.5 APPLIES ( givenName $ surname ) ) A client could then make use of this matching rule by sending a search operation in which the filter is of the extensibleMatch choice, the matchingRule field is "soundAlikeMatch", and the type field is "givenName" or "surName". 2.4 Attribute Types Attributes represent the characteristics of the real-world object which an entry represents. The attributes defined in this document are given in section 5. An OID is assigned to an attribute type when it is defined. An attribute type definition ought not be changed without having a new OID assigned to it. 2.4.1 Attribute Types Implementation Status Servers MUST publish in the attributeTypes attribute of the same subschema entry, the definitions of attribute types referenced by values of the objectClasses, nameForms, matchingRuleUse and dITContentRules attributes, and attribute types referenced by the SUP field in values of the attributeTypes attribute itself. Other unreferenced attribute types MAY be published in the attributeTypes attribute. Dally, Legg Expires 27 August 2002 [Page 12] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 Schema developers MUST NOT create attribute type definitions whose names conflict with attribute types defined for use with LDAP in existing standards-track RFCs. See the registry of names of attribute types maintained by IANA [Consid]. All LDAP server implementations MUST recognize the attribute types defined in section 5. Servers MUST maintain values of these attributes in accordance with the definitions in X.501(93): createTimestamp, modifyTimestamp, creatorsName, modifiersName, subschemaSubentry, attributeTypes, objectClasses, matchingRules, and matchingRuleUse. The createTimestamp and creatorsName attributes SHOULD appear in entries which were created using the Add operation. The modifyTimestamp and modifiersName attributes SHOULD appear in entries which have been modified using LDAP update operations. The subschemaSubentry attribute SHOULD appear in all entries. Servers MUST recognize these attribute type names, but it is not required that a server provide values for these attributes, when the attribute corresponds to a feature which the server does not implement: namingContexts, altServer, supportedExtension, supportedControl, supportedSASLMechanisms, and supportedLDAPVersion. Servers MAY use the ldapSyntaxes attribute to list the syntaxes which are implemented. All servers SHOULD recognize these attribute type names, although typically only X.500 servers will implement their functionality: dITStructureRules, nameForms, and ditContentRules. For the status of user schema attribute types, see Section 3 of [User]. 2.4.2 Attribute Type Description Attribute types are expressed according to the following ABNF. The productions for whsp, numericoid, qdescrs, qdstring, space, oid, and noidlen are given in paragraph 2.1. Implementors, note that future versions of this document could expand this ABNF to include additional terms. Terms which begin with the characters "X-" are reserved for private experiments, and MUST be followed by a <space> and a <qdstrings> tokens. AttributeTypeDescription = "(" whsp numericoid [ space "NAME" qdescrs ] [ space "DESC" qdstring ] [ space "OBSOLETE" ] Dally, Legg Expires 27 August 2002 [Page 13] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 [ space "SUP" space oid ] [ space "EQUALITY" space oid ] [ space "ORDERING" space oid ] [ space "SUBSTR" space oid ] [ space "SYNTAX" space noidlen ] [ space "SINGLE-VALUE" ] [ space "COLLECTIVE" ] [ space "NO-USER-MODIFICATION" ] [ space "USAGE" space AttributeUsage ] extensions whsp ")" The numericoid is the identifier of the AttributeType being described. The NAME string is the string registered with IANA [Consid] and used to identify values and value assertions of the attribute described. The SUP oid is an identifier of the Attribute Type from which the attribute described is derived (i.e., a subtype). The EQUALITY, ORDERING, AND SUBSTR oids name the Matching Rules for the attribute being defined. See section 2.3 for the SYNTAX noidlen explanation. The default setting is "multi-valued" when SINGLE-VALUE is absent. The default setting is "not collective" when COLLECTIVE is absent. The default setting is "user modifiable" when NO-USER-MODIFICATION is absent. The default setting is "userApplication" when USAGE is absent. Servers SHOULD provide at least one of the "SUP" and "SYNTAX" fields for each AttributeTypeDescription. An AttributeDescription (i.e., the means of referring to an attribute in the protocol [Prot]) can be used as the value in a NAME part of an AttributeTypeDescription. Note that these are case insensitive. Note that the AttributeTypeDescription does not list the matching rules which can be used with that attribute type in an extensibleMatch search filter. This is done using the matchingRuleUseDescription describeddefined insection 3.24.[MODELS]. Example: telephone $ videotex The LDAP definition for the Delivery Method syntax is: ( 1.3.6.1.4.1.1466.115.121.1.14 DESC 'Delivery Method' ) Thisdocument refinessyntax corresponds to theschema descriptionfollowing ASN.1 type from [X.520]: SEQUENCE OF INTEGER { any-delivery-method (0), mhs-delivery (1), physical-delivery (2), telex-delivery (3), teletex-delivery (4), g3-facsimile-delivery (5), g4-facsimile-delivery (6), ia5-terminal-delivery (7), videotex-delivery (8), telephone-delivery (9) } 4.3.6 Directory String A value ofX.501 [Models] by requiring thatthe Directory String syntaxfield in an AttributeTypeDescription beis a stringrepresentation of an OBJECT IDENTIFIER for the LDAP string syntax definition, and a possible indicationof one or more arbitrary characters from themaximumUniversal Character Set (UCS) [UCS]. A zero length character string is not permitted. The LDAP-specific encoding of a value of thisattribute (defined in section 2.2.2). Dally, Legg Expires 27 August 2002 [Page 14] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 Note that the AttributeTypeDescription ABNFsyntax isalsotheABNF that defines the Attribute Type Description syntax. 2.4.3 Example For example, it would be useful forUTF-8 encoding [UTF-8] of thedirectorycharacter string. Such encodings conform toknow when an entry was put intothedirectory. Thefollowingdefinition is an Attribute Type Description that could be used to specify such an attribute. ( 2.5.18.1 NAME 'createTimestamp' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation ) The SYNTAX oid indicates the Generalized Time syntax. 2.5 Object Classes Object classes are used to categorize the kinds of entries stored in the directoryABNF: DirectoryString = 1*UTF8 Legg & Dally Expires 20 June 2003 [Page 9] INTERNET-DRAFT LDAP: Syntaxes andto determine what attributes are contained in those entries. In general, every entryMatching Rules December 20, 2002 The <UTF8> rule is defined interms of an abstract class ("top"), at least one structural object class, and zero or more auxiliary object classes. Whether an object class is abstract, structural, or auxiliary is defined when the object class OID is assigned. An object class definition ought not be changed without having a new identifier assigned to it. 2.5.1 Object Classes Implementation Status Servers SHOULD implement the subschema object class. Implementing the extensibleObject object class[MODELS]. Example: This isOPTIONAL.a value of Directory String containing #!%#@. Servers and clients MUSTpublish inbe prepared to receive arbitrary UCS code points, including code points outside theobjectClasses attributerange of printable ASCII and code points not presently assigned to any character. Attribute type definitions using thesame subschema entry,Directory String syntax should not restrict thedefinitionsformat ofobject classes referencedDirectory String values, e.g. byvalues ofrequiring that thenameForms and dITContentRules attributes, and object classes referencedcharacter string conforms to specific patterns described bythe SUP field in values of the objectClasses attribute itself. Other unreferenced object classes MAYABNF. A new syntax should bepublished in the objectClasses attribute. Schema developers MUST NOT create object class definitions whose names conflict with object classesdefinedfor use with LDAPinexisting standards-track RFCs. See the registry of names of Object Classes maintained by IANA [Consid]. Dally, Legg Expires 27 August 2002 [Page 15] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 2.5.2 Object Class Description Object class descriptions are written according to the following ABNF.such cases. Theproductions for whsp, numericoid, qdescrs, qdstring, space, and oids are given in section 2.1. Implementors, note that future versions of this document could expand thisLDAP definitionto include additional terms. Terms whose identifier begins with "X-" are reservedforprivate experiments, and MUST be followed by a <space> and a <qdstrings> tokens. ObjectClassDescription = "(" whsp numericoid [ space "NAME" space qdescrs ] [ space "DESC" space qdstring ] [ space "OBSOLETE" ] [ space "SUP" space oids ] [ spacethe Directory String syntax is: ("ABSTRACT" / "STRUCTURAL" / "AUXILIARY"1.3.6.1.4.1.1466.115.121.1.15 DESC 'Directory String' )] [ space "MUST" space oids ] [ space "MAY" space oids ] ; AttributeTypes extensions whsp ")"This syntax corresponds to the DirectoryString parameterized ASN.1 type from [X.520]. ThenumericoidDirectoryString ASN.1 type allows a choice between the TeletexString, PrintableString or UniversalString ASN.1 types from [ASN.1]. However, note that the chosen alternative is not indicated in theidentifierLDAP-specific encoding of a Directory String value. Implementations which convert Directory String values from theObjectClass being described. The NAME string isLDAP-specific encoding to the BER encoding used by X.500 must choose an alternative that permits thestring registered with IANA [Consid] and used to identify instances ofparticular characters in theObjectClass described. The SUP oids arestring, and must convert theidentifiers ofcharacters from theObject Classes which areUTF-8 encoding into thesuperclasses (object classes)character encoding of theObject Class defined. The default setting is "structural" when ABSTRACT, STRUCTURAL, and AUXILIARY are absent. The MUST oids identifychosen alternative. When converting Directory String values from theAttribute Types that are requiredBER encoding tohave values in every instance oftheObject Class. The MAY oids identify Attribute Types that can appear, as appropriate, in an instance ofLDAP-specific encoding theObject Class. 2.5.3 Example For example, information about an employee with respect to their job is useful in an application which queriescharacters must be converted from thedirectory. The same pieces of information are needed in several kindscharacter encoding ofentries, such as manager, part-time, and exempt employees. An auxiliary object class could be developed to be included inthestructural object classes that representchosen alternative into thedifferent kinds of employees. The pieces of information could be: nameUTF-8 encoding. 4.3.7 DIT Content Rule Description A value of thelast training course attended, how many courses hasDIT Content Rule Description syntax is theemployee taken, category of training program. The typesdefinition ofinformation could be named the lastCourse, coursesCount, program attributes, respectively.a DIT content rule. Thefollowing could be the descriptionLDAP-specific encoding ofan auxiliary object class that Dally, Legg Expires 27 August 2002 [Page 16] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 provides for inclusiona value of this syntax is defined by thetraining information<DITContentRuleDescription> rule indifferent kinds of entries. (The OID is artificial.)[MODELS]. Example: (1.1.3.170.2.65 NAME 'trainingInfo' AUXILIARY MUST program MAY2.5.6.4 DESC 'content rule for organization' NOT (lastCoursex121Address $coursesCounttelexNumber ) )Dally,Legg & Dally Expires27 August 200220 June 2003 [Page17]10] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 February 2002 3.LDAP: Syntaxes3.1 Attribute Typeand Matching Rules December 20, 2002 Note: a line break has been added for readability - it is not part of the value. The LDAP definition for the DIT Content Rule Description syntax is: ( 1.3.6.1.4.1.1466.115.121.1.16 DESC 'DIT Content Rule Description' ) This syntax corresponds to the DITContentRuleDescription ASN.1 type from [X.501]. 4.3.8 DIT Structure Rule Description A value of the DIT Structure Rule DescriptionA value in thissyntax isathe definition ofan attribute type according to the ABNF given in paragraph 2.4.2.a DIT structure rule. Thenative LDAPLDAP-specific encodingis the character codes in UTF-8 which correspond to the characters in the definition. Thisof a value of this syntax is defined by theform in which schema attribute types are published in the directory<DITStructureRuleDescription> rule ina subentry.[MODELS]. Example: ( 2 DESC 'organization structure rule' FORM 2.5.15.3 ) Thefollowing syntax description givesLDAP definition for theOID assigned to this syntax:DIT Structure Rule Description syntax is: (1.3.6.1.4.1.1466.115.121.1.31.3.6.1.4.1.1466.115.121.1.17 DESC'Attribute Type'DIT Structure Rule Description' )For example,This syntax corresponds to the DITStructureRuleDescription ASN.1 type from [X.501]. 4.3.9 DN A value of the DN syntax is the (purported) distinguished name of an entry [MODELS]. The LDAP-specific encoding of a value of this syntax is defined by the <distinguishedName> rule in [LDAPDN]. Examples (from [LDAPDN]): UID=jsmith,DC=example,DC=net OU=Sales+CN=J. Smith,DC=example,DC=net CN=John Smith\, III,DC=example,DC=net CN=Before\0dAfter,DC=example,DC=net 1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com CN=Lu\C4\8Di\C4\87 The LDAP definitionfrom [User] offor thebusinessCategory attribute type:DN syntax is: (2.5.4.15 NAME 'businessCategory' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128}1.3.6.1.4.1.1466.115.121.1.12 DESC 'DN' ) Legg & Dally Expires 20 June 2003 [Page 11] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 The DN syntax corresponds to the DistinguishedName ASN.1 typeforfrom [X.501]. Note that a BER encoded distinguished name (as used by X.500) re-encoded into thebusinessCategory Attribute Type is Directory String. This example definitionLDAP-specific encoding isa value ofnot necessarily reversible to theAttribute Type Description syntax. The native LDAPoriginal BER encoding since the chosen string type in any DirectoryString components ofthis valuethe distinguished name is not indicated in thedefinition itself. 3.2 Bit StringLDAP-specific encoding of the distinguished name (see Section 4.3.6). 4.3.10 Enhanced Guide A valuein this syntax is a valueof theBIT STRING data type from ASN.1 [ASN1].Enhanced Guide syntax suggests criteria, which consist of combinations of attribute types and filter operators, to be used in constructing filters to search for entries of particular object classes. ThefollowingEnhanced Guide syntaxdescription givesimproves upon theOID assignedGuide syntax by allowing the recommended depth of the search tothis syntax: ( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'Bit String' )be specified. Thenative LDAPLDAP-specific encoding of a value of this syntax is defined by the following ABNF:bitstringEnhancedGuide ="'" *binary-digit "'B" binary-digitobject-class SHARP WSP criteria WSP SHARP WSP subset object-class ="0"WSP oid WSP subset = "baseobject" /"1""oneLevel" / "wholeSubtree" criteria = and-term *( BAR and-term ) and-term = term *( AMPERSAND term ) term = EXCLAIM term / attributetype DOLLAR match-type / LPAREN criteria RPAREN / true / false match-type = "EQ" / "SUBSTR" / "GE" / "LE" / "APPROX" true = "?true" false = "?false" BAR = %x7C ; vertical bar ("|") AMPERSAND = %x26 ; ampersand ("&") EXCLAIM = %x21 ; exclamation mark ("!") The <SHARP>, <WSP>, <oid>, <LPAREN>, <RPAREN>, <attributetype> and <DOLLAR> rules are defined in [MODELS]. The LDAP definition for the Enhanced Guide syntax is: ( 1.3.6.1.4.1.1466.115.121.1.21 DESC 'Enhanced Guide' ) Example:'0101111101'B Dally,Legg & Dally Expires27 August 200220 June 2003 [Page18]12] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 20023.3 Boolean A value in thisperson#(sn$EQ)#oneLevel The Enhanced Guide syntaxis a value ofcorresponds to theBOOLEAN dataEnhancedGuide ASN.1 type fromASN.1 [ASN1]. That is, there are exactly two values: one value representing logically true, and the other representing logically false. The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' )[X.520]. Thenative LDAP encoding of a value isEnhancedGuide type references thefollowing ABNF: boolean = "TRUE" / "FALSE" 3.4 Country String A value in this syntax is twoCriteria ASN.1printable string characters representing a country.type, also from [X.520]. Thepermitted values are as listed<true> rule above represents an empty "and" expression inISO 3166 [Codes]. The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.11 DESC 'Country String' ) The native LDAP encoding ofa valueisof thefollowing ABNF: CountryString = p pCriteria type. Theproduction for p is given in section 2.1. Example: US 3.5 Delivery Method A value<false> rule above represents an empty "or" expression inthis syntax isasetvalue of theASN.1 enumerated INTEGER values that indicates, in preference order, the service(s) by which the user, represented byCriteria type. 4.3.11 Facsimile Telephone Number A value of theentry,Facsimile Telephone Number syntax iswilling and/or capablea subscriber number ofreceiving messages. The following syntax description givesa facsimile device on theOID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.14 DESC 'Delivery Method' )public switched telephone network. Thenative LDAPLDAP-specific encoding of a value of this syntax is defined by the following ABNF:delivery-valuefax-number =pdm / ( whsp pdm space "$" space delivery-valuetelephone-number *( DOLLAR fax-parameter )pdmtelephone-number ="any" / "mhs" / "physical" / "telex"PrintableString fax-parameter = "twoDimensional" /"teletex""fineResolution" /"g3fax""unlimitedLength" /"g4fax""b4Length" /"ia5""a3Width" /"videotex""b4Width" /"telephone" Dally, Legg Expires 27 August 2002 [Page 19] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002"uncompressed" Theproduction for space is given in section 2.1. Example: telephone $ videotex 3.6 Directory String A value in this syntax<telephone-number> is avalue of one of the TeletexString, PrintableString or UniversalString data types from ASN.1 [ASN1]. The minimum length of a Directory String value is one character, that is, thestringcannot be 'empty'. The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.15 DESC 'Directory String' ) The native LDAP encodingofa value isprintable characters that complies with thecharacter string itself. Note:internationally agreed format for representing international telephone numbers [E.123]. Theform of DirectoryString<PrintableString> rule isnot indicateddefined inprotocol, unless the ;binary option is used (see [Prot]). Servers which convert to DAP MUST choose an appropriate form. Servers MUST NOT reject values merely because they contain legal Unicode characters outside of the range of printable ASCII. Servers and clients MUST be prepared to receive arbitrary Unicode characters, including characters not presently assigned to any character set. Example: ThisSection 4.2. The <DOLLAR> rule isa string of DirectoryString containing #!%#@. For charactersdefined in [MODELS]. The LDAP definition for thePrintableString form,Facsimile Telephone Number syntax is: ( 1.3.6.1.4.1.1466.115.121.1.22 DESC 'Facsimile Telephone Number') The Facsimile Telephone Number syntax corresponds to the FacsimileTelephoneNumber ASN.1 type from [X.520]. 4.3.12 Fax A valueinof thenative LDAP encodingFax syntax is an image which is produced using the Group 3 facsimile process [FAX] to duplicate an object, such as a memo. The LDAP-specific encoding of a valueitself. If itof this syntax isin the TeletexString form, thenthecharacters are transliterated to their equivalentsstring of octets for a Group 3 Fax image as defined inUniversalString,[FAX]. The LDAP definition for the Fax syntax is: Legg & Dally Expires 20 June 2003 [Page 13] INTERNET-DRAFT LDAP: Syntaxes andencoded in UTF-8 [UTF-8]. If itMatching Rules December 20, 2002 ( 1.3.6.1.4.1.1466.115.121.1.23 DESC 'Fax' ) The ASN.1 type corresponding to the Fax syntax is defined as follows, assuming EXPLICIT TAGS: Fax ::= CHOICE { g3-facsimile [3] G3FacsimileBodyPart } The G3FacsimileBodyPart ASN.1 type is defined in [X.420]. 4.3.13 Generalized Time A value of theUniversalString or BMPString forms [UCS], UTF-8Generalized Time syntax isthe native LDAP encoding. 3.7 DIT Content Rule Description Aa character string representing a date and time. The LDAP-specific encoding of a valueinof this syntax is adefinitionrestriction ofa DIT content rule according tothe format defined in [ISO8601], and is described by the following ABNF:DITContentRuleDescriptioncentury ="(" whsp numericoid [ space "NAME" space qdescrs ] [ space "DESC" space qdstring ]2(%x30-39) ; "00" to "99" year = 2(%x30-39) ; "00" to "99" month = ( %x30 %x31-39 ) ; "01" (January) to "09" / ( %x31 %x30-32 ) ; "10" to "12" day = ( %x30 %x31-39 ) ; "01" to "09" / ( %x31-32 %x30-39 ) ; "10" to "29" / ( %x32 %x30-31 ) ; "30" to "31" hour = ( %x30-31 %x30-39 ) / ( %x32 %x30-33 ) ; "00" to "23" minute = %x30-36 %x30-39 ; "00" to "59" second = %x30-36 %x30-39 ; "00" to "59" GeneralizedTime = century year month day hour [space "OBSOLETE" ]minute [space "AUX" space oidssecond ][ space "MUST" space oids] [space "MAY" space oidsfraction ]Dally, Legg Expires 27 August 2002 [Page 20] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002g-time-zone fraction = ( DOT / COMMA ) 1*(%x30-39) g-time-zone = %x5A ; "Z" / g-differential g-differential = ( MINUS / PLUS ) hour [space "NOT" space oidsminute ]extensions whsp ")"MINUS = %x2D ; minus sign ("-") Thenumericoid is<DOT>, <COMMA> and <PLUS> rules are defined in [MODELS]. The time value represents coordinated universal time (equivalent to Greenwich Mean Time) if theidentifier"Z" form of <g-time-zone> is used, otherwise theStructural Object Class to which the Content Rule being described applies. The MUST oids identify Attribute Types, besides thosevalue represents a local time in theStructural Object Class, that must have values in every instance oftime zone indicated by <g-differential>. In theObject Class. ...The MAY oids identify Attribute Types, besides those inlatter case, coordinated universal time can be calculated by subtracting theStructural and Auxiliary Object Classes, that are permitted to have values in an instance ofdifferential from theStructural Object Class.local time. TheNOT oids identify Attribute Types, which occur"Z" form of <g-time-zone> SHOULD be used inthe Structuralpreference to <g-differential>. Legg & Dally Expires 20 June 2003 [Page 14] INTERNET-DRAFT LDAP: Syntaxes andAuxiliary Object Classes, that are prohibited from havingMatching Rules December 20, 2002 Examples: 199412161032Z 199412160532-0500 Both example valuesin an instance ofrepresent theStructural Object Class.same coordinated universal time: 40:32 am, December 16, 1994. TheAUX oids identifyLDAP definition for theAuxiliary Object Classes which can be addedGeneralized Time syntax is: ( 1.3.6.1.4.1.1466.115.121.1.24 DESC 'Generalized Time' ) This syntax corresponds toinstancesthe GeneralizedTime ASN.1 type from [ASN.1], with the constraint that local time without a differential SHALL NOT be used. 4.3.14 Guide A value of theStructural Object Class. The productions for whsp, numericoid, qdescrs, qdstring, spaceGuide syntax suggests criteria, which consist of combinations of attribute types andoids are givenfilter operators, to be used insection 2.1. Implementors, note that future versions of this document could expand this ABNFconstructing filters toinclude additional terms. Terms which begin with the characters "X-" are reservedsearch forprivate experiments,entries of particular object classes. The Guide syntax is obsolete andMUSTshould not befollowed by a <space> andused for defining new attribute types. The LDAP-specific encoding of a<qdstrings> tokens. Thisvalue of this syntax is defined by theform in which schema contentfollowing ABNF: Guide = [ object-class SHARP ] criteria The <object-class> and <criteria> rules arepublisheddefined inthe directorySection 4.3.10. The <SHARP> rule is defined ina subentry.[MODELS]. Thefollowing syntax description givesLDAP definition for theOID assigned to this syntax:Guide syntax is: (1.3.6.1.4.1.1466.115.121.1.161.3.6.1.4.1.1466.115.121.1.25 DESC'DIT Content Rule Description''Guide' )3.8 DIT Structure Rule DescriptionThe Guide syntax corresponds to the Guide ASN.1 type from [X.520]. 4.3.15 IA5 String A valueinof theDIT Structure Rule DescriptionIA5 String syntax is adefinitionstring ofa schema Structure Rule according to the following ABNF: DITStructureRuleDescription = "(" whsp ruleidentifier [ space "NAME" space qdescrs ] [ space "DESC" space qdstring ] [ space "OBSOLETE" ] space "FORM" space oid [ space "SUP" ruleidentifiers ] extensions whsp ")" Dally, Legg Expires 27 August 2002 [Page 21] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 The ruleidentifier is an integer which distinguisheszero, oneStructure Ruleor more characters from International Alphabet 5 (IA5) [T.50], theothers used ininternational version of thesame LDAP server.ASCII character set. TheFORM oid identifies the Name Form that specifiesLDAP-specific encoding of a value of this syntax is thenaming attribute(s) used atunconverted string of characters, which conforms to thepoint<IA5String> rule in Section 4.2. The LDAP definition for theDITIA5 String syntax is: Legg & Dally Expires 20 June 2003 [Page 15] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' ) This syntax corresponds towhichtheStructure Rule applies.IA5String ASN.1 type from [ASN.1]. 4.3.16 Integer A value of the Integer syntax is a whole number of unlimited magnitude. TheSUP ruleidentifiers indicateLDAP-specific encoding of a value of this syntax is theStructure Rules that can be applied immediately aheadoptionally signed decimal digit character string representation of thesubject Structure Rule innumber (so, for example, theDIT. That is,number 1321 is represented by theRDN forms which can be one level higher incharacter string "1321"). The encoding is defined by theDIT. ruleidentifier = numericstring ruleidentifiers = ruleidentifier / "(" whsp ruleidentifierlist whsp ")" ruleidentifierlistfollowing ABNF: Integer = [ruleidentifier *( space ruleidentifier )HYPHEN ] number Theproductions for whsp, numericstring, qdescrs, qdstring, space,<HYPHEN> andoid<number> rules aregivendefined inparagraph 2.1.[MODELS]. ThenativeLDAPencoding isdefinition for thecharacter codes in UTF-8 [UTF-8] which correspondInteger syntax is: ( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'INTEGER' ) This syntax corresponds to thecharacters inINTEGER ASN.1 type from [ASN.1]. 4.3.17 JPEG A value of thestructure rule definition. ThisJPEG syntax isthe form in which schema structure rules are publishedan image in thedirectoryJPEG File Interchange Format (JFIF), as described ina subentry.[JPEG]. ThefollowingLDAP-specific encoding of a value of this syntaxdescription givesis theOID assigned to this syntax:sequence of octets of the JFIF encoding of the image. The LDAP definition for the JPEG syntax is: (1.3.6.1.4.1.1466.115.121.1.171.3.6.1.4.1.1466.115.121.1.28 DESC'DIT Structure Rule Description''JPEG' )3.9 DNThe JPEG syntax corresponds to the following ASN.1 type: JPEG ::= OCTET STRING (CONSTRAINED BY { -- contents octets are an image in the -- -- JPEG File Interchange Format -- }) 4.3.18 LDAP Syntax Description A valueinof theDistinguished NameLDAP Syntax Description syntax is the description of an LDAP syntax. The LDAP-specific encoding of astructured setvalue of this syntax is defined by theASN.1 data types that are included<SyntaxDescription> rule inthe DirectoryString syntax.[MODELS]. Legg & Dally Expires 20 June 2003 [Page 16] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 Thefollowing syntax description givesLDAP definition for theOID assigned to this syntax:LDAP Syntax Description syntax is: (1.3.6.1.4.1.1466.115.121.1.121.3.6.1.4.1.1466.115.121.1.54 DESC'DN''LDAP Syntax Description' ) Thenativeabove LDAPencoding ofdefinition for the LDAP Syntax Description syntax is itself a legal value of the LDAP Syntax Description syntax. The ASN.1 type corresponding to the LDAP Syntax Description syntax is defined as follows, assuming EXPLICIT TAGS: LDAPSyntaxDescription ::= SEQUENCE { identifier OBJECT IDENTIFIER, description DirectoryString { ub-schema } OPTIONAL } The DirectoryString parameterized ASN.1 type is defined in[DN String]. Note that[X.520]. The value of ub-schema is implementation defined. 4.3.19 Matching Rule Description A value of thenative LDAP encodingMatching Rule Description syntax isnot reversible totheoriginal BERdefinition of a matching rule. The LDAP-specific encodingused in X.500 for Distinguished Names, as the CHOICEofany DirectoryString elementa value of this syntax is defined by the <MatchingRuleDescription> rule inan RDN[MODELS]. Example: ( 2.5.13.2 NAME 'caseIgnoreMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) Note: a line break has been added for readability - it is notevident inpart of thenativesyntax. The LDAPencoding.. Seedefinition for thenote in section 3.10. Examples (from [DN String]): CN=Steve Kille,O=Isode Limited,C=GB OU=Sales+CN=J. Smith,O=Widget Inc.,C=US Dally, Legg Expires 27 August 2002 [Page 22] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 CN=L. Eagle,O=Sue\, Grabbit and Runn,C=GB CN=Before\0DAfter,O=Test,C=GB 1.1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB SN=Lu\C4\8Di\C4\87 3.10 Enhanced GuideMatching Rule Description syntax is: ( 1.3.6.1.4.1.1466.115.121.1.30 DESC 'Matching Rule Description' ) This syntax corresponds to the MatchingRuleDescription ASN.1 type from [X.501]. 4.3.20 Matching Rule Use Description A valueinof theEnhanced GuideMatching Rule Use Description syntaxisindicates the attribute types to which a matchingcriteria and scope of operationrule may be applied in anEnhanced Filter.extensibleMatch search filter [PROT]. Thenative LDAPLDAP-specific encoding of a value of this syntax is defined by thefollowing ABNF: EnhancedGuide = space oid whsp "#" whsp criteria whsp "#" whsp subset subset = "baseobject" / "oneLevel" / "wholeSubtree" criteria = or-term / "(" or-term ")" or-term = and-term *( "|" and-term<MatchingRuleUseDescription> rule in [MODELS]. Example: Legg & Dally Expires 20 June 2003 [Page 17] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 ( 2.5.13.16 APPLIES ( givenName $ surname )and-term = not-term *( "&" not-term)not-term = "!" not-term / attributetype "$" match-type / "(" or-term ")" / "?true" / ; "?false" The ?true term alternative represents an empty "and" in the Criteria ASN.1 type.The?false alternative represents an empty "or" inLDAP definition for theCriteria ASN.1 type. match-type = "EQ" / "SUBSTR" / "GE" / "LE" / "APPROX" The followingMatching Rule Use Description syntaxdescription gives the OID assigned to this syntax:is: (1.3.6.1.4.1.1466.115.121.1.211.3.6.1.4.1.1466.115.121.1.31 DESC'Enhanced Guide''Matching Rule Use Description' )Example: person#(sn)#oneLevel 3.11 Facsimile Telephone NumberThis syntax corresponds to the MatchingRuleUseDescription ASN.1 type from [X.501]. 4.3.21 Name and Optional UID A valueinof theFacsimile Telephone NumberName and Optional UID syntaxis a subscriber number onis the(public) telephone networkdistinguished name [MODELS] of an entity optionally accompanied by afacsimile device.unique identifier that serves to differentiate the entity from others with an identical distinguished name. TheDally, Legg Expires 27 August 2002 [Page 23] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 native LDAPLDAP-specific encoding of a value of this syntax is defined by the following ABNF:fax-numberNameAndOptionalUID =printablestringdistinguishedName ["$" faxparametersSHARP BitString ]; telephone number, possibly followed by facsimile parameters faxparameters = faxparm / ( faxparm "$" faxparameters ) faxparm = "twoDimensional" / "fineResolution" / "unlimitedLength" / "b4Length" / "a3Width" / "b4Width" / "uncompressed"Theproduction for printablestring<BitString> rule isgivendefined insection 2.1.Section 4.3.2. Thetelephone number is based on E.123 [Tel #]. A printablestring<distinguishedName> rule isthe PrintableString data type from ASN.1 [ASN1]. The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.22 DESC 'Facsimile Telephone Number') 3.12 Fax A valuedefined inthe Fax syntax is an image which is produced using the Group 3 facsimile process [Fax] to duplicate an object, such as a memo.[LDAPDN]. Thefollowing syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.23 DESC 'Fax' ) Values in this syntax are expressed as octet strings containing Group 3 Fax images as<SHARP> rule is defined in[Fax]. 3.13 Generalized Time A value[MODELS]. Note that although the '#' character may occur in theGeneralized Time syntaxstring representation of a distinguished name, no additional escaping of this character is performed when adate and time. The year<distinguishedName> isgiven asencoded in afour-digit number.<NameAndOptionalUID>. Example: 1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B ThenativeLDAPencoding is a value ofdefinition for theGeneralizedTime data type from ASN.1 [ASN1]. Time zone MUST be presentName andSHOULD be GMT (Z). The followingOptional UID syntaxdescription gives the OID assigned to this syntax:is: (1.3.6.1.4.1.1466.115.121.1.241.3.6.1.4.1.1466.115.121.1.34 DESC'Generalized Time''Name And Optional UID' )Example: 199412161032Z means 10:32 a.m. Dec. 16, 1994 inThis syntax corresponds to theGreenwich Mean Time time zone. Dally, Legg Expires 27 August 2002 [Page 24] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 3.14 GuideNameAndOptionalUID ASN.1 type from [X.520]. 4.3.22 Name Form Description A valueinof theGuideName Form Description syntax is thematching criteria indefinition of aFilter. The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.25 DESC 'Guide' ) The Guide syntax is not intended toname form, which regulates how entries may beused for defining new attributes. It is important for backwards compatibility with LDAP systems that implement an earlier version of LDAP [LDAP '95].named. Thenative LDAPLDAP-specific encoding of a value of this syntax is defined by thefollowing ABNF: guide-value = [ object-class "#" ] criteria object-class = space oid The criteria production is defined in the Enhanced Guide syntaxLegg & Dally Expires 20 June 2003 [Page 18] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 <NameFormDescription> rule insection 3.14.[MODELS]. Example: ( 2.5.15.3 NAME 'orgNameForm' OC organization MUST o ) TheproductionsLDAP definition foroid and space are in section 2.1. 3.15 IA5the Name Form Description syntax is: ( 1.3.6.1.4.1.1466.115.121.1.35 DESC 'Name Form Description' ) This syntax corresponds to the NameFormDescription ASN.1 type from [X.501]. 4.3.23 Numeric String A valueinof theIA5Numeric String syntax is avalue of the IA5String data type from ASN.1 [ASN1]. International Alphabet 5 (IA5) [IA5] is the international versionsequence ofthe ASCII character set. The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' )one or more numerals and spaces. Thenative LDAPLDAP-specific encoding of a valueinof this syntax is thecharacterunconverted stringvalue itself. 3.16 Integer A value in the INTEGER syntax is a whole number as specified inof characters, which conforms to theINTEGER data type from ASN.1 [ASN1]. Thefollowingsyntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'INTEGER' )ABNF: NumericString = 1*(DIGIT / SPACE) The <DIGIT> and <SPACE> rules are defined in [MODELS]. Example: 15 079 672 281 ThenativeLDAPencoding of a value is the decimal representation of the value, with each decimal digit represented by the its character equivalent. So, the number 1321 is represented bydefinition for thecharacter string "1321". Dally, Legg Expires 27 August 2002 [Page 25] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 3.17 JPEGNumeric String syntax is: ( 1.3.6.1.4.1.1466.115.121.1.36 DESC 'Numeric String' ) This syntax corresponds to the NumericString ASN.1 type from [ASN.1]. 4.3.24 Object Class Description A valueinof theJPEGObject Class Description syntax is the definition of animage produced according to specific rules for light values.object class. Thenative LDAPLDAP-specific encoding of a value of this syntax isstrings containing JPEG images indefined by theJPEG File Interchange Format (JFIF), as described<ObjectClassDescription> rule in[JPEG]. The following syntax[MODELS]. Example: ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ descriptiongives) ) Note: a line break has been added for readability - it is not part of theOID assigned to this syntax:syntax. The LDAP definition for the Object Class Description syntax is: Legg & Dally Expires 20 June 2003 [Page 19] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 (1.3.6.1.4.1.1466.115.121.1.281.3.6.1.4.1.1466.115.121.1.37 DESC'JPEG''Object Class Description' )3.18 LDAP Syntax DescriptionThis syntax corresponds to the ObjectClassDescription ASN.1 type from [X.501]. 4.3.25 Octet String A valueinof theLDAP Syntax DescriptionOctet String syntax is adefinitionsequence ofa LDAP syntax description according to the ABNF given in section 2.2.3.zero, one or more arbitrary octets. Thenative LDAPLDAP-specific encoding of a value of this syntax is thecharacter codes in UTF-8 [UTF-8]unconverted sequence of octets, whichcorrespondconforms to thecharacters in the definition. This syntaxfollowing ABNF: OctetString = *OCTET The <OCTET> rule isthe formdefined inwhich schema[MODELS]. Values of this syntaxdescriptionsarepublished in the directory in a subentry.not generally human-readable. Thefollowing syntax description givesLDAP definition for theOID assigned to this syntax:Octet String syntax is: (1.3.6.1.4.1.1466.115.121.1.541.3.6.1.4.1.1466.115.121.1.40 DESC'LDAP Syntax Description''Octet String' )Note that, in X.520 [Attr], syntaxes are not labeled distinctly with respectThis syntax corresponds toattributes. 3.19 Matching Rule Descriptionthe OCTET STRING ASN.1 type from [ASN.1]. 4.3.26 OID A valueinof theMatching Rule DescriptionOID syntax is an object identifier; adefinitionsequence of two or more non-negative integers that uniquely identify some object or item of specification. Many ofa matching rule according totheABNF givenobject identifiers used insection 2.3.2. The nativeLDAP also have IANA registered names [RFC3383]. The LDAP-specific encodingis the character codes in UTF-8 [UTF-8] which correspond to the characters in the definitionof aMatching Rule. Thisvalue of this syntax is defined by theform in which schema matching rules are published in the directory<oid> rule ina subentry.[MODELS]. Examples: 1.2.3.4 cn Thefollowing syntaxLDAP definitiongivesfor the OIDassigned to this syntax:syntax is: (1.3.6.1.4.1.1466.115.121.1.311.3.6.1.4.1.1466.115.121.1.38 DESC'Matching Rule Description''OID' )3.20This syntax corresponds to the OBJECT IDENTIFIER ASN.1 type from [ASN.1]. 4.3.27 Other Mailbox Legg & Dally Expires 20 June 2003 [Page 20] INTERNET-DRAFT LDAP: Syntaxes and MatchingRule Use DescriptionRules December 20, 2002 A valueinof theMatching Rule Use DescriptionOther Mailbox syntaxisidentifies an electronic mailbox, in adefinitionparticular named mail system. The LDAP-specific encoding of amatching Rule and the attribute types with which the rule could be used in an extensibleMatch search filter according tovalue of this syntax is defined by the following ABNF:MatchingRuleUseDescriptionOtherMailbox ="(" whsp numericoid [ space "NAME" space qdescrs ] Dally, Legg Expires 27 August 2002 [Page 26] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 [ space "DESC" space qdstring ] [ space "OBSOLETE" ] space "APPLIES" space oids ; AttributeType identifiers extensions whsp ")" The numericoid identifies the Matching Rule for which the usage is specified.mailbox-type DOLLAR mailbox mailbox-type = PrintableString mailbox = IA5String TheAPPLIES oids identify<mailbox-type> rule represents theAttribute Types fortype of mail system in which theMatching Rule can be used. The productions for whsp, numericoid, qdescrs, qdstring, space, and oids are given in paragraph 2.1. Implementors, note that future versions of this document could expand this ABNF to include additional terms. Terms whose identifier begins with "X-" are reservedmailbox resides, forprivate experiments, and MUST be followed by a <space>example "MCIMail", anda <qdstrings> tokens. The native LDAP encoding<mailbox> is thecharacter codesactual mailbox inUTF-8 [UTF-8] which correspond tothecharactersmail system described by <mailbox-type>. The <PrintableString> and <IA5String> rules are defined inthe definition.Section 4.2. Thefollowing syntax description gives<DOLLAR> rule is defined in [MODELS]. The LDAP definition for theOID assigned to this syntax:Other Mailbox syntax is: (1.3.6.1.4.1.1466.115.121.1.311.3.6.1.4.1.1466.115.121.1.39 DESC'Matching Rule Use Description''Other Mailbox' )ThisThe ASN.1 type corresponding to the Other Mailbox syntax isthe form in which schema matching rule usage permissions are published in the directory in a subentry. 3.21 MHS ORdefined as follows, assuming EXPLICIT TAGS: OtherMailbox ::= SEQUENCE { mailboxType PrintableString, mailbox IA5String } 4.3.28 Postal Address A valueinof theMHS ORPostal Address syntax isthe addressing information ofauserseries of strings which form anX.400 messaging service.address in a physical mail system. Thenative LDAPLDAP-specific encoding of a value of this syntax is definedin RFC 1327 [Map]. The following syntax description givesby theOID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.33 DESC 'MHS OR Address'following ABNF: PostalAddress = line *( DOLLAR line )3.22 Name and Optional UID A valueline = 1*line-char line-char = %x00-23 / (%x5C "24") ; escaped "$" / %x25-5B / (%x5C "5C") ; escaped "\" / %x5D-7F / UTFMB Each <line> ofthe Name and Optional UID (Unique IDentifier) syntax isaDistinguished Namepostal address value is encoded asdefined in section 3.13 plusabitUTF-8 [UTF-8] string except thatdifferentiates"\" and "$" characters, if they occur in thevalue from otherwise identical names. The native LDAP encoding ofline, are escaped by avalue is"\" character followed by thefollowing ABNF: NameAndOptionalUID = DistinguishedName [ "#" bitstring ] Dally,two hexadecimal digit code for the character. The <HEX-DIGIT> rule is defined in Section Legg & Dally Expires27 August 200220 June 2003 [Page27]21] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002 4.2. Thebitstring production is<DOLLAR> and <UTFMB> rules are defined insection 3.3. Although[MODELS]. Many servers limit the'#' character could occur in a string representationpostal address to no more than six lines ofa distinguished name,noadditional special quoting is done.more than thirty characters each. Example:1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B1234 Main St.$Anytown, CA 12345$USA \241,000,000 Sweepstakes$PO Box 1000000$Anytown, CA 12345$USA Thefollowing syntax description givesLDAP definition for theOID assigned to this syntax:Postal Address syntax is: (1.3.6.1.4.1.1466.115.121.1.341.3.6.1.4.1.1466.115.121.1.41 DESC'Name And Optional UID''Postal Address' )3.23 Name Form DescriptionThis syntax corresponds to the PostalAddress ASN.1 type from [X.520], i.e. PostalAddress ::= SEQUENCE SIZE(1..ub-postal-line) OF DirectoryString(ub-postal-string) 4.3.29 Printable String A valueinof theName Form DescriptionPrintable String syntax is adefinitionstring ofa Name Form according to the following ABNF: NameFormDescription = "(" whsp numericoid [ space "NAME" space qdescrs ] [ space "DESC" space qdstring ] [ space "OBSOLETE" ] space "OC" space oid space "MUST" space oids ; AttributeTypes [ space "MAY" space oids ] ; AttributeTypes extentions whsp ")" The numericoid identifieslatin alphabetic, numeric, and (limited) punctuation characters as specified by theName Form being described.<PrintableCharacter> rule in Section 4.2. TheOC oid identifiesLDAP-specific encoding of a value of this syntax is theStructural Object Class for instancesunconverted string of characters, whichthe Name Form specifies the naming attributes (i.e., the RDN). The MUST oids identify the Attribute Types that are requiredconforms tohave a distinguished value intheRDN for a directory entry. The MAY oids identify Attribute Types that are optional<PrintableString> rule inthe RDN.Section 4.2. Example: This is a PrintableString. TheproductionsLDAP definition forwhsp, numericoid, qdescrs, qdstring, oid, and oids are given in section 2.1. Implementors, note that future versions of this document could have expanded this ABNFthe PrintableString syntax is: ( 1.3.6.1.4.1.1466.115.121.1.44 DESC 'Printable String' ) This syntax corresponds toinclude additional terms.the PrintableString ASN.1 type from [ASN.1]. 4.3.30 Substring Assertion A valueindicatesof the Substring Assertion syntax is a sequence of zero, one or moreattributes in an entry type (e.g., person, device) that arecharacter substrings used asthe Relative Distinguished Namean argument for substring extensible matching of character string attribute values, i.e. as theentries. This syntax is the form in which schema name forms are published in the directory. The native LDAP encodingmatchValue of avalueMatchingRuleAssertion [PROT]. Each substring isthe character codes in UTF-8 [UTF-8] which correspond to thea string of one or more arbitrary charactersinfrom thedefinition. Dally,Universal Legg & Dally Expires27 August 200220 June 2003 [Page28]22] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002The following syntax description gives the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.35 DESC 'Name Form Description' ) 3.24 Numeric StringCharacter Set (UCS) [UCS]. Avalue in the Numeric String syntaxzero length substring isa series of numerals and spaces as specified in the NumericString data type from ASN.1 [ASN1]. The following string states the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.36 DESC 'Numeric String' )not permitted. TherepresentationLDAP-specific encoding of astring invalue of this syntax is defined by thestring value itself. Example: 1997 3.25 Object Class Description Afollowing ABNF: SubstringAssertion = [ initial ] any [ final ] initial = substring any = ASTERISK *(substring ASTERISK) final = substring ASTERISK = %x2A ; asterisk ("*") substring = 1*substring-character substring-character = %x00-29 / (%x5C "2A") ; escaped "*" / %x2B-5B / (%x5C "5C") ; escaped "\" / %x5D-7F / UTFMB Each <substring> of a Substring Assertion valuein this syntaxis encoded as a UTF-8 [UTF-8] string, except that "\" and "*" characters, if they occur in the substring, are escaped by a "\" characterstring which expressesfollowed by thedefinition of an object class according totwo hexadecimal digit code for theABNF given in section 2.5.2. Thischaracter. The Substring Assertion syntax is used only as theform in which schema object classes are publishedsyntax of assertion values in thedirectoryextensible match. It is not used as an attribute syntax, or ina subentry.the SubstringFilter [PROT]. Thefollowing string statesLDAP definition for theOID assigned to this syntax:Substring Assertion syntax is: (1.3.6.1.4.1.1466.115.121.1.371.3.6.1.4.1.1466.115.121.1.58 DESC'Object Class Description' ) For example, the character string below specifies the country object class, which requires the c (country name) attribute and allows the searchGuide and description attributes. All of these schema elements are specified in [User]. ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c MAY ( searchGuide $ description )'Substring Assertion' )3.26 Octet StringThis syntax corresponds to the SubstringAssertion ASN.1 type from [X.520]. 4.3.31 Telephone Number A valueinof theOctet StringTelephone Number syntax is avaluestring of printable characters that complies with theOCTET STRING data type from ASN.1 [ASN1].internationally agreed format for representing international telephone numbers [E.123]. Thefollowing string states the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' ) Values in this syntax are written asLDAP-specific encoding of aseriesvalue of8-bit values, according tothis syntax is theoctetunconverted stringvalue notation specified in [ASN1]. In the caseofcharacter strings,characters, which conforms to thecharacters themselves could be written.<PrintableString> rule in Section 4.2. Example:secret Dally,+1 512 315 0280 Legg & Dally Expires27 August 200220 June 2003 [Page29]23] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 20023.27 OID A value in the Object Identifier syntax is a series of integers, ordered as specified in the OBJECT IDENTIFIER data type from ASN.1 [ASN1].Thefollowing string statesLDAP definition for theOID assigned to this syntax:Telephone Number syntax is: (1.3.6.1.4.1.1466.115.121.1.381.3.6.1.4.1.1466.115.121.1.50 DESC'OID''Telephone Number' )Values in thisThe Telephone Number syntaxare expressed accordingcorresponds to theABNF in section 2.1 for "oid". Examples: 1.2.3.4 cn 3.28 Other Mailboxfollowing ASN.1 type from [X.520]: PrintableString (SIZE(1..ub-telephone-number)) The value of ub-telephone-number is implementation defined. 4.3.32 Teletex Terminal Identifier A valuein the Other Mailboxof this syntaxgives a mail system name withspecifies thenameidentifier and (optionally) parameters of amailbox in the system.teletex terminal. Thefollowing string states the OID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.39 DESC 'Other Mailbox' ) Values inLDAP-specific encoding of a value of this syntaxare written according tois defined by the following ABNF:otherMailboxteletex-id =mailbox-type "$" mailbox mailbox-typettx-term *(DOLLAR ttx-param) ttx-term =printablestring mailboxPrintableString ; terminal identifier ttx-param = ttx-key COLON ttx-value ; parameter ttx-key = "graphic" / "control" / "misc" / "page" / "private" ttx-value = *ttx-value-char ttx-value-char =<an encoded IA5 String>%x00-23 / (%x5C "24") ; escaped "$" / %x25-5B / (%x5C "5C") ; escaped "\" / %x5D-FF Theprintablestring production is defined in section 2.1. In the above, mailbox-type represents the type of mail system in which the mailbox resides, for example "MCIMail";<PrintableString> andmailbox is the actual mailbox in the mail system<COLON> rules are definedby mailbox-type. 3.29 Postal Address A valueinthe Postal Address syntaxSection 4.2. The <DOLLAR> rule isa series of strings which form an addressdefined ina physical mail system.[MODELS]. Thefollowing string statesLDAP definition for theOID assigned to this syntax:Teletex Terminal Identifier syntax is: (1.3.6.1.4.1.1466.115.121.1.411.3.6.1.4.1.1466.115.121.1.51 DESC'Postal Address''Teletex Terminal Identifier' )Values in thisThis syntaxare written accordingcorresponds to thefollowing ABNF: postal-address = dstring *( "$" dstring ) In the above, each dstring component of a postal address value is written as aTeletexTerminalIdentifier ASN.1 type from [X.520]. 4.3.33 Telex Number A value oftype Directory String syntax. Backslashes and dollar characters, if they occur inthecomponent, are quoted as Dally,Telex Number syntax specifies the telex number, country code and answerback code of a telex terminal. Legg & Dally Expires27 August 200220 June 2003 [Page30]24] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002described in section 2.1. Many servers limit the postal address to six linesThe LDAP-specific encoding ofup to thirty characters.a value of this syntax is defined by the following ABNF: telex-number = actual-number DOLLAR country-code DOLLAR answerback actual-number = PrintableString country-code = PrintableString answerback = PrintableString Theproduction for dstring<PrintableString> rule is defined insection 2.1. Example: 1234 Main St.$Anytown, CA 12345$USA \241,000,000 Sweepstakes$PO Box 1000000$Anytown, CA 12345$USA 3.30 Presentation Address A value in the Presentation Address syntaxSection 4.2. The <DOLLAR> rule isan OSI Application Layer address of a remote application. Logically, a presentation address consists of: o A presentation selector o A session selector o A transport selector o A set of network addressesdefined in [MODELS]. Thefollowing string statesLDAP definition for theOID assigned to this syntax:Telex Number syntax is: (1.3.6.1.4.1.1466.115.121.1.431.3.6.1.4.1.1466.115.121.1.52 DESC'Presentation Address''Telex Number' )Values in thisThis syntaxare written accordingcorresponds to thefollowing ABNF: presentation-address = [[[ psel "/" ] ssel "/" ] tsel "/" ] network-address-list psel = selector ssel = selector tsel = selector network-address-list = network-address "_" network-address-list / network-address network-address = "NS" "+" dothexstring / afi "+" idi [ "+" dsp ] / idp "+" hexstring The first (NS) alternative is the Concrete Binary Representation. It isTelexNumber ASN.1 type from [X.520]. 4.3.34 UTC Time A value of thecompact encoding. The afi alternativeUTC Time syntax is auser-oriented representation ofcharacter string representing anetwork address. The idp alternative isdate and time to aformprecision ofnetwork-address included for compatibility with ISO 8348 [NSAP]. Dally, Legg Expires 27 August 2002 [Page 31] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 selector = """ otherstring """ / "#" numericstring / "'" hexstring "'H" / ""one minute or one second. Theotherstring alternative for the selectoryear isIA5 characters.given as a two-digit number. The"" alternative for the selector expressesLDAP-specific encoding of a value of this syntax follows thecase whereformat defined in [ASN.1] for theselectorUTCTime type and ispresent, but Empty. idp = numericstring dspdescribed by the following ABNF: UTCTime ="d" numericstring / "x" dothexstring / "l" otherstring / "RFC-1006" "+" prefix "+" ip [ "+" portyear month day hour minute ["+" tset ]] / "X.25(80)" "+" prefix "+" dtesecond ] ["+" cudf-or-pid "+" hexstringu-time-zone ] u-time-zone = %x5A ; "Z" / u-differential u-differential = ( MINUS /"ECMA-117-Binary" "+" hexstring "+" hexstring "+" hexstring / "ECMA-117-Decimal" "+" numericstring "+" numericstring "+" numericstringPLUS ) hour minute Thed alternative is the Abstract Decimal form of the Domain Specific Part (dsp)<year>, <month>, <day>, <hour>, <minute>, <second> and <MINUS> rules are defined ina network address.Section 4.3.13. Thex alternative<DOLLAR> rule is defined in [MODELS]. The time value represents coordinated universal time if theAbstract Binary"Z" form ofthe dsp in a network address. The l alternative<u-time-zone> isIA5 characters and is only meaningful locally. idi = numericstring afi = "X121" / "DCC" / "TELEX" / "PSTN" / "ISDN" / "ICD" / "LOCAL" prefix = DIGIT DIGIT ip = numericstring ; dotted decimal form (e.g., 10.0.0.6) or domain (e.g., twg.com) port = numericstring tset = numericstring dte = numericstring cudf-or-pid = "CUDF" / "PID" other = k / "+" / DOT domainchar = k / DOT Dally, Legg Expires 27 August 2002 [Page 32] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 hexoctet = hex-digit hex-digit decimal-octet = 1*3DIGIT otherstring = other otherstring / other domainstring = domainchar otherstring / domainchar hexstring = hexoctet hexstring / hexoctet dotstring = decimaloctet DOT dotstring / decimaloctet DOT decimaloctet dothexstring = dotstring / hexstring 3.31 Printable String Aused, otherwise the valueinrepresents a local time. In thePrintable String syntaxlatter case, if <u-differential> isa series of alphabetic, numeric, and (limited) punctuation characters as specified inprovided then coordinated universal time can be calculated by subtracting thePrintableString data typedifferential fromASN.1 [ASN1] andthe local time. The <u-time-zone> SHOULD be present inproduction ptime values and the "Z" form ofsection 2.1. Values<u-time-zone> SHOULD be used inthis syntax are expressed as the string itself.preference to <u-differential>. Thefollowing string statesLDAP definition for theOID assigned to this syntax:UTC Time syntax is: (1.3.6.1.4.1.1466.115.121.1.441.3.6.1.4.1.1466.115.121.1.53 DESC'Printable String''UTC Time' )Example:Legg & Dally Expires 20 June 2003 [Page 25] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 Note: Thisis a PrintableString. 3.32 Substring Assertion The Substring Assertionsyntax isuseddeprecated in favor of the Generalized Time syntax. The UTC Time syntax corresponds to the UTCTime ASN.1 type from [ASN.1]. 5. Matching Rules Matching ruleswhich can beare usedin substringsby directory implementations to compare attribute values against assertion values when performing Search andextensible matching rules. When using a substrings assertion, substrings componentsCompare operations [PROT]. They areprovided inalso used when comparing aSubstringFilter sequence. The following string statespurported distinguished name [MODELS] with theOID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.58 DESC 'Substring Assertion' )name of an entry. Whenusing amodifying entries, matchingrule assertion, substring componentsrules areencoded accordingused tothe following ABNFidentify values to be deleted andprovided as the matchValue of the MatchingRuleAssertion: substring = [initial] any [final] initial = value any = "*" *(value "*") final = value The <value> production is a UTF-8 [UTF-8] string. If a backslashto prevent an attribute from containing two equal values. Matching rules that are required for directory operation, orasterix character is presentthat are ina production of <value>, it is quoted as describedcommon use, are specified insection 2.1. Dally, Legg Expires 27 August 2002 [Page 33] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 3.33 Telephone Numberthis section. 5.1 General Considerations Avaluematching rule is applied to attribute values through an AttributeValueAssertion or MatchingRuleAssertion [PROT]. The conditions under which an AttributeValueAssertion or MatchingRuleAssertion evaluates to Undefined are specified in [PROT]. If an assertion is not Undefined then thetelephone number syntaxresult of the assertion is theseriesresult ofcharacters that express a number (address) assigned to a telephone system subscriber. The following string statesapplying theOID assignedselected matching rule. A matching rule evaluates tothis syntax: ( 1.3.6.1.4.1.1466.115.121.1.50 DESC 'Telephone Number' ) ValuesTRUE, and inthis syntax are writtensome cases Undefined, asif they were Printable String types. Telephone numbers are definedspecified inX.520 [Attr] to comply withtheinternationally agreed format for expressing international telephone numbers in Recommendation E.123 [Tel #]. Example: +1 512 315 0280 3.34 Teletex Terminal Identifier A value in this syntax is a stringdescription ofcharacters that expresstheidentifier value assignedmatching rule, otherwise it evaluates toa teletex service subscriber.FALSE. Each assertion contains an assertion value. Thefollowing string statesdefinition of each matching rule specifies theOID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.51 DESC 'Teletex Terminal Identifier' ) Values in thissyntaxare written according to the following ABNF: teletex-id = ttx-term 0*("$" ttx-param) ttx-term = printablestring ttx-param = ttx-key ":" ttx-value ttx-key = "graphic" / "control" / "misc" / "page" / "private" ttx-value = octetstring Infor theabove,assertion value. The syntax of thefirst printablestringassertion value is typically, but not necessarily, theencoding ofsame as thefirst portionsyntax of theteletex terminal identifierattribute values tobe encoded, andwhich thesubsequent 0 or more octetstrings are subsequent portions ofmatching rule may be applied. Note that theteletex terminal identifier. The productions for printablestring and octetstring are defined in section 2.1. 3.35 Telex Number A valueAssertionValue in a SubstringFilter [PROT] MUST conform to theTelex Numberassertion syntaxisof thenumber assigned to a telex system subscriber withequality matching rule for thecountry and answerback values indicated. Dally, Legg Expires 27 August 2002 [Page 34] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 The following string statesattribute type rather than theOID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.52 DESC 'Telex Number' ) Values in thisassertion syntaxare written according toof thefollowing ABNF: telex-number = actual-number "$" country "$" answerback actual-number = printablestring country = printablestring answerback = printablestring Insubstrings matching rule for theabove, actual-numberattribute type. The entire SubstringFilter isthe syntactic representationconverted into an assertion value of thenumber portionsubstrings matching rule prior to applying the rule. The description of each matching rule indicates whether theTELEX number being written, countryrule is suitable for use as theTELEX country code, and answerbackequality matching rule (EQUALITY), ordering matching rule (ORDERING) or substrings matching rule (SUBSTR) in an attribute type definition [MODELS]. Each matching rule isthe answerback codeuniquely identified with an object identifier. Legg & Dally Expires 20 June 2003 [Page 26] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 The definition of aTELEX terminal. The production for printablestringmatching rule should not be subsequently changed. If a change is desirable then a new matching rule with a different object identifier should be defined instead. Servers SHOULD implement all the matching rules insection 2.1. 3.36 UTC Time A valueSection 5.2. Servers MAY implement additional matching rules. Servers which implement the extensibleMatch filter SHOULD allow the matching rules listed in Section 5.2 to be used in theUTC Time syntax is a dateextensibleMatch filter andtime indicating accuracySHOULD allow matching rules tominute or second. The yearbe used with all attribute types known to the server, where the assertion syntax of the matching rule isgiventhe same asa two-digit number. The following string statestheOID assigned to this syntax: ( 1.3.6.1.4.1.1466.115.121.1.53 DESC 'UTC Time' ) Values in thisvalue syntaxare written as if they were printable strings, formulated as specified forof the attribute. Servers MUST publish in the matchingRules attribute, the definitions of matching rules referenced by values of theUTCTime data typeattributeTypes and matchingRuleUse attributes inASN.1 [ASN1]. It is strongly suggested that GMT timethe same subschema entry. Other unreferenced matching rules MAY beused. Note: This syntax is deprecatedpublished infavor oftheGeneralized Time syntax. Dally, Legg Expires 27 August 2002 [Page 35] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 4.matchingRules attribute. If the server supports the extensibleMatch filter, then the server MAY use the matchingRuleUse attribute to indicate the applicability (in an extensibleMatch filter) of selected matching rules to nominated attribute types. 5.2 MatchingRulesRule Definitions Whenperformingevaluating thecaseExactMatch, caseIgnoreMatch,caseExactIA5Match, caseIgnoreIA5Match, caseIgnoreIA5SubstringsMatch, caseIgnoreListMatch,telephoneNumberMatch, caseExactIA5MatchcaseIgnoreMatch, caseIgnoreOrderingMatch andcaseIgnoreIA5Match,caseIgnoreSubstringsMatch matching rules multiple adjoining whitespace characters are treated the same as an individual space, and leading and trailing whitespace is ignored.4.15.2.1 bitStringMatch Thefollowing ABNF associates thebitStringMatch rulewithcompares an assertion value of the Bit Stringsyntax: ( 2.5.13.16 NAME 'bitStringMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 ) ;syntax to an attribute value of a syntax (e.g. the Bit StringThis matching rulesyntax) whose corresponding ASN.1 type isused to test equality. 4.2 caseExactIA5Match The following ABNF associatesBIT STRING. If thecaseExactIA5Match rule withcorresponding ASN.1 type of theIA5 String syntax: ( 1.3.6.1.4.1.1466.109.114.1 NAME 'caseExactIA5Match' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ; IA5attribute syntax does not have a named bit list (which is the case for the Bit StringThis matchingsyntax) then the ruleis usedevaluates totest equality. 4.3 caseIgnoreIA5MatchTRUE if and only if the attribute value has the same number of bits as the assertion value and the bits match on a bitwise basis. If the corresponding ASN.1 type does have a named bit list then Legg & Dally Expires 20 June 2003 [Page 27] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 bitStringMatch operates as above except that trailing zero bits in the attribute and assertion values are treated as absent. Thefollowing ABNF associatesLDAP definition for thecaseIgnoreIA5MatchbitStringMatch rulewith the IA5 String syntax:is: (1.3.6.1.4.1.1466.109.114.22.5.13.16 NAME'caseIgnoreIA5Match''bitStringMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.261.3.6.1.4.1.1466.115.121.1.6 ); IA5 String This matchingThe bitStringMatch rule isused to test equality. 4.4 caseIgnoreListMatchan equality matching rule. 5.2.2 caseExactIA5Match TheABNF below associates the caseIgnoreListMatchcaseExactIA5Match rulewithcompares an assertion value of thePostal Address syntax. The X.520 [Attr]IA5 String syntaxfor this matching rule isto an attribute value of aSEQUENCE Of DirectoryString. Since the Postal Addresssyntax (e.g the IA5 String syntax) whose corresponding ASN.1 type issuch a sequence, itIA5String. The rule evaluates to TRUE if and only if the attribute value and the assertion value have the same number of characters and corresponding characters are the same. Letter case isusedsignificant indefiningthematching rulecomparison. The LDAP definition forLDAP, althoughthematchingcaseExactIA5Match rulecan be used with any SEQUENCE OF DirectoryString syntax/assertion.is: (2.5.13.111.3.6.1.4.1.1466.109.114.1 NAME'caseIgnoreListMatch''caseExactIA5Match' SYNTAX1.3.6.1.4.1.1466.115.121.1.411.3.6.1.4.1.1466.115.121.1.26 ); Postal Address This matching rule is used to test equality. Dally, Legg Expires 27 August 2002 [Page 36] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 4.5 caseIgnoreMatchThefollowing ABNF associates the caseIgnoreMatch rule with the Directory String syntax: ( 2.5.13.2 NAME 'caseIgnoreMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) ; Directory String This matchingcaseExactIA5Match rule isused to test equality. 4.6 caseIgnoreOrderingMatchan equality matching rule. 5.2.3 caseIgnoreIA5Match Thefollowing ABNF associates the caseIgnoreOrderingMatchcaseIgnoreIA5Match rulewithcompares an assertion value of theDirectory String syntax: ( 2.5.13.3 NAME 'caseIgnoreOrderingMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) ; DirectoryIA5 StringThis matching rule is usedsyntax totest inequality, i.e., greaterOrEqual or lessOrEqual. The sort ordering foran attribute value of acaseIgnoreOrderingMatchsyntax (e.g the IA5 String syntax) whose corresponding ASN.1 type isimplementation- dependent. 4.7 caseIgnoreSubstringsMatchIA5String. Thefollowing ABNF associates the caseIgnoreSubstringsMatch rule with the Substring Assertion: ( 2.5.13.4 NAME 'caseIgnoreSubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 ) ; Substring Assertion This matchingruleis usedevaluates totest substrings equality. 4.8 distinguishedNameMatch The following ABNF associatesTRUE if and only if the attribute value and the assertion value have the same number of characters and corresponding characters are thedistinguishedNameMatch rule withsame, ignoring theDN syntax: ( 2.5.13.1 NAME 'distinguishedNameMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ; DN This matching rule is used to test equality. 4.9 generalizedTimeMatchcase of letters. Thefollowing ABNF associatesLDAP definition for thegeneralizedTimeMatchcaseIgnoreIA5Match rulewith the Generalized Time syntax:is: (2.5.13.271.3.6.1.4.1.1466.109.114.2 NAME'generalizedTimeMatch''caseIgnoreIA5Match' SYNTAX1.3.6.1.4.1.1466.115.121.1.241.3.6.1.4.1.1466.115.121.1.26 ); Generalized Time Dally,The caseIgnoreIA5Match rule is an equality matching rule. Legg & Dally Expires27 August 200220 June 2003 [Page37]28] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002This matching5.2.4 caseIgnoreIA5SubstringsMatch The caseIgnoreIA5SubstringsMatch rule compares an assertion value of the Substring Assertion syntax to an attribute value of a syntax (e.g the IA5 String syntax) whose corresponding ASN.1 type isusedIA5String. The rule evaluates totest equality. 4.10 generalizedTimeOrderingMatchTRUE if and only if the substrings of the assertion value match disjoint portions of the attribute value in the order of the substrings in the assertion value, and an <initial> substring, if present, matches the beginning of the attribute value, and a <final> substring, if present, matches the end of the attribute value. A substring matches a portion of the attribute value if corresponding characters are the same, ignoring the case of letters. (2.5.13.281.3.6.1.4.1.1466.109.114.3 NAME'generalizedTimeOrderingMatch''caseIgnoreIA5SubstringsMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.241.3.6.1.4.1.1466.115.121.1.58 ); Generalized Time ThisThe caseIgnoreIA5SubstringsMatch rule is a substrings matching rule. 5.2.5 caseIgnoreListMatch The caseIgnoreListMatch rule compares an assertion value that isuseda sequence of strings totest inequality, i.e., greaterOrEqual or lessOrEqual. 4.11 integerFirstComponentMatch The following ABNF associatesan attribute value of a syntax (e.g. theintegerFirstComponentMatchPostal Address syntax) whose corresponding ASN.1 type is a sequence of the DirectoryString ASN.1 type. The rulewithevaluates to TRUE if and only if theINTEGER syntax: ( 2.5.13.29 NAME 'integerFirstComponentMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ; INTEGER Implementors, note thatattribute value and the assertion value have the same number of strings and corresponding strings (by position) match according to the caseIgnoreMatch matching rule. In [X.520] the assertion syntaxoffor this matchingrule, an INTEGER,rule is defined to be: SEQUENCE OF DirectoryString {ub-match} i.e. different from thevalue syntaxcorresponding type for the Postal Address syntax. The choice ofattributesthe Postal Address syntax forwhich this istheequality matching rule. Thisassertion syntax of the caseIgnoreListMatch in LDAP should not be seen as limiting the matching ruleis usedtotest equalityonly apply to attributes with thefirst component in a compoundPostal Address syntax.4.12 integerMatchThefollowing ABNF associatesLDAP definition for theintegerMatchcaseIgnoreListMatch rulewith the INTEGER syntax:is: (2.5.13.142.5.13.11 NAME'integerMatch''caseIgnoreListMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.271.3.6.1.4.1.1466.115.121.1.41 ); INTEGER This matchingLegg & Dally Expires 20 June 2003 [Page 29] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 The caseIgnoreListMatch rule isused to test equality. 4.13 numericStringMatchan equality matching rule. 5.2.6 caseIgnoreMatch Thefollowing ABNF associates the numericStringMatchcaseIgnoreMatch rulewithcompares an assertion value of theNumericDirectory Stringsyntax: ( 2.5.13.8 NAME 'numericStringMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 ) ; Numericsyntax to an attribute value of a syntax (e.g. the Directory String, Printable String, Country StringThis matching ruleor Telephone Number syntax) whose corresponding ASN.1 type isusedDirectoryString or one of its alternative string types, e.g. PrintableString. The rule evaluates totest equality. 4.14 numericStringSubstringsMatchTRUE if and only if the attribute value and the assertion value have the same number of characters and corresponding characters are the same, ignoring the case of letters. The LDAP definition for the caseIgnoreMatch rule is: (2.5.13.102.5.13.2 NAME'numericStringSubstringsMatch''caseIgnoreMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.581.3.6.1.4.1.1466.115.121.1.15 ); Substring Assertion This matchingThe caseIgnoreMatch rule isusedan equality matching rule. 5.2.7 caseIgnoreOrderingMatch The caseIgnoreOrderingMatch rule compares an assertion value of the Directory String syntax totest substrings equality. Dally, Legg Expires 27 August 2002 [Page 38] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 4.15 objectIdentifierFirstComponentMatchan attribute value of a syntax (e.g. the Directory String, Printable String, Country String or Telephone Number syntax) whose corresponding ASN.1 type is DirectoryString or one of its alternative string types. Thefollowing ABNF associates the objectIdentifierFirstComponentMatchrulewithevaluates to TRUE if, and only if, in theOID syntax: ( 2.5.13.31 NAME 'objectIdentifierFirstComponentMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 ) ; OID Ifnormal collation order for theclient supplies an extensible filter using an objectIdentifierFirstComponentMatch whose matchValue isattribute syntax after lower-case letters in both the"descr" form,attribute andthe OID is not recognizedassertion values have been replaced by their upper-case equivalents, theserver, thenattribute value appears earlier than thefilter is Undefined. This matching ruleassertion value, i.e. the attribute value isused to test equality with"less than" thefirst component inassertion value. The collation order for values of the DirectoryString syntax is implementation-defined. [Editor's note: this will be specified by acompound syntax. 4.16 objectIdentifierMatchstringprep profile before final publication.] Thefollowing ABNF associatesLDAP definition for theobjectIdentifierMatchcaseIgnoreOrderingMatch rulewith the OID syntax:is: (2.5.13.02.5.13.3 NAME'objectIdentifierMatch''caseIgnoreOrderingMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.381.3.6.1.4.1.1466.115.121.1.15 ); OID This matchingThe caseIgnoreOrderingMatch rule isused to test equality. Implementors, note that the assertion syntax of thisan ordering matchingrule,rule. Legg & Dally Expires 20 June 2003 [Page 30] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 5.2.8 caseIgnoreSubstringsMatch The caseIgnoreSubstringsMatch rule compares anOID, is different from theassertion valuesyntaxofattributes for which this istheequality matching rule. If the client supplies a filter usingSubstring Assertion syntax to anobjectIdentifierMatchattribute value of a syntax (e.g. the Directory String, Printable String, Country String or Telephone Number syntax) whosematchValue oidcorresponding ASN.1 type isin the "descr" form,DirectoryString or one of its alternative string types. The rule evaluates to TRUE if and only if theoid is not recognized by the server, then the filter is Undefined. 4.17 octetStringMatch Servers which implementsubstrings of theextensibleMatch filter SHOULD allowassertion value match disjoint portions of thematching rule listed in this section to be usedattribute value in theextensibleMatch. In general these servers SHOULD allow matching rules to be used with all attribute types known toorder of theserver, whensubstrings in the assertionsyntaxvalue, and an <initial> substring, if present, matches the beginning of thematching rule isattribute value, and a <final> substring, if present, matches thesame asend of the attribute value. A substring matches a portion of the attribute valuesyntaxif corresponding characters are the same, ignoring the case of letters. The LDAP definition for theattribute.caseIgnoreSubstringsMatch rule is: ( 2.5.13.4 NAME 'caseIgnoreSubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 ) TheOctet String MatchcaseIgnoreSubstringsMatch rule is a substrings matching rule. 5.2.9 distinguishedNameMatch The distinguishedNameMatch rule comparesfor equalityanasserted octet string withassertion value of the DN syntax to an attribute value of a syntax (e.g. the DN syntax) whose corresponding ASN.1 typeOCTET STRING.is DistinguishedName. Thestrings matchrule evaluates to TRUE ifthey areand only if the attribute value and the assertion value have the samelengthnumber of RDNs and correspondingoctetsRDNs (by position) areidentical. ( 2.5.13.17 NAME 'octetStringMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) Dally, Legg Expires 27 August 2002 [Page 39] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 4.18 presentationAddressMatch The following ABNF associatesthepresentationAddressMatch rule withsame. An RDN of thePresentation Address syntax: ( 2.5.13.22 NAME 'presentationAddressMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.43 ) ; Presentation Address This matching ruleassertion value isused to test equality. 4.19 protocolInformationMatch The following ABNF associatestheprotocolInformationMatch rule withsame as an RDN of theProtocol Information syntax: ( 2.5.13.24 NAME 'protocolInformationMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.42 ) ; Protocol Information This matching ruleattribute value if and only if they have the same number of attribute value assertions (AVAs) and each AVA of the first RDN isused to test equality. 4.20 telephoneNumberMatchthe same as the AVA of the second RDN with the same attribute type. Thefollowing ABNF associatesorder of thetelephoneNumberMatch ruleAVAs is not significant. Also note that a particular attribute type may appear in at most one AVA in an RDN. Two AVAs with theTelephone Number syntax: ( 2.5.13.20 NAME 'telephoneNumberMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 ) ; Telephone Number This matching rule is usedsame attribute type are the same if their values are equal according totest equality. 4.21 telephoneNumberSubstringsMatch The following ABNF associatesthetelephoneNumberSubstringsMatchequality matching rulewithof theSubstring Assertion syntax: ( 2.5.13.21 NAME 'telephoneNumberSubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 ) ; Substring Assertion This matchingattribute type. If one or more of the AVA comparisons evaluate to Undefined and the remaining AVA comparisons return TRUE then the distinguishedNameMatch ruleis usedevaluates totest substrings equality. 4.22 uniqueMemberMatchUndefined. Thefollowing ABNF associatesLDAP definition for theuniqueMemberMatchdistinguishedNameMatch rulewith the Name and Optional UID syntax:is: (2.5.13.232.5.13.1 NAME'uniqueMemberMatch''distinguishedNameMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.341.3.6.1.4.1.1466.115.121.1.12 ); Name And Optional UID This matching rule is used to test equality. Dally,Legg & Dally Expires27 August 200220 June 2003 [Page40]31] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 20025. Attribute Types 5.1 altServerThevaluesdistinguishedNameMatch rule is an equality matching rule. 5.2.10 generalizedTimeMatch The generalizedTimeMatch rule compares an assertion value ofthisthe Generalized Time syntax to an attributeare URLsvalue ofother servers which could be contacted when this server becomes unavailable.a syntax (e.g the Generalized Time syntax) whose corresponding ASN.1 type is GeneralizedTime. The rule evaluates to TRUE if and only if the attribute value represents the same universal coordinated time as the assertion value. If a time is specified with theserver does not knowminutes or seconds absent then the number ofany other servers which could be used this attribute willminutes or seconds (respectively) is assumed to beabsent. Clients can cache this information in case their preferredzero. The LDAPserver later becomes unavailable.definition for the generalizedTimeMatch rule is: (1.3.6.1.4.1.1466.101.120.62.5.13.27 NAME'altServer''generalizedTimeMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.26 USAGE dSAOperation1.3.6.1.4.1.1466.115.121.1.24 ) TheSYNTAX oid indicatesgeneralizedTimeMatch rule is an equality matching rule. 5.2.11 generalizedTimeOrderingMatch The generalizedTimeMatch rule compares theIA5 String syntax. Thistime ordering of an assertion value of the Generalized Time syntax to an attribute value of a syntax (e.g the Generalized Time syntax) whose corresponding ASN.1 type is GeneralizedTime. The rule evaluates to TRUE if and onlypresent inif theroot DSE (see [Prot] and [Models]). 5.2 attributeTypes The attributeTypesattributeholds descriptions of the attributes invalue represents aschema. This attributeuniversal coordinated time which istypically located inearlier than thesubschema entry. ( 2.5.21.5 NAME 'attributeTypes' EQUALITY objectIdentifierFirstComponentMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.3 USAGE directoryOperation )universal coordinated time represented by the assertion value. TheSYNTAX oid indicatesLDAP definition for theAttribute Type Description syntax. 5.3 createTimestampgeneralizedTimeOrderingMatch rule is: (2.5.18.12.5.13.28 NAME'createTimestamp' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch'generalizedTimeOrderingMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation) TheSYNTAX oid indicatesgeneralizedTimeOrderingMatch rule is an ordering matching rule. 5.2.12 integerFirstComponentMatch The integerFirstComponentMatch rule compares an assertion value of theGeneralized Time syntax. 5.4 creatorsName ( 2.5.18.3 NAME 'creatorsName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation ) Dally,Integer syntax to an attribute value of a syntax (e.g the DIT Structure Rule Description syntax) whose corresponding ASN.1 type is Legg & Dally Expires27 August 200220 June 2003 [Page41]32] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002 a SEQUENCE with a mandatory first component of the INTEGER ASN.1 type. Note that the assertion syntax of this matching rule differs from the attribute syntax of attributes for which this is the equality matching rule. TheSYNTAX oid indicatesrule evaluates to TRUE if and only if theDN syntax. 5.5 ditContentRulesassertion value and the first component of the attribute value are the same integer value. The LDAP definition for the integerFirstComponentMatch matching rule is: (2.5.21.22.5.13.29 NAME'dITContentRules' EQUALITY objectIdentifierFirstComponentMatch'integerFirstComponentMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.16 USAGE directoryOperation1.3.6.1.4.1.1466.115.121.1.27 ) TheSYNTAX oid indicates the DIT Content Rule Description syntax. ThisintegerFirstComponentMatch rule is an equality matching rule. When using integerFirstComponentMatch to compare two attribute values (of an applicable syntax), an assertion value must first be derived from one of the attributeis located invalues. An assertion value can be derived from an attribute value by taking thesubschema entry. 5.6 dITStructureRules ( 2.5.21.1 NAME 'dITStructureRules' EQUALITY integerFirstComponentMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 USAGE directoryOperation )first component of that attribute value. 5.2.13 integerMatch TheSYNTAX oid indicatesintegerMatch rule compares an assertion value of theDIT Structure Rule Description syntax. ThisInteger syntax to an attributeis located invalue of a syntax (e.g thesubschema entry. 5.7 ldapSyntaxes This attributeInteger syntax) whose corresponding ASN.1 type istypically located inINTEGER. The rule evaluates to TRUE if and only if thesubschema entry. Thisattributeidentifiesvalue and thesyntaxes implemented, with eachassertion valuecorresponding to one syntax. ( 1.3.6.1.4.1.1466.101.120.16 NAME 'ldapSyntaxes' EQUALITY objectIdentifierFirstComponentMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.54 USAGE directoryOperation ) The SYNTAX oid indicatesare the same integer value. The LDAPSyntax Description syntax. 5.8 matchingRules This attribute is typically located indefinition for thesubschema entry.integerMatch matching rule is: (2.5.21.42.5.13.14 NAME'matchingRules' EQUALITY objectIdentifierFirstComponentMatch'integerMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation1.3.6.1.4.1.1466.115.121.1.27 ) TheSYNTAX oid indicatesintegerMatch rule is an equality matching rule. 5.2.14 numericStringMatch The numericStringMatch rule compares an assertion value of theMatching Rule Description syntax. 5.9 matchingRuleUse ThisNumeric String syntax to an attributeis typically located invalue of a syntax (e.g thesubschema entry. Dally,Numeric String syntax) whose corresponding ASN.1 type is NumericString. Legg & Dally Expires27 August 200220 June 2003 [Page42]33] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002( 2.5.21.8 NAME 'matchingRuleUse' EQUALITY objectIdentifierFirstComponentMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation )TheSYNTAX oid indicatesrule evaluates to TRUE if and only if theMatching Rule Use Description syntax. 5.10 modifiersName ( 2.5.18.4 NAME 'modifiersName' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation ) The SYNTAX oid indicatesattribute value and theDN syntax. 5.11 modifyTimestamp ( 2.5.18.2 NAME 'modifyTimestamp' EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )assertion value are the same string of numerals, ignoring any space characters. TheSYNTAX oid indicatesLDAP definition for theGeneralized Time syntax. 5.12 nameFormsnumericStringMatch matching rule is: (2.5.21.72.5.13.8 NAME'nameForms' EQUALITY objectIdentifierFirstComponentMatch'numericStringMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.35 USAGE directoryOperation1.3.6.1.4.1.1466.115.121.1.36 ) TheSYNTAX oid indicates the Name Form Description syntax. This attributenumericStringMatch rule islocated in the subschema entry. 5.13 namingContextsan equality matching rule. 5.2.15 numericStringSubstringsMatch ThevaluesnumericStringSubstringsMatch rule compares an assertion value ofthis attribute correspondthe Substring Assertion syntax tonaming contexts which this server masters or shadows. Ifan attribute value of a syntax (e.g theserver does not master any information (e.g. itNumeric String syntax) whose corresponding ASN.1 type isan LDAP gatewayNumericString. The rule evaluates toa public X.500 directory) thisTRUE if and only if the substrings of the assertion value match disjoint portions of the attributewill be absent. Ifvalue in theserver believes it containsorder of theentire directory,substrings in the assertion value, and an <initial> substring, if present, matches the beginning of the attributewill have a singlevalue, andthat value will bea <final> substring, if present, matches theempty string (indicatingend of thenull DNattribute value. A substring matches a portion of theroot). Thisattributewill allowvalue if corresponding characters are the same, ignoring any space characters. ( 2.5.13.10 NAME 'numericStringSubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 ) The numericStringSubstringsMatch rule is aclientsubstrings matching rule. 5.2.16 objectIdentifierFirstComponentMatch The objectIdentifierFirstComponentMatch rule compares an assertion value of the OID syntax tochoose suitable base objectsan attribute value of a syntax (e.g the Attribute Type Description, DIT Content Rule Description, LDAP Syntax Description, Matching Rule Description, Matching Rule Use Description, Name Form Description or Object Class Description syntax) whose corresponding ASN.1 type is a SEQUENCE with a mandatory first component of the OBJECT IDENTIFIER ASN.1 type. Note that the assertion syntax of this matching rule differs from the attribute syntax of attributes forsearching when it has contacted a server. Dally,which this is the equality matching rule. The rule evaluates to TRUE if and only if the assertion value matches Legg & Dally Expires27 August 200220 June 2003 [Page43]34] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002( 1.3.6.1.4.1.1466.101.120.5 NAME 'namingContexts' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation ) The SYNTAX oid indicatestheDN syntax. This attribute is only present infirst component of theroot DSE (see [Prot] and [Models]). 5.14 objectClasses Thisattributeis typically located invalue using thesubschema entry.rules of objectIdentifierMatch. The LDAP definition for the objectIdentifierFirstComponentMatch matching rule is: (2.5.21.62.5.13.31 NAME'objectClasses' EQUALITY objectIdentifierFirstComponentMatch'objectIdentifierFirstComponentMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.37 USAGE directoryOperation1.3.6.1.4.1.1466.115.121.1.38 ) TheSYNTAX oid indicatesobjectIdentifierFirstComponentMatch rule is an equality matching rule. When using objectIdentifierFirstComponentMatch to compare two attribute values (of an applicable syntax), an assertion value must first be derived from one of theObject Class Description syntax. 5.15 subschemaSubentry Theattribute values. An assertion value can be derived from an attribute value by taking the first component ofthisthat attributeisvalue. 5.2.17 objectIdentifierMatch The objectIdentifierMatch rule compares an assertion value of thenameOID syntax to an attribute value of asubschema entry (or subentry) wheresyntax (e.g theserver makes available attributes specifyingOID syntax) whose corresponding ASN.1 type is OBJECT IDENTIFIER. The rule evaluates to TRUE if and only if theschema controllingassertion value and thesubject entry. ( 2.5.18.10 NAME 'subschemaSubentry' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation ) The SYNTAX oid indicatesattribute value represent theDN syntax. 5.16 supportedControl The valuessame object identifier, that is, the same sequence ofthis attribute areintegers, whether represented explicitly in theOBJECT IDENTIFIERs identifying controls which<numericoid> form of <oid> or implicitly in theserver supports.<descr> form (see [MODELS]). If an LDAP client supplies an assertion value in theserver does<descr> form, and the chosen descriptor is notsupport any controls, this attribute will be absent.recognized by the server, then the objectIdentifierMatch rule evaluates to Undefined. The LDAP definition for the objectIdentifierMatch matching rule is: (1.3.6.1.4.1.1466.101.120.132.5.13.0 NAME'supportedControl''objectIdentifierMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.38USAGE dSAOperation) TheSYNTAX oid indicatesobjectIdentifierMatch rule is an equality matching rule. 5.2.18 octetStringMatch The octetStringMatch rule compares an assertion value of theOID syntax. ThisOctet String syntax to an attribute value of a syntax (e.g the Octet String or JPEG syntax) whose corresponding ASN.1 type isonly present intheroot DSE (see [Prot] and [Models]). Dally,OCTET STRING ASN.1 type. Legg & Dally Expires27 August 200220 June 2003 [Page44]35] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 20025.17 supportedExtensionThevalues of this attribute are OBJECT IDENTIFIERs identifying the supported extended operations which the server supports. Ifrule evaluates to TRUE if and only if theserver does not support any extensions thisattributewill be absent. ( 1.3.6.1.4.1.1466.101.120.7 NAME 'supportedExtension' SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation ) The SYNTAX oid indicatesvalue and theOID syntax. This attribute is only present inassertion value are theroot DSE (see [Prot]same length and[Models]). 5.18 supportedLDAPVersion The values of this attributecorresponding octets (by position) are theversions of thesame. The LDAPprotocol whichdefinition for theserver implements.octetStringMatch matching rule is: (1.3.6.1.4.1.1466.101.120.152.5.13.17 NAME'supportedLDAPVersion''octetStringMatch' SYNTAX1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation1.3.6.1.4.1.1466.115.121.1.40 ) TheSYNTAX oid indicates the INTEGER syntax. This attributeoctetStringMatch rule isonly present in the root DSE (see [Prot] and [Models]). 5.19 supportedSASLMechanismsan equality matching rule. 5.2.19 telephoneNumberMatch Thevalues of this attribute are the namestelephoneNumberMatch rule compares an assertion value ofsupported SASL mechanisms whichtheserver supports. If the server does not support any mechanisms thisTelephone Number syntax to an attributewill be absent. ( 1.3.6.1.4.1.1466.101.120.14 NAME 'supportedSASLMechanisms' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE dSAOperation ) The SYNTAX oid indicatesvalue of a syntax (e.g theDirectory String syntax. This attributeTelephone Number syntax) whose corresponding ASN.1 type isonly present in the root DSE (see [Prot] and [Models]). Dally, Legg Expires 27 August 2002 [Page 45] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 6. Object Classes 6.1 Extensible Object Classa PrintableString representing a telephone number. TheextensibleObject object class, if present in an entry, permits that entryrule evaluates tohold any attribute. The "MAY"TRUE if and only if the attributelistvalue and the assertion value have the same number ofthis class is implicitlycharacters and corresponding characters are thesetsame, ignoring the case ofall attributes.letters, and ignoring space and `-' characters. The LDAP definition for the telephoneNumberMatch matching rule is: (1.3.6.1.4.1.1466.101.120.1112.5.13.20 NAME'extensibleObject' SUP top AUXILIARY'telephoneNumberMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 ); MAY all attributesThe telephoneNumberMatch rule isimpliedan equality matching rule. 5.2.20 telephoneNumberSubstringsMatch Themandatory attributestelephoneNumberSubstringsMatch rule compares an assertion value of theother object classes of this entry are still required to be present. Note that not all servers will implement this object class, and those which do not will reject requestsSubstring Assertion syntax toadd entries which contain this object class, or modifyanentryattribute value of a syntax (e.g the Telephone Number syntax) whose corresponding ASN.1 type is a PrintableString representing a telephone number. The rule evaluates toadd this object class. Note that,TRUE if and only if theserver implementssubstrings of the assertion value match disjoint portions of theextensibleObject class but anattributeis not recognized, this isvalue in thesame case as for any other object class. 6.2 subschema This object class contains a descriptionorder of theschema that is appliedsubstrings in theserverassertion value, andis used inan <initial> substring, if present, matches the beginning of thesubschema entry. ( 2.5.20.1 NAME 'subschema' AUXILIARY MAY ( dITStructureRules $ nameForms $ ditContentRules $ objectClasses $ attributeTypes $ matchingRules $ matchingRuleUse ) ) The ldapSyntaxes operationalattributecan also be present in subschema entries. Dally, Legg Expires 27 August 2002 [Page 46] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 7. Security Considerations 7.1 Disclosure Attributesvalue, and a <final> substring, if present, matches the end ofdirectory entriesthe attribute value. A substring matches a portion of the attribute value if corresponding characters areused to provide descriptive information aboutthereal-world objects they represent, which can be people, organizations or devices. Most countries have privacy laws regardingsame, ignoring thepublicationcase ofinformation about people. 7.2 Security Informationletters, and ignoring space and `-' characters. Legg & Dally Expires 20 June 2003 [Page 36] INTERNET-DRAFT LDAP: SyntaxesSeveral X.500 attributes, such as, the userCertificate attribute, are used to include key-based security information in directory entries.and Matching Rules December 20, 2002 Theattribute syntaxes for these attributes are: Certificate CertificateList CertificatePair SupportedAlgorithm These syntaxes are specified forLDAPbydefinition for thePKIX Working Group, and so, are not included in this document.telephoneNumberSubstringsMatch matching rule is: ( 2.5.13.21 NAME 'telephoneNumberSubstringsMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 ) TheABNF specifications of "User Certificate", "Authority Revocation List", and "Certificate Pair" in RFC 1778 [Syn String] are not to be used. 7.3 Use of Attribute Values in Security ApplicationstelephoneNumberSubstringsMatch rule is a substrings matching rule. 5.2.21 uniqueMemberMatch Thetransformations ofuniqueMemberMatch rule compares anAttributeValueassertion valuefrom its X.501 formof the Name And Optional UID syntax to anLDAP string representation are not always reversible back to the same BER or DER form. For example, a distinguished name consistingattribute value ofone RDN with one AVA, in whicha syntax (e.g the Name And Optional UID syntax) whose corresponding ASN.1 type iscommonNameNameAndOptionalUID. The rule evaluates to TRUE if and only if thevalue is<distinguishedName> components of theTeletexString choice withassertion value and attribute value match according to theletters 'Sam' would be represented in LDAP asdistinguishedNameMatch rule and thestring cn=Sam. Another distinguished name in which<BitString> component is absent from the attribute valueis still 'Sam' butor matches the <BitString> component of thePrintableString choice would haveassertion value according to thesame representation cn=Sam. Applications which requirebitStringMatch rule. The LDAP definition for the uniqueMemberMatch matching rule is: ( 2.5.13.23 NAME 'uniqueMemberMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.34 ) The uniqueMemberMatch rule is an equality matching rule. 6. Security Considerations In general, the LDAP-specific encodings for syntaxes defined in this document do not define canonical encodings. That is, a transformation from an LDAP-specific encoding into some other encoding (e.g. BER) and back into thereconstruction ofLDAP-specific encoding will not necessarily reproduce exactly theDER formoriginal octets ofa value SHOULD NOT usethestring LDAP nativeLDAP-specific encoding. Therefore an LDAP-specific encodingwhen convertingshould not be used where avalue to LDAP format. Insteadcanonical encoding is required. Furthermore, the;binary transfer option [Prot] SHOULD be used. 7.4 SecuringLDAP-specific encodings do not necessarily enable an alternative encoding of values of the DirectoryIn orderString and DN syntaxes toprotect the directorybe reconstructed, e.g. a transformation from DER to LDAP-specific encoding andits contents, strong authentication MUST have been usedback toidentifyDER may not reproduce theClient when an update operationoriginal DER encoding. Therefore LDAP-specific encodings should not be used where reversibility to DER isrequested. Dally,needed, e.g. for the verification of digital signatures. Instead, DER or a DER-reversible encoding should Legg & Dally Expires27 August 200220 June 2003 [Page47]37] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 20028.be used. When interpreting security-sensitive fields, and in particular fields used to grant or deny access, implementations MUST ensure that any matching rule comparisons are done on the underlying abstract value, regardless of the particular encoding used. 7. Acknowledgements This document is anupdaterevision of RFC 2252 by M. Wahl, A. Coulbeck, T. Howes, and S. Kille. RFC 2252 was a product of the IETF ASID Working Group. This document is based upon input of the IETF LDAPBIS working group. The authors wish to thank J. Sermersheim and K. Zeilenga fortheir significant contributiontheir significant contribution to this revision. 8. IANA Considerations It is requested that the Internet Assigned Numbers Authority (IANA) update the LDAP descriptors registry as indicated by the following two templates: Subject: Request for LDAP Descriptor Registration Update Descriptor (short name): see comment Object Identifier: see comment Person & email address to contact for further information: Steven Legg <steven.legg@adacel.com.au> Usage: see comment Specification: RFC XXXX Author/Change Controller: IESG Comments: The following descriptors (short names) should be updated to refer to RFC XXXX. NAME Type OID ------------------------------------------------------------------ bitStringMatch M 2.5.13.16 caseExactIA5Match M 1.3.6.1.4.1.1466.109.114.1 caseIgnoreIA5Match M 1.3.6.1.4.1.1466.109.114.2 caseIgnoreListMatch M 2.5.13.11 caseIgnoreMatch M 2.5.13.2 caseIgnoreOrderingMatch M 2.5.13.3 caseIgnoreSubstringsMatch M 2.5.13.4 distinguishedNameMatch M 2.5.13.1 Legg & Dally Expires 20 June 2003 [Page 38] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 generalizedTimeMatch M 2.5.13.27 generalizedTimeOrderingMatch M 2.5.13.28 integerFirstComponentMatch M 2.5.13.29 integerMatch M 2.5.13.14 numericStringMatch M 2.5.13.8 numericStringSubstringsMatch M 2.5.13.10 objectIdentifierFirstComponentMatch M 2.5.13.31 octetStringMatch M 2.5.13.17 telephoneNumberMatch M 2.5.13.20 telephoneNumberSubstringsMatch M 2.5.13.21 uniqueMemberMatch M 2.5.13.23 The descriptor for the object identifier 2.5.13.0 was incorrectly registered as objectIdentifiersMatch (extraneous `s') in RFC 3383. It should be changed to the following with a reference to RFC XXXX. NAME Type OID ------------------------------------------------------------------ objectIdentifierMatch M 2.5.13.0 Subject: Request for LDAP Descriptor Registration Descriptor (short name): caseIgnoreIA5SubstringsMatch Object Identifier: 1.3.6.1.4.1.1466.109.114.3 Person & email address tothis update. 9. Authors' Addresses Kathy Dally The MITRE Corp. 7515 Colshire Dr., ms-W650 McLean VA 22102 USA Phone: +1 703 883 6058 Fax: +1 703 883 7142 Email: kdally@mitre.orgcontact for further information: Steven LeggAdacel Technologies Ltd. 405-409 Ferntree Gully Road Mount Waverley, Victoria 3149 AUSTRALIA Phone: +61 3 9451 2107 Fax: +61 3 9541 2121 EMail: steven.legg@adacel.com.au 10 References 10.1<steven.legg@adacel.com.au> Usage: other (M) Specification: RFC XXXX Author/Change Controller: IESG 9. Normative References [KEYWORD] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [ABNF] Crocker,D.,D. and P. Overell,P.,"Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November1997 [ASN1] Information Technology - Abstract Syntax Notation One (ASN.1): Specification1997. [UTF-8] Yergeau, F., "UTF-8, a transformation format ofBasic Notation, ITU-T Recommendation X.680, 1994 [Attr] The Directory: Selected Attribute Types. ITU-T Recommendation X.520, 1993. [Codes]ISO3166, "Codes10646", RFC 2279, January 1998. [RFC3383] Zeilenga, K., "IANA Considerations forthe representation of namesLDAP", BCP 64, RFC 3383, September 2002. [LDAPDN] Zeilenga, K., "LDAP: String Representation ofcountries". Dally,Distinguished Names", draft-ietf-ldapbis-dn-xx.txt, a work Legg & Dally Expires27 August 200220 June 2003 [Page48]39] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002[DN String] draft-ietf-ldapbis-dn-xx, replacementin progress, August 2002. [PROT] Sermersheim, J., "LDAP: The Protocol", draft-ietf-ldapbis- protocol-xx.txt, a work in progress, December 2002. [E.123] Notation forWahl, M., Kille, S.,national andT. Howes, "Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names", RFC 2253, December 1997. [Fax]international telephone numbers, ITU-T Recommendation E.123, 1988. [FAX] Standardization of Group 3 facsimile apparatus for document transmission - Terminal Equipment and Protocols for Telematic Services, ITU-T Recommendation T.4, 1993[IA5][T.50] International Reference Alphabet (IRA) (Formerly International Alphabet No. 5 or IA5) Information Technology - 7-Bit Coded Character Set for Information Interchange, ITU-T Recommendation T.50, 1992 [X.420] ITU-T Recommendation X.420 (1996) | ISO/IEC 10021-7:1997, Information Technology - Message Handling Systems (MHS): Interpersonal messaging system [X.501] ITU-T Recommendation X.501 (1993) | ISO/IEC 9594-2:1994, Information Technology - Open Systems Interconnection - The Directory: Models [X.520] ITU-T Recommendation X.520 (1993) | ISO/IEC 9594-6:1994, Information Technology - Open Systems Interconnection - The Directory: Selected attribute types [ASN.1] ITU-T Recommendation X.680 (1997) | ISO/IEC 8824-1:1998 Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation [ISO3166] ISO 3166, "Codes for the representation of names of countries". [UCS] Universal Multiple-Octet Coded Character Set (UCS) - Architecture and Basic Multilingual Plane, ISO/IEC 10646-1: 1993 (with amendments). [JPEG] JPEG File Interchange Format (Version 1.02). Eric Hamilton, C-Cube Microsystems, Milpitas, CA, September 1, 1992.[Keywds] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. [Map] Hardcastle-Kille, S., "Mapping between X.400(1988)/ISO 10021 and RFC 822", RFC 1327, May 1992. [Models] The Directory: Models, ITU-T Recommendation X.501, 1993. [Prot] draft-ietf-ldapbis-protocol-xx, replacement for10. Informative References [RFC2252] Wahl, M., Coulbeck, A., Howes,T.,T. and S. Kille, Legg & Dally Expires 20 June 2003 [Page 40] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 "Lightweight Directory Access Protocol(v3)",(v3): Attribute Syntax Definitions", RFC2251,2252, December 1997.[Tel #] Notation for national and international telephone numbers, ITU-T Recommendation E.123, 1988. [UCS] Universal Multiple-Octet Coded Character Set (UCS) - Architecture and Basic Multilingual Plane, ISO/IEC 10646-1: 1993 (with amendments). [User] draft-ietf-ldapbis-user-schema-xx, replacement for[RFC2256] Wahl, M., "A Summary of the X.500(96) User Schema for use with LDAPv3", RFC 2256, December 1997.[UTF-8] Yergeau, F., "UTF-8, a transformation format of Unicode[RFC3377] Hodges, J. andISO 10646", RFC 2044, October 1996. 10.2 Informative References [LDAP '95] Yeong, W., Howes, T., Kille, S.,R. Morgan, "Lightweight Directory AccessProtocol",Protocol (v3): Technical Specification", RFC1777, March 1995 [NSAP]3377, September 2002. [X.500] ITU-T Recommendation X.500 (1993) | ISO/IEC 9594-1:1994, Informationtechnology --Technology - Open Systems Interconnection-- Network Service Definition,- The Directory: Overview of concepts, models and services [BER] ITU-T Recommendation X.690 (1997) | ISO/IEC8348:1996 Dally, Legg Expires 27 August 2002 [Page 49] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 [Syn String] Howes, T., Kille, S., Yeong, W., Robbins, C., "The String Representation8825-1:1998 Information Technology - ASN.1 encoding rules: Specification ofStandard Attribute Syntaxes", RFC 1778, March 1995.Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) 11.FullAuthors' Addresses Steven Legg Adacel Technologies Ltd. 405-409 Ferntree Gully Road Mount Waverley, Victoria 3149 AUSTRALIA Phone: +61 3 9451 2107 Fax: +61 3 9541 2121 Email: steven.legg@adacel.com.au Kathy Dally The MITRE Corp. 7515 Colshire Dr., ms-W650 McLean VA 22102 USA Phone: +1 703 883 6058 Fax: +1 703 883 7142 Email: kdally@mitre.org 12. CopyrightStatementNotice Copyright (C) The Internet Society (2002). All Rights Reserved. Legg & Dally Expires 20 June 2003 [Page 41] INTERNET-DRAFT LDAP: Syntaxes and Matching Rules December 20, 2002 This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.Dally, Legg Expires 27 August 2002 [Page 50] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 Annex AAppendix A. Summary of Syntax Object Identifiersof Syntaxes ThisThe following listcontainssummarizes the object identifiersforassigned to the syntaxesused in this specification anddefined inthe user schema specification [User].this document. Syntaxof Value RepresentedOBJECT IDENTIFIER=================================================================================================================================== Attribute Type Description 1.3.6.1.4.1.1466.115.121.1.3 Bit String 1.3.6.1.4.1.1466.115.121.1.6 Boolean 1.3.6.1.4.1.1466.115.121.1.7 Country String 1.3.6.1.4.1.1466.115.121.1.11 Delivery Method 1.3.6.1.4.1.1466.115.121.1.14 Directory String 1.3.6.1.4.1.1466.115.121.1.15 DIT Content Rule Description 1.3.6.1.4.1.1466.115.121.1.16 DIT Structure Rule Description 1.3.6.1.4.1.1466.115.121.1.17DN 1.3.6.1.4.1.1466.115.121.1.12 Enhanced Guide 1.3.6.1.4.1.1466.115.121.1.21 Facsimile Telephone Number 1.3.6.1.4.1.1466.115.121.1.22 Fax 1.3.6.1.4.1.1466.115.121.1.23 Generalized Time 1.3.6.1.4.1.1466.115.121.1.24 Guide 1.3.6.1.4.1.1466.115.121.1.25 IA5 String 1.3.6.1.4.1.1466.115.121.1.26 INTEGER 1.3.6.1.4.1.1466.115.121.1.27 JPEG 1.3.6.1.4.1.1466.115.121.1.28 LDAP Syntax Description 1.3.6.1.4.1.1466.115.121.1.54 Matching Rule Description 1.3.6.1.4.1.1466.115.121.1.31 Matching Rule Use Description 1.3.6.1.4.1.1466.115.121.1.31 MHS OR Address 1.3.6.1.4.1.1466.115.121.1.33 Name And Optional UID 1.3.6.1.4.1.1466.115.121.1.34 Name Form Description 1.3.6.1.4.1.1466.115.121.1.35 Numeric String 1.3.6.1.4.1.1466.115.121.1.36 Object Class Description 1.3.6.1.4.1.1466.115.121.1.37 Octet String 1.3.6.1.4.1.1466.115.121.1.40 OID 1.3.6.1.4.1.1466.115.121.1.38 Other Mailbox 1.3.6.1.4.1.1466.115.121.1.39 Postal Address 1.3.6.1.4.1.1466.115.121.1.41 Presentation Address 1.3.6.1.4.1.1466.115.121.1.43 Printable String 1.3.6.1.4.1.1466.115.121.1.44 Substring Assertion 1.3.6.1.4.1.1466.115.121.1.58 Telephone Number 1.3.6.1.4.1.1466.115.121.1.50 Teletex Terminal Identifier 1.3.6.1.4.1.1466.115.121.1.51 Telex Number 1.3.6.1.4.1.1466.115.121.1.52 UTC Time 1.3.6.1.4.1.1466.115.121.1.53 Dally, Legg Expires 27 August 2002 [Page 51] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 Annex B Topics Yet To Be Addressed In This Document This appendix is provided for informational purposes only, it is not a normative part of this specification. APPEARED: -00 Paragraph 2.2.3 - Should any syntaxes listed in the table be removed? Should any new syntaxes be added? RESOLUTION: Cannot add syntaxes. Moving the table to an annex keeps a record of the OIDS that have been assigned. Deleted unspecified syntaxes from the list. APPLIED: -02 APPEARED: -00 Paragraph 2.2.4 - Should attribute syntaxes be allowed to be referenced by a common name, and if so, where should the name come from? RESOLUTION: Rejected because of adding functionality. APPLIED: -01 APPEARED: -00 How does the data model draft <draft-wahl-ladpv3-defns-01.txt> affect this draft? RESOLUTION: It does not. The draft was preliminary to the revised Schema and Protocol I-Ds. APPLIED: -01 APPEARED: -00 Section 3 - Should all listed syntaxes from paragraph 2.2.3 be detailed in this section? Nearly half the listed syntaxes are not referenced in this section. RESOLUTION: No, because many are not being used, currently. APPLIED: -01 APPEARED: -01 Section 4 - Should all of the X.520(1993) matching rules be included? In particular, how about caseExactMatch? Also, should octetStringMatch be moved from updated RFC 2256? RESOLUTION: caseExactMatch not included. octetStringMatch moved to this document. APPLIED: -01 APPEARED: -00 Section 6 - Recognized list of Object classes needs to be reconciled with updated RFC 2256 and the data model draft. RESOLUTION: Not necessary. APPLIED: -01 APPEARED: -00 Section 7 - Proper security statement needs to be formulated. RESOLUTION: Text has been expanded since RFC 2252, but needs more work. APPLIED: Dally,DN 1.3.6.1.4.1.1466.115.121.1.12 Enhanced Guide 1.3.6.1.4.1.1466.115.121.1.21 Facsimile Telephone Number 1.3.6.1.4.1.1466.115.121.1.22 Fax 1.3.6.1.4.1.1466.115.121.1.23 Generalized Time 1.3.6.1.4.1.1466.115.121.1.24 Guide 1.3.6.1.4.1.1466.115.121.1.25 IA5 String 1.3.6.1.4.1.1466.115.121.1.26 Integer 1.3.6.1.4.1.1466.115.121.1.27 Legg & Dally Expires27 August 200220 June 2003 [Page52]42] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 2002Annex C Change LogJPEG 1.3.6.1.4.1.1466.115.121.1.28 LDAP Syntax Description 1.3.6.1.4.1.1466.115.121.1.54 Matching Rule Description 1.3.6.1.4.1.1466.115.121.1.30 Matching Rule Use Description 1.3.6.1.4.1.1466.115.121.1.31 Name And Optional UID 1.3.6.1.4.1.1466.115.121.1.34 Name Form Description 1.3.6.1.4.1.1466.115.121.1.35 Numeric String 1.3.6.1.4.1.1466.115.121.1.36 Object Class Description 1.3.6.1.4.1.1466.115.121.1.37 Octet String 1.3.6.1.4.1.1466.115.121.1.40 OID 1.3.6.1.4.1.1466.115.121.1.38 Other Mailbox 1.3.6.1.4.1.1466.115.121.1.39 Postal Address 1.3.6.1.4.1.1466.115.121.1.41 Printable String 1.3.6.1.4.1.1466.115.121.1.44 Substring Assertion 1.3.6.1.4.1.1466.115.121.1.58 Telephone Number 1.3.6.1.4.1.1466.115.121.1.50 Teletex Terminal Identifier 1.3.6.1.4.1.1466.115.121.1.51 Telex Number 1.3.6.1.4.1.1466.115.121.1.52 UTC Time 1.3.6.1.4.1.1466.115.121.1.53 Appendix B. Changes from RFC 2252 & RFC 2256 This annex lists thechanges that have been made fromsignificant differences between this specification and RFC 2252to this specification.and Sections 6 and 8 of RFC 2256. This annex is provided for informational purposes only. It is not a normative part of this specification.Items 32 - end are new in the -02 version of this document.1.Removed theThe IESGNote.Note has been removed. 2.Changed "types" to "syntaxes" in the last sentenceThe major part ofthe Abstract. Also, addedSections 4, 5 and 7 has been moved tothe last sentence in order[MODELS] and revised. Changes toindicate that syntaxes are not the only schema elements defined in this document. 3. Reorganizedthe parts of these sectionsso that: * the schema element categories are specified in the order in which they build on one another: syntaxes, matching rules, attributes, object classes * within each category the elementsmoved to [MODELS] arespecifieddetailed inalphbetical order[MODELS]. 3. BNF descriptions of syntax formats have been replaced by ABNF [ABNF] specifications. 4.Added an "Implementation Status" paragraph for each element, gathering the conformance statements. 5. Clarified schema descriptionThe ambiguous statement in RFC 2252, Section 4.3 regarding theOverview. 6. Changed the "Common Encoding Aspects" section titleuse of a backslash quoting mechanism to"Notation" and made corresponding changes throughout the document.escape separator symbols has been removed. Thepurpose being to relegate all encoding issues toescaping mechanism is now explicitly represented in theProtocol specification [Prot]. 7. Added a MUST statement regardingABNF for the syntaxesrequired of servers. 8. Expanded the discussionwhere this provision applies. 5. The description of each of the LDAP syntaxesin section 3. 9. Added examples to somehas been expanded so that they are less dependent on knowledge ofthe syntax descriptions. 10. Added NAME option to the syntax description ABNF in 2.2.4. RESCINDED IN -01!! 11. Added a note deprecating the UTCTime attribute syntax description in 3.41 12. In the ABNFX.500 for interpretation. 6. The relationship ofthe MatchingRuleDescription in paragraph 2.3.2, replaced "numericoid" with "oid". Dally,LDAP syntaxes to corresponding ASN.1 type Legg & Dally Expires27 August 200220 June 2003 [Page53]43] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 200213. In paragraph 2.4.1, replaced the conformance statement about attributesdefinitions has been made explicit. 7. The set of characters allowed in2256 withareference. 14. Added caseIgnoreIA5Match as the EQUALITY matching rule for<PrintableString> (formerly <printablestring>) has been corrected to align with thealtServer attributePrintableString ASN.1 typeABNFinparagraph 5.1. Note that this could be caseExactIA5Match instead. SHOULD IT BE?? RESCINDED IN -01 15. In paragraphs 5.10[ASN.1]. Specifically, the double quote character has been removed and5.11, changed "the MODIFY operation" to "LDAP update operations" 16. Added distinguishedNameMatch astheEQUALITY matching rule forsingle quote character and equals sign have been added. 8. Values of thenamingContexts attributeDirectory String, Printable String and Telephone Number syntaxes are now required to have at least one character. 9. The <DITContentRuleDescription>, <NameFormDescription> and <DITStructureRuleDescription> rules have been moved to [MODELS]. 10. The corresponding ASN.1 typeABNF in paragraph 5.13. RESCINDED IN -01 17. Reworded paragraph 5.15. 18. Added distinguishedNameMatch as the EQUALITY matching rulefor thenamingContexts attributeOther Mailbox syntax has been incorporated from RFC 1274. 11. A corresponding ASN.1 typeABNF in paragraph 5.13. RESCINDED IN -01 19. Added integerMatch asfor theEQUALITYLDAP Syntax Description syntax has been invented. 12. The Binary syntax has been removed because it was not adequately specified, implementations with different incompatible interpretations exist, andintegerOrderingMatch as the Ordering matching rules forit was confused with thesupportedLDAPVersion attribute type ABNF in paragraph 5.18. RESCINDED IN -01 20. Added caseIgnoreMatch as;binary transfer encoding. 13. All discussion of transfer options, including theEQUALITY matching";binary" option, has been removed. All imperatives regarding binary transfer of values have been removed. 14. The Delivery Method, Enhanced Guide, Guide, Octet String, Teletex Terminal Identifier and Telex Number syntaxes from RFC 2256 have been incorporated. 15. The <criteria> rule for thesupportedSASLMechanisms attribute type ABNF in paragraph 5.19. Note that this could be caseExactMatch instead. SHOULD IT BE?? RESCINDED IN -01 21. Made correctionsEnhanced Guide and Guide syntaxes has been extended to accommodate empty "and" and "or" expressions. 16. An encoding for theABNF<ttx-value> rule inparagraph 3.12. 22. AddedthesevenTeletex Terminal Identifier syntaxdefinitionshas been defined. 17. The PKI-related syntaxes (Certificate, Certificate List and Certificate Pair from RFC22562252, andordered the definitions alphabetically. 23. Changed the "Bibliography" section title to "References". 24. Replaced the X.208 reference with oneSupported Algorithm syntax from RFC 2256) have been removed. They are toX.680(1994),be reintroduced in PKIX documents. 18. The MHS OR Address syntax has been removed sinceX.680its specification (in RFC 2156) isthe ASN.1 referred to in the X.500(1993)-series. 25. Moved the table listing the syntaxes and their oids from paragraph 2.2.3 to a new Annex A. REMOVED SYNTAXES NOT DEFINED IN THIS I-D FROM THE LIST - 02 Dally,not at draft standard maturity. 19. The DL Submit Permission syntax has been removed as it depends on Legg & Dally Expires27 August 200220 June 2003 [Page54]44] INTERNET-DRAFTdraft-ietf-ldapbis-syntaxes-02 27 FebruaryLDAP: Syntaxes and Matching Rules December 20, 200226. Movedthe MHS OR Address syntax. 20. The Presentation Address syntax has been removed since its specificationof the octetStringMatch matching rule from(in RFC2256 to section 4 of this document. 27. Throughout this I-D, cleaned up whitespace in the ABNF definitions. 28. In Section 2.1: * Corrected the characters defined in the p rule to match the PrintableString syntax. * Deleted the letterstring rule. * Modified the utf8 and dstring rules according to a suggestion from K. Zeilenga. * Deleted ";" from the k rule, which affects the anhstring, keystring,1278) is not at draft standard maturity. 21. The ACI Item, Access Point, Audio, Data Quality, DSA Quality, DSE Type, LDAP Schema Description, Master And Shadow Access Points, Modify Rights, Protocol Information, Subtree Specification, Supplier Information, Supplier Or Consumer anddescr rules. * Removed the length option from the numericoid rule 29. In section 2.2, deleted the sentence about needing a new OID when aSupplier And Consumer syntaxes have been removed. These syntaxes are referenced in RFC 2252, but not defined. 22. The LDAP Schema Definition syntaxis modified. 30. In section 2.2, replaced the editor's proposal(defined in RFC 2927) andsubject text with explanation ofthenative LDAP encoding of attribute values. 31. Removed section 2.2.2 (and renumberedMail Preference syntax have been removed on theremaindergrounds that they are out ofsection 2.2), leaving thescope for a core specification. 23. The description ofbinary encoding to the protocol I-D. ------- 32. Revised specifications to use ABNF [ABNF] insteadeach ofBNF throughoutthedocment. 33. Removed embedded commentsmatching rules has been expanded so that they are less dependent on knowledge of X.500 for interpretation. 24. The caseIgnoreIA5SubstringsMatch matching rule from RFC 2798 has been added. 25. The caseIgnoreIA5SubstringsMatch, caseIgnoreOrderingMatch and caseIgnoreSubstringsMatch matching rules have been added to theABNF productions throughout the document. 34. Removedlist of matching rules for which theBinary syntax because it was not adequately specified, implementations with different interpretations exist,provisions for handling leading, trailing andit was confusedmultiple adjoining whitespace characters apply. This is consistent with the;binary transfer encoding. 35. Removed the syntaxes, which are not defineddefinitions of these matching rules inthis document,X.500. The telephoneNumberMatch rule has been removed from the listin Annex A. Consult RFC 2252 for the assignments made previously for syntaxes that have not been defined to date. 36. Inserted thesince it completely ignores all space characters. 26. The specification of theoctetstring production,octetStringMatch matching rule from RFC2234 [ABNF].j 37. Cleaned up the references; adopted word instead of number tags; split Section 10 into normative and non-normative subsections. 38. Inserted ABNF2256 has been added to this document. 27. The presentationAddressMatch matching rule has been removed as it depends on an assertion syntax (Presentation Address) that is not at draft standard maturity. 28. The protocolInformationMatch matching rule has been removed as it depends on an undefined assertion syntax (Protocol Information). 29. The definitive reference for ASN.1 has been changed fromRFC 1278 in place of a reference. Dally, Legg Expires 27 August 2002 [Page 55] INTERNET-DRAFT draft-ietf-ldapbis-syntaxes-02 27 February 2002 38. Deleted the certificate-related syntaxes and noted inX.208 to X.680 since X.680 is theSecurity Considerations (Section 7) that they are covered in PKIX WG documents. Dally,version of ASN.1 referred to by X.500. Legg & Dally Expires27 August 200220 June 2003 [Page56]45] ----