7 Network Working Group S. Legg, Ed.
8 Request for Comments: 4517 eB2Bcom
9 Obsoletes: 2252, 2256 June 2006
11 Category: Standards Track
14 Lightweight Directory Access Protocol (LDAP):
15 Syntaxes and Matching Rules
20 This document specifies an Internet standards track protocol for the
21 Internet community, and requests discussion and suggestions for
22 improvements. Please refer to the current edition of the "Internet
23 Official Protocol Standards" (STD 1) for the standardization state
24 and status of this protocol. Distribution of this memo is unlimited.
28 Copyright (C) The Internet Society (2006).
32 Each attribute stored in a Lightweight Directory Access Protocol
33 (LDAP) directory, whose values may be transferred in the LDAP
34 protocol, has a defined syntax that constrains the structure and
35 format of its values. The comparison semantics for values of a
36 syntax are not part of the syntax definition but are instead provided
37 through separately defined matching rules. Matching rules specify an
38 argument, an assertion value, which also has a defined syntax. This
39 document defines a base set of syntaxes and matching rules for use in
40 defining attributes for LDAP directories.
44 1. Introduction ....................................................3
45 2. Conventions .....................................................4
46 3. Syntaxes ........................................................4
47 3.1. General Considerations .....................................5
48 3.2. Common Definitions .........................................5
49 3.3. Syntax Definitions .........................................6
50 3.3.1. Attribute Type Description ..........................6
51 3.3.2. Bit String ..........................................6
52 3.3.3. Boolean .............................................7
53 3.3.4. Country String ......................................7
54 3.3.5. Delivery Method .....................................8
58 Legg Standards Track [Page 1]
60 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
63 3.3.6. Directory String ....................................8
64 3.3.7. DIT Content Rule Description ........................9
65 3.3.8. DIT Structure Rule Description .....................10
66 3.3.9. DN .................................................10
67 3.3.10. Enhanced Guide ....................................11
68 3.3.11. Facsimile Telephone Number ........................12
69 3.3.12. Fax ...............................................12
70 3.3.13. Generalized Time ..................................13
71 3.3.14. Guide .............................................14
72 3.3.15. IA5 String ........................................15
73 3.3.16. Integer ...........................................15
74 3.3.17. JPEG ..............................................15
75 3.3.18. LDAP Syntax Description ...........................16
76 3.3.19. Matching Rule Description .........................16
77 3.3.20. Matching Rule Use Description .....................17
78 3.3.21. Name and Optional UID .............................17
79 3.3.22. Name Form Description .............................18
80 3.3.23. Numeric String ....................................18
81 3.3.24. Object Class Description ..........................18
82 3.3.25. Octet String ......................................19
83 3.3.26. OID ...............................................19
84 3.3.27. Other Mailbox .....................................20
85 3.3.28. Postal Address ....................................20
86 3.3.29. Printable String ..................................21
87 3.3.30. Substring Assertion ...............................22
88 3.3.31. Telephone Number ..................................23
89 3.3.32. Teletex Terminal Identifier .......................23
90 3.3.33. Telex Number ......................................24
91 3.3.34. UTC Time ..........................................24
92 4. Matching Rules .................................................25
93 4.1. General Considerations ....................................25
94 4.2. Matching Rule Definitions .................................27
95 4.2.1. bitStringMatch .....................................27
96 4.2.2. booleanMatch .......................................28
97 4.2.3. caseExactIA5Match ..................................28
98 4.2.4. caseExactMatch .....................................29
99 4.2.5. caseExactOrderingMatch .............................29
100 4.2.6. caseExactSubstringsMatch ...........................30
101 4.2.7. caseIgnoreIA5Match .................................30
102 4.2.8. caseIgnoreIA5SubstringsMatch .......................31
103 4.2.9. caseIgnoreListMatch ................................31
104 4.2.10. caseIgnoreListSubstringsMatch .....................32
105 4.2.11. caseIgnoreMatch ...................................33
106 4.2.12. caseIgnoreOrderingMatch ...........................33
107 4.2.13. caseIgnoreSubstringsMatch .........................34
108 4.2.14. directoryStringFirstComponentMatch ................34
109 4.2.15. distinguishedNameMatch ............................35
110 4.2.16. generalizedTimeMatch ..............................36
114 Legg Standards Track [Page 2]
116 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
119 4.2.17. generalizedTimeOrderingMatch ......................36
120 4.2.18. integerFirstComponentMatch ........................36
121 4.2.19. integerMatch ......................................37
122 4.2.20. integerOrderingMatch ..............................37
123 4.2.21. keywordMatch ......................................38
124 4.2.22. numericStringMatch ................................38
125 4.2.23. numericStringOrderingMatch ........................39
126 4.2.24. numericStringSubstringsMatch ......................39
127 4.2.25. objectIdentifierFirstComponentMatch ...............40
128 4.2.26. objectIdentifierMatch .............................40
129 4.2.27. octetStringMatch ..................................41
130 4.2.28. octetStringOrderingMatch ..........................41
131 4.2.29. telephoneNumberMatch ..............................42
132 4.2.30. telephoneNumberSubstringsMatch ....................42
133 4.2.31. uniqueMemberMatch .................................43
134 4.2.32. wordMatch .........................................44
135 5. Security Considerations ........................................44
136 6. Acknowledgements ...............................................44
137 7. IANA Considerations ............................................45
138 8. References .....................................................46
139 8.1. Normative References ......................................46
140 8.2. Informative References ....................................48
141 Appendix A. Summary of Syntax Object Identifiers ..................49
142 Appendix B. Changes from RFC 2252 .................................49
146 Each attribute stored in a Lightweight Directory Access Protocol
147 (LDAP) directory [RFC4510], whose values may be transferred in the
148 LDAP protocol [RFC4511], has a defined syntax (i.e., data type) that
149 constrains the structure and format of its values. The comparison
150 semantics for values of a syntax are not part of the syntax
151 definition but are instead provided through separately defined
152 matching rules. Matching rules specify an argument, an assertion
153 value, which also has a defined syntax. This document defines a base
154 set of syntaxes and matching rules for use in defining attributes for
157 Readers are advised to familiarize themselves with the Directory
158 Information Models [RFC4512] before reading the rest of this
159 document. Section 3 provides definitions for the base set of LDAP
160 syntaxes. Section 4 provides definitions for the base set of
161 matching rules for LDAP.
163 This document is an integral part of the LDAP technical specification
164 [RFC4510], which obsoletes the previously defined LDAP technical
165 specification, RFC 3377, in its entirety.
170 Legg Standards Track [Page 3]
172 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
175 Sections 4, 5, and 7 of RFC 2252 are obsoleted by [RFC4512]. The
176 remainder of RFC 2252 is obsoleted by this document. Sections 6 and
177 8 of RFC 2256 are obsoleted by this document. The remainder of RFC
178 2256 is obsoleted by [RFC4519] and [RFC4512]. All but Section 2.11
179 of RFC 3698 is obsoleted by this document.
181 A number of schema elements that were included in the previous
182 revision of the LDAP technical specification are not included in this
183 revision of LDAP. Public Key Infrastructure schema elements are now
184 specified in [RFC4523]. Unless reintroduced in future technical
185 specifications, the remainder are to be considered Historic.
187 The changes with respect to RFC 2252 are described in Appendix B of
192 In this document, the key words "MUST", "MUST NOT", "REQUIRED",
193 "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
194 and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119
197 Syntax definitions are written according to the <SyntaxDescription>
198 ABNF [RFC4234] rule specified in [RFC4512], and matching rule
199 definitions are written according to the <MatchingRuleDescription>
200 ABNF rule specified in [RFC4512], except that the syntax and matching
201 rule definitions provided in this document are line-wrapped for
202 readability. When such definitions are transferred as attribute
203 values in the LDAP protocol (e.g., as values of the ldapSyntaxes and
204 matchingRules attributes [RFC4512], respectively), then those values
205 would not contain line breaks.
209 Syntax definitions constrain the structure of attribute values stored
210 in an LDAP directory, and determine the representation of attribute
211 and assertion values transferred in the LDAP protocol.
213 Syntaxes that are required for directory operation, or that are in
214 common use, are specified in this section. Servers SHOULD recognize
215 all the syntaxes listed in this document, but are not required to
216 otherwise support them, and MAY recognise or support other syntaxes.
217 However, the definition of additional arbitrary syntaxes is
218 discouraged since it will hinder interoperability. Client and server
219 implementations typically do not have the ability to dynamically
220 recognize new syntaxes.
226 Legg Standards Track [Page 4]
228 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
231 3.1. General Considerations
233 The description of each syntax specifies how attribute or assertion
234 values conforming to the syntax are to be represented when
235 transferred in the LDAP protocol [RFC4511]. This representation is
236 referred to as the LDAP-specific encoding to distinguish it from
237 other methods of encoding attribute values (e.g., the Basic Encoding
238 Rules (BER) encoding [BER] used by X.500 [X.500] directories).
240 The LDAP-specific encoding of a given attribute syntax always
241 produces octet-aligned values. To the greatest extent possible,
242 encoding rules for LDAP syntaxes should produce character strings
243 that can be displayed with little or no translation by clients
244 implementing LDAP. However, clients MUST NOT assume that the LDAP-
245 specific encoding of a value of an unrecognized syntax is a human-
246 readable character string. There are a few cases (e.g., the JPEG
247 syntax) when it is not reasonable to produce a human-readable
250 Each LDAP syntax is uniquely identified with an object identifier
251 [ASN.1] represented in the dotted-decimal format (short descriptive
252 names are not defined for syntaxes). These object identifiers are
253 not intended to be displayed to users. The object identifiers for
254 the syntaxes defined in this document are summarized in Appendix A.
256 A suggested minimum upper bound on the number of characters in an
257 attribute value with a string-based syntax, or the number of octets
258 in a value for all other syntaxes, MAY be indicated by appending the
259 bound inside of curly braces following the syntax's OBJECT IDENTIFIER
260 in an attribute type definition (see the <noidlen> rule in
261 [RFC4512]). Such a bound is not considered part of the syntax
264 For example, "1.3.6.1.4.1.1466.115.121.1.15{64}" in an attribute
265 definition suggests that the directory server will allow a value of
266 the attribute to be up to 64 characters long, although it may allow
267 longer character strings. Note that a single character of the
268 Directory String syntax can be encoded in more than one octet, since
269 UTF-8 [RFC3629] is a variable-length encoding. Therefore, a 64-
270 character string may be more than 64 octets in length.
272 3.2. Common Definitions
274 The following ABNF rules are used in a number of the syntax
275 definitions in Section 3.3.
277 PrintableCharacter = ALPHA / DIGIT / SQUOTE / LPAREN / RPAREN /
278 PLUS / COMMA / HYPHEN / DOT / EQUALS /
282 Legg Standards Track [Page 5]
284 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
287 SLASH / COLON / QUESTION / SPACE
288 PrintableString = 1*PrintableCharacter
289 IA5String = *(%x00-7F)
290 SLASH = %x2F ; forward slash ("/")
291 COLON = %x3A ; colon (":")
292 QUESTION = %x3F ; question mark ("?")
294 The <ALPHA>, <DIGIT>, <SQUOTE>, <LPAREN>, <RPAREN>, <PLUS>, <COMMA>,
295 <HYPHEN>, <DOT>, <EQUALS>, and <SPACE> rules are defined in
298 3.3. Syntax Definitions
300 3.3.1. Attribute Type Description
302 A value of the Attribute Type Description syntax is the definition of
303 an attribute type. The LDAP-specific encoding of a value of this
304 syntax is defined by the <AttributeTypeDescription> rule in
307 For example, the following definition of the createTimestamp
308 attribute type from [RFC4512] is also a value of the Attribute
309 Type Description syntax. (Note: Line breaks have been added for
310 readability; they are not part of the value when transferred in
313 ( 2.5.18.1 NAME 'createTimestamp'
314 EQUALITY generalizedTimeMatch
315 ORDERING generalizedTimeOrderingMatch
316 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
317 SINGLE-VALUE NO-USER-MODIFICATION
318 USAGE directoryOperation )
320 The LDAP definition for the Attribute Type Description syntax is:
322 ( 1.3.6.1.4.1.1466.115.121.1.3 DESC 'Attribute Type Description' )
324 This syntax corresponds to the AttributeTypeDescription ASN.1 type
329 A value of the Bit String syntax is a sequence of binary digits. The
330 LDAP-specific encoding of a value of this syntax is defined by the
333 BitString = SQUOTE *binary-digit SQUOTE "B"
334 binary-digit = "0" / "1"
338 Legg Standards Track [Page 6]
340 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
343 The <SQUOTE> rule is defined in [RFC4512].
348 The LDAP definition for the Bit String syntax is:
350 ( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'Bit String' )
352 This syntax corresponds to the BIT STRING ASN.1 type from [ASN.1].
356 A value of the Boolean syntax is one of the Boolean values, true or
357 false. The LDAP-specific encoding of a value of this syntax is
358 defined by the following ABNF:
360 Boolean = "TRUE" / "FALSE"
362 The LDAP definition for the Boolean syntax is:
364 ( 1.3.6.1.4.1.1466.115.121.1.7 DESC 'Boolean' )
366 This syntax corresponds to the BOOLEAN ASN.1 type from [ASN.1].
368 3.3.4. Country String
370 A value of the Country String syntax is one of the two-character
371 codes from ISO 3166 [ISO3166] for representing a country. The LDAP-
372 specific encoding of a value of this syntax is defined by the
375 CountryString = 2(PrintableCharacter)
377 The <PrintableCharacter> rule is defined in Section 3.2.
384 The LDAP definition for the Country String syntax is:
386 ( 1.3.6.1.4.1.1466.115.121.1.11 DESC 'Country String' )
388 This syntax corresponds to the following ASN.1 type from [X.520]:
390 PrintableString (SIZE (2)) -- ISO 3166 codes only
394 Legg Standards Track [Page 7]
396 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
399 3.3.5. Delivery Method
401 A value of the Delivery Method syntax is a sequence of items that
402 indicate, in preference order, the service(s) by which an entity is
403 willing and/or capable of receiving messages. The LDAP-specific
404 encoding of a value of this syntax is defined by the following ABNF:
406 DeliveryMethod = pdm *( WSP DOLLAR WSP pdm )
408 pdm = "any" / "mhs" / "physical" / "telex" / "teletex" /
409 "g3fax" / "g4fax" / "ia5" / "videotex" / "telephone"
411 The <WSP> and <DOLLAR> rules are defined in [RFC4512].
416 The LDAP definition for the Delivery Method syntax is:
418 ( 1.3.6.1.4.1.1466.115.121.1.14 DESC 'Delivery Method' )
420 This syntax corresponds to the following ASN.1 type from [X.520]:
422 SEQUENCE OF INTEGER {
423 any-delivery-method (0),
425 physical-delivery (2),
427 teletex-delivery (4),
428 g3-facsimile-delivery (5),
429 g4-facsimile-delivery (6),
430 ia5-terminal-delivery (7),
431 videotex-delivery (8),
432 telephone-delivery (9) }
434 3.3.6. Directory String
436 A value of the Directory String syntax is a string of one or more
437 arbitrary characters from the Universal Character Set (UCS) [UCS]. A
438 zero-length character string is not permitted. The LDAP-specific
439 encoding of a value of this syntax is the UTF-8 encoding [RFC3629] of
440 the character string. Such encodings conform to the following ABNF:
442 DirectoryString = 1*UTF8
444 The <UTF8> rule is defined in [RFC4512].
450 Legg Standards Track [Page 8]
452 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
456 This is a value of Directory String containing #!%#@.
458 Servers and clients MUST be prepared to receive arbitrary UCS code
459 points, including code points outside the range of printable ASCII
460 and code points not presently assigned to any character.
462 Attribute type definitions using the Directory String syntax should
463 not restrict the format of Directory String values, e.g., by
464 requiring that the character string conforms to specific patterns
465 described by ABNF. A new syntax should be defined in such cases.
467 The LDAP definition for the Directory String syntax is:
469 ( 1.3.6.1.4.1.1466.115.121.1.15 DESC 'Directory String' )
471 This syntax corresponds to the DirectoryString parameterized ASN.1
474 The DirectoryString ASN.1 type allows a choice between the
475 TeletexString, PrintableString, or UniversalString ASN.1 types from
476 [ASN.1]. However, note that the chosen alternative is not indicated
477 in the LDAP-specific encoding of a Directory String value.
479 Implementations that convert Directory String values from the LDAP-
480 specific encoding to the BER encoding used by X.500 must choose an
481 alternative that permits the particular characters in the string and
482 must convert the characters from the UTF-8 encoding into the
483 character encoding of the chosen alternative. When converting
484 Directory String values from the BER encoding to the LDAP-specific
485 encoding, the characters must be converted from the character
486 encoding of the chosen alternative into the UTF-8 encoding. These
487 conversions SHOULD be done in a manner consistent with the Transcode
488 step of the string preparation algorithms [RFC4518] for LDAP.
490 3.3.7. DIT Content Rule Description
492 A value of the DIT Content Rule Description syntax is the definition
493 of a DIT (Directory Information Tree) content rule. The LDAP-
494 specific encoding of a value of this syntax is defined by the
495 <DITContentRuleDescription> rule in [RFC4512].
498 ( 2.5.6.4 DESC 'content rule for organization'
499 NOT ( x121Address $ telexNumber ) )
501 Note: A line break has been added for readability; it is not part
506 Legg Standards Track [Page 9]
508 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
511 The LDAP definition for the DIT Content Rule Description syntax is:
513 ( 1.3.6.1.4.1.1466.115.121.1.16
514 DESC 'DIT Content Rule Description' )
516 This syntax corresponds to the DITContentRuleDescription ASN.1 type
519 3.3.8. DIT Structure Rule Description
521 A value of the DIT Structure Rule Description syntax is the
522 definition of a DIT structure rule. The LDAP-specific encoding of a
523 value of this syntax is defined by the <DITStructureRuleDescription>
527 ( 2 DESC 'organization structure rule' FORM 2.5.15.3 )
529 The LDAP definition for the DIT Structure Rule Description syntax is:
531 ( 1.3.6.1.4.1.1466.115.121.1.17
532 DESC 'DIT Structure Rule Description' )
534 This syntax corresponds to the DITStructureRuleDescription ASN.1 type
539 A value of the DN syntax is the (purported) distinguished name (DN)
540 of an entry [RFC4512]. The LDAP-specific encoding of a value of this
541 syntax is defined by the <distinguishedName> rule from the string
542 representation of distinguished names [RFC4514].
544 Examples (from [RFC4514]):
545 UID=jsmith,DC=example,DC=net
546 OU=Sales+CN=J. Smith,DC=example,DC=net
547 CN=John Smith\, III,DC=example,DC=net
548 CN=Before\0dAfter,DC=example,DC=net
549 1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com
552 The LDAP definition for the DN syntax is:
554 ( 1.3.6.1.4.1.1466.115.121.1.12 DESC 'DN' )
556 The DN syntax corresponds to the DistinguishedName ASN.1 type from
557 [X.501]. Note that a BER encoded distinguished name (as used by
558 X.500) re-encoded into the LDAP-specific encoding is not necessarily
562 Legg Standards Track [Page 10]
564 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
567 reversible to the original BER encoding since the chosen string type
568 in any DirectoryString components of the distinguished name is not
569 indicated in the LDAP-specific encoding of the distinguished name
572 3.3.10. Enhanced Guide
574 A value of the Enhanced Guide syntax suggests criteria, which consist
575 of combinations of attribute types and filter operators, to be used
576 in constructing filters to search for entries of particular object
577 classes. The Enhanced Guide syntax improves upon the Guide syntax by
578 allowing the recommended depth of the search to be specified.
580 The LDAP-specific encoding of a value of this syntax is defined by
583 EnhancedGuide = object-class SHARP WSP criteria WSP
585 object-class = WSP oid WSP
586 subset = "baseobject" / "oneLevel" / "wholeSubtree"
588 criteria = and-term *( BAR and-term )
589 and-term = term *( AMPERSAND term )
590 term = EXCLAIM term /
591 attributetype DOLLAR match-type /
592 LPAREN criteria RPAREN /
595 match-type = "EQ" / "SUBSTR" / "GE" / "LE" / "APPROX"
598 BAR = %x7C ; vertical bar ("|")
599 AMPERSAND = %x26 ; ampersand ("&")
600 EXCLAIM = %x21 ; exclamation mark ("!")
602 The <SHARP>, <WSP>, <oid>, <LPAREN>, <RPAREN>, <attributetype>, and
603 <DOLLAR> rules are defined in [RFC4512].
605 The LDAP definition for the Enhanced Guide syntax is:
607 ( 1.3.6.1.4.1.1466.115.121.1.21 DESC 'Enhanced Guide' )
610 person#(sn$EQ)#oneLevel
612 The Enhanced Guide syntax corresponds to the EnhancedGuide ASN.1 type
613 from [X.520]. The EnhancedGuide type references the Criteria ASN.1
614 type, also from [X.520]. The <true> rule, above, represents an empty
618 Legg Standards Track [Page 11]
620 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
623 "and" expression in a value of the Criteria type. The <false> rule,
624 above, represents an empty "or" expression in a value of the Criteria
627 3.3.11. Facsimile Telephone Number
629 A value of the Facsimile Telephone Number syntax is a subscriber
630 number of a facsimile device on the public switched telephone
631 network. The LDAP-specific encoding of a value of this syntax is
632 defined by the following ABNF:
634 fax-number = telephone-number *( DOLLAR fax-parameter )
635 telephone-number = PrintableString
636 fax-parameter = "twoDimensional" /
644 The <telephone-number> is a string of printable characters that
645 complies with the internationally agreed format for representing
646 international telephone numbers [E.123]. The <PrintableString> rule
647 is defined in Section 3.2. The <DOLLAR> rule is defined in
650 The LDAP definition for the Facsimile Telephone Number syntax is:
652 ( 1.3.6.1.4.1.1466.115.121.1.22 DESC 'Facsimile Telephone Number')
654 The Facsimile Telephone Number syntax corresponds to the
655 FacsimileTelephoneNumber ASN.1 type from [X.520].
659 A value of the Fax syntax is an image that is produced using the
660 Group 3 facsimile process [FAX] to duplicate an object, such as a
661 memo. The LDAP-specific encoding of a value of this syntax is the
662 string of octets for a Group 3 Fax image as defined in [FAX].
664 The LDAP definition for the Fax syntax is:
666 ( 1.3.6.1.4.1.1466.115.121.1.23 DESC 'Fax' )
668 The ASN.1 type corresponding to the Fax syntax is defined as follows,
669 assuming EXPLICIT TAGS:
674 Legg Standards Track [Page 12]
676 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
680 g3-facsimile [3] G3FacsimileBodyPart
683 The G3FacsimileBodyPart ASN.1 type is defined in [X.420].
685 3.3.13. Generalized Time
687 A value of the Generalized Time syntax is a character string
688 representing a date and time. The LDAP-specific encoding of a value
689 of this syntax is a restriction of the format defined in [ISO8601],
690 and is described by the following ABNF:
692 GeneralizedTime = century year month day hour
693 [ minute [ second / leap-second ] ]
697 century = 2(%x30-39) ; "00" to "99"
698 year = 2(%x30-39) ; "00" to "99"
699 month = ( %x30 %x31-39 ) ; "01" (January) to "09"
700 / ( %x31 %x30-32 ) ; "10" to "12"
701 day = ( %x30 %x31-39 ) ; "01" to "09"
702 / ( %x31-32 %x30-39 ) ; "10" to "29"
703 / ( %x33 %x30-31 ) ; "30" to "31"
704 hour = ( %x30-31 %x30-39 ) / ( %x32 %x30-33 ) ; "00" to "23"
705 minute = %x30-35 %x30-39 ; "00" to "59"
707 second = ( %x30-35 %x30-39 ) ; "00" to "59"
708 leap-second = ( %x36 %x30 ) ; "60"
710 fraction = ( DOT / COMMA ) 1*(%x30-39)
711 g-time-zone = %x5A ; "Z"
713 g-differential = ( MINUS / PLUS ) hour [ minute ]
714 MINUS = %x2D ; minus sign ("-")
716 The <DOT>, <COMMA>, and <PLUS> rules are defined in [RFC4512].
718 The above ABNF allows character strings that do not represent valid
719 dates (in the Gregorian calendar) and/or valid times (e.g., February
720 31, 1994). Such character strings SHOULD be considered invalid for
723 The time value represents coordinated universal time (equivalent to
724 Greenwich Mean Time) if the "Z" form of <g-time-zone> is used;
725 otherwise, the value represents a local time in the time zone
726 indicated by <g-differential>. In the latter case, coordinated
730 Legg Standards Track [Page 13]
732 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
735 universal time can be calculated by subtracting the differential from
736 the local time. The "Z" form of <g-time-zone> SHOULD be used in
737 preference to <g-differential>.
739 If <minute> is omitted, then <fraction> represents a fraction of an
740 hour; otherwise, if <second> and <leap-second> are omitted, then
741 <fraction> represents a fraction of a minute; otherwise, <fraction>
742 represents a fraction of a second.
748 Both example values represent the same coordinated universal time:
749 10:32 AM, December 16, 1994.
751 The LDAP definition for the Generalized Time syntax is:
753 ( 1.3.6.1.4.1.1466.115.121.1.24 DESC 'Generalized Time' )
755 This syntax corresponds to the GeneralizedTime ASN.1 type from
756 [ASN.1], with the constraint that local time without a differential
761 A value of the Guide syntax suggests criteria, which consist of
762 combinations of attribute types and filter operators, to be used in
763 constructing filters to search for entries of particular object
764 classes. The Guide syntax is obsolete and should not be used for
765 defining new attribute types.
767 The LDAP-specific encoding of a value of this syntax is defined by
770 Guide = [ object-class SHARP ] criteria
772 The <object-class> and <criteria> rules are defined in Section
773 3.3.10. The <SHARP> rule is defined in [RFC4512].
775 The LDAP definition for the Guide syntax is:
777 ( 1.3.6.1.4.1.1466.115.121.1.25 DESC 'Guide' )
779 The Guide syntax corresponds to the Guide ASN.1 type from [X.520].
786 Legg Standards Track [Page 14]
788 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
793 A value of the IA5 String syntax is a string of zero, one, or more
794 characters from International Alphabet 5 (IA5) [T.50], the
795 international version of the ASCII character set. The LDAP-specific
796 encoding of a value of this syntax is the unconverted string of
797 characters, which conforms to the <IA5String> rule in Section 3.2.
799 The LDAP definition for the IA5 String syntax is:
801 ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' )
803 This syntax corresponds to the IA5String ASN.1 type from [ASN.1].
807 A value of the Integer syntax is a whole number of unlimited
808 magnitude. The LDAP-specific encoding of a value of this syntax is
809 the optionally signed decimal digit character string representation
810 of the number (for example, the number 1321 is represented by the
811 character string "1321"). The encoding is defined by the following
814 Integer = ( HYPHEN LDIGIT *DIGIT ) / number
816 The <HYPHEN>, <LDIGIT>, <DIGIT>, and <number> rules are defined in
819 The LDAP definition for the Integer syntax is:
821 ( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'INTEGER' )
823 This syntax corresponds to the INTEGER ASN.1 type from [ASN.1].
827 A value of the JPEG syntax is an image in the JPEG File Interchange
828 Format (JFIF), as described in [JPEG]. The LDAP-specific encoding of
829 a value of this syntax is the sequence of octets of the JFIF encoding
832 The LDAP definition for the JPEG syntax is:
834 ( 1.3.6.1.4.1.1466.115.121.1.28 DESC 'JPEG' )
836 The JPEG syntax corresponds to the following ASN.1 type:
842 Legg Standards Track [Page 15]
844 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
847 JPEG ::= OCTET STRING (CONSTRAINED BY
848 { -- contents octets are an image in the --
849 -- JPEG File Interchange Format -- })
851 3.3.18. LDAP Syntax Description
853 A value of the LDAP Syntax Description syntax is the description of
854 an LDAP syntax. The LDAP-specific encoding of a value of this syntax
855 is defined by the <SyntaxDescription> rule in [RFC4512].
857 The LDAP definition for the LDAP Syntax Description syntax is:
859 ( 1.3.6.1.4.1.1466.115.121.1.54 DESC 'LDAP Syntax Description' )
861 The above LDAP definition for the LDAP Syntax Description syntax is
862 itself a legal value of the LDAP Syntax Description syntax.
864 The ASN.1 type corresponding to the LDAP Syntax Description syntax is
865 defined as follows, assuming EXPLICIT TAGS:
867 LDAPSyntaxDescription ::= SEQUENCE {
868 identifier OBJECT IDENTIFIER,
869 description DirectoryString { ub-schema } OPTIONAL }
871 The DirectoryString parameterized ASN.1 type is defined in [X.520].
873 The value of ub-schema (an integer) is implementation defined. A
874 non-normative definition appears in [X.520].
876 3.3.19. Matching Rule Description
878 A value of the Matching Rule Description syntax is the definition of
879 a matching rule. The LDAP-specific encoding of a value of this
880 syntax is defined by the <MatchingRuleDescription> rule in [RFC4512].
883 ( 2.5.13.2 NAME 'caseIgnoreMatch'
884 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
886 Note: A line break has been added for readability; it is not part of
889 The LDAP definition for the Matching Rule Description syntax is:
891 ( 1.3.6.1.4.1.1466.115.121.1.30 DESC 'Matching Rule Description' )
893 This syntax corresponds to the MatchingRuleDescription ASN.1 type
898 Legg Standards Track [Page 16]
900 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
903 3.3.20. Matching Rule Use Description
905 A value of the Matching Rule Use Description syntax indicates the
906 attribute types to which a matching rule may be applied in an
907 extensibleMatch search filter [RFC4511]. The LDAP-specific encoding
908 of a value of this syntax is defined by the
909 <MatchingRuleUseDescription> rule in [RFC4512].
912 ( 2.5.13.16 APPLIES ( givenName $ surname ) )
914 The LDAP definition for the Matching Rule Use Description syntax is:
916 ( 1.3.6.1.4.1.1466.115.121.1.31
917 DESC 'Matching Rule Use Description' )
919 This syntax corresponds to the MatchingRuleUseDescription ASN.1 type
922 3.3.21. Name and Optional UID
924 A value of the Name and Optional UID syntax is the distinguished name
925 [RFC4512] of an entity optionally accompanied by a unique identifier
926 that serves to differentiate the entity from others with an identical
929 The LDAP-specific encoding of a value of this syntax is defined by
932 NameAndOptionalUID = distinguishedName [ SHARP BitString ]
934 The <BitString> rule is defined in Section 3.3.2. The
935 <distinguishedName> rule is defined in [RFC4514]. The <SHARP> rule
936 is defined in [RFC4512].
938 Note that although the '#' character may occur in the string
939 representation of a distinguished name, no additional escaping of
940 this character is performed when a <distinguishedName> is encoded in
941 a <NameAndOptionalUID>.
944 1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B
946 The LDAP definition for the Name and Optional UID syntax is:
948 ( 1.3.6.1.4.1.1466.115.121.1.34 DESC 'Name And Optional UID' )
954 Legg Standards Track [Page 17]
956 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
959 This syntax corresponds to the NameAndOptionalUID ASN.1 type from
962 3.3.22. Name Form Description
964 A value of the Name Form Description syntax is the definition of a
965 name form, which regulates how entries may be named. The LDAP-
966 specific encoding of a value of this syntax is defined by the
967 <NameFormDescription> rule in [RFC4512].
970 ( 2.5.15.3 NAME 'orgNameForm' OC organization MUST o )
972 The LDAP definition for the Name Form Description syntax is:
974 ( 1.3.6.1.4.1.1466.115.121.1.35 DESC 'Name Form Description' )
976 This syntax corresponds to the NameFormDescription ASN.1 type from
979 3.3.23. Numeric String
981 A value of the Numeric String syntax is a sequence of one or more
982 numerals and spaces. The LDAP-specific encoding of a value of this
983 syntax is the unconverted string of characters, which conforms to the
986 NumericString = 1*(DIGIT / SPACE)
988 The <DIGIT> and <SPACE> rules are defined in [RFC4512].
993 The LDAP definition for the Numeric String syntax is:
995 ( 1.3.6.1.4.1.1466.115.121.1.36 DESC 'Numeric String' )
997 This syntax corresponds to the NumericString ASN.1 type from [ASN.1].
999 3.3.24. Object Class Description
1001 A value of the Object Class Description syntax is the definition of
1002 an object class. The LDAP-specific encoding of a value of this
1003 syntax is defined by the <ObjectClassDescription> rule in [RFC4512].
1010 Legg Standards Track [Page 18]
1012 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1016 ( 2.5.6.2 NAME 'country' SUP top STRUCTURAL MUST c
1017 MAY ( searchGuide $ description ) )
1019 Note: A line break has been added for readability; it is not part of
1022 The LDAP definition for the Object Class Description syntax is:
1024 ( 1.3.6.1.4.1.1466.115.121.1.37 DESC 'Object Class Description' )
1026 This syntax corresponds to the ObjectClassDescription ASN.1 type from
1029 3.3.25. Octet String
1031 A value of the Octet String syntax is a sequence of zero, one, or
1032 more arbitrary octets. The LDAP-specific encoding of a value of this
1033 syntax is the unconverted sequence of octets, which conforms to the
1036 OctetString = *OCTET
1038 The <OCTET> rule is defined in [RFC4512]. Values of this syntax are
1039 not generally human-readable.
1041 The LDAP definition for the Octet String syntax is:
1043 ( 1.3.6.1.4.1.1466.115.121.1.40 DESC 'Octet String' )
1045 This syntax corresponds to the OCTET STRING ASN.1 type from [ASN.1].
1049 A value of the OID syntax is an object identifier: a sequence of two
1050 or more non-negative integers that uniquely identify some object or
1051 item of specification. Many of the object identifiers used in LDAP
1052 also have IANA registered names [RFC4520].
1054 The LDAP-specific encoding of a value of this syntax is defined by
1055 the <oid> rule in [RFC4512].
1061 The LDAP definition for the OID syntax is:
1066 Legg Standards Track [Page 19]
1068 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1071 ( 1.3.6.1.4.1.1466.115.121.1.38 DESC 'OID' )
1073 This syntax corresponds to the OBJECT IDENTIFIER ASN.1 type from
1076 3.3.27. Other Mailbox
1078 A value of the Other Mailbox syntax identifies an electronic mailbox,
1079 in a particular named mail system. The LDAP-specific encoding of a
1080 value of this syntax is defined by the following ABNF:
1082 OtherMailbox = mailbox-type DOLLAR mailbox
1083 mailbox-type = PrintableString
1086 The <mailbox-type> rule represents the type of mail system in which
1087 the mailbox resides (for example, "MCIMail"), and <mailbox> is the
1088 actual mailbox in the mail system described by <mailbox-type>. The
1089 <PrintableString> and <IA5String> rules are defined in Section 3.2.
1090 The <DOLLAR> rule is defined in [RFC4512].
1092 The LDAP definition for the Other Mailbox syntax is:
1094 ( 1.3.6.1.4.1.1466.115.121.1.39 DESC 'Other Mailbox' )
1096 The ASN.1 type corresponding to the Other Mailbox syntax is defined
1097 as follows, assuming EXPLICIT TAGS:
1099 OtherMailbox ::= SEQUENCE {
1100 mailboxType PrintableString,
1104 3.3.28. Postal Address
1106 A value of the Postal Address syntax is a sequence of strings of one
1107 or more arbitrary UCS characters, which form an address in a physical
1110 The LDAP-specific encoding of a value of this syntax is defined by
1122 Legg Standards Track [Page 20]
1124 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1127 PostalAddress = line *( DOLLAR line )
1130 / (%x5C "24") ; escaped "$"
1132 / (%x5C "5C") ; escaped "\"
1136 Each character string (i.e., <line>) of a postal address value is
1137 encoded as a UTF-8 [RFC3629] string, except that "\" and "$"
1138 characters, if they occur in the string, are escaped by a "\"
1139 character followed by the two hexadecimal digit code for the
1140 character. The <DOLLAR> and <UTFMB> rules are defined in [RFC4512].
1142 Many servers limit the postal address to no more than six lines of no
1143 more than thirty characters each.
1146 1234 Main St.$Anytown, CA 12345$USA
1147 \241,000,000 Sweepstakes$PO Box 1000000$Anytown, CA 12345$USA
1149 The LDAP definition for the Postal Address syntax is:
1151 ( 1.3.6.1.4.1.1466.115.121.1.41 DESC 'Postal Address' )
1153 This syntax corresponds to the PostalAddress ASN.1 type from [X.520];
1156 PostalAddress ::= SEQUENCE SIZE(1..ub-postal-line) OF
1157 DirectoryString { ub-postal-string }
1159 The values of ub-postal-line and ub-postal-string (both integers) are
1160 implementation defined. Non-normative definitions appear in [X.520].
1162 3.3.29. Printable String
1164 A value of the Printable String syntax is a string of one or more
1165 latin alphabetic, numeric, and selected punctuation characters as
1166 specified by the <PrintableCharacter> rule in Section 3.2.
1168 The LDAP-specific encoding of a value of this syntax is the
1169 unconverted string of characters, which conforms to the
1170 <PrintableString> rule in Section 3.2.
1173 This is a PrintableString.
1178 Legg Standards Track [Page 21]
1180 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1183 The LDAP definition for the PrintableString syntax is:
1185 ( 1.3.6.1.4.1.1466.115.121.1.44 DESC 'Printable String' )
1187 This syntax corresponds to the PrintableString ASN.1 type from
1190 3.3.30. Substring Assertion
1192 A value of the Substring Assertion syntax is a sequence of zero, one,
1193 or more character substrings used as an argument for substring
1194 extensible matching of character string attribute values; i.e., as
1195 the matchValue of a MatchingRuleAssertion [RFC4511]. Each substring
1196 is a string of one or more arbitrary characters from the Universal
1197 Character Set (UCS) [UCS]. A zero-length substring is not permitted.
1199 The LDAP-specific encoding of a value of this syntax is defined by
1202 SubstringAssertion = [ initial ] any [ final ]
1205 any = ASTERISK *(substring ASTERISK)
1207 ASTERISK = %x2A ; asterisk ("*")
1209 substring = 1*substring-character
1210 substring-character = %x00-29
1211 / (%x5C "2A") ; escaped "*"
1213 / (%x5C "5C") ; escaped "\"
1217 Each <substring> of a Substring Assertion value is encoded as a UTF-8
1218 [RFC3629] string, except that "\" and "*" characters, if they occur
1219 in the substring, are escaped by a "\" character followed by the two
1220 hexadecimal digit code for the character.
1222 The Substring Assertion syntax is used only as the syntax of
1223 assertion values in the extensible match. It is not used as an
1224 attribute syntax, or in the SubstringFilter [RFC4511].
1226 The LDAP definition for the Substring Assertion syntax is:
1228 ( 1.3.6.1.4.1.1466.115.121.1.58 DESC 'Substring Assertion' )
1234 Legg Standards Track [Page 22]
1236 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1239 This syntax corresponds to the SubstringAssertion ASN.1 type from
1242 3.3.31. Telephone Number
1244 A value of the Telephone Number syntax is a string of printable
1245 characters that complies with the internationally agreed format for
1246 representing international telephone numbers [E.123].
1248 The LDAP-specific encoding of a value of this syntax is the
1249 unconverted string of characters, which conforms to the
1250 <PrintableString> rule in Section 3.2.
1257 The LDAP definition for the Telephone Number syntax is:
1259 ( 1.3.6.1.4.1.1466.115.121.1.50 DESC 'Telephone Number' )
1261 The Telephone Number syntax corresponds to the following ASN.1 type
1264 PrintableString (SIZE(1..ub-telephone-number))
1266 The value of ub-telephone-number (an integer) is implementation
1267 defined. A non-normative definition appears in [X.520].
1269 3.3.32. Teletex Terminal Identifier
1271 A value of this syntax specifies the identifier and (optionally)
1272 parameters of a teletex terminal.
1274 The LDAP-specific encoding of a value of this syntax is defined by
1277 teletex-id = ttx-term *(DOLLAR ttx-param)
1278 ttx-term = PrintableString ; terminal identifier
1279 ttx-param = ttx-key COLON ttx-value ; parameter
1280 ttx-key = "graphic" / "control" / "misc" / "page" / "private"
1281 ttx-value = *ttx-value-octet
1283 ttx-value-octet = %x00-23
1284 / (%x5C "24") ; escaped "$"
1286 / (%x5C "5C") ; escaped "\"
1290 Legg Standards Track [Page 23]
1292 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1297 The <PrintableString> and <COLON> rules are defined in Section 3.2.
1298 The <DOLLAR> rule is defined in [RFC4512].
1300 The LDAP definition for the Teletex Terminal Identifier syntax is:
1302 ( 1.3.6.1.4.1.1466.115.121.1.51
1303 DESC 'Teletex Terminal Identifier' )
1305 This syntax corresponds to the TeletexTerminalIdentifier ASN.1 type
1308 3.3.33. Telex Number
1310 A value of the Telex Number syntax specifies the telex number,
1311 country code, and answerback code of a telex terminal.
1313 The LDAP-specific encoding of a value of this syntax is defined by
1316 telex-number = actual-number DOLLAR country-code
1318 actual-number = PrintableString
1319 country-code = PrintableString
1320 answerback = PrintableString
1322 The <PrintableString> rule is defined in Section 3.2. The <DOLLAR>
1323 rule is defined in [RFC4512].
1325 The LDAP definition for the Telex Number syntax is:
1327 ( 1.3.6.1.4.1.1466.115.121.1.52 DESC 'Telex Number' )
1329 This syntax corresponds to the TelexNumber ASN.1 type from [X.520].
1333 A value of the UTC Time syntax is a character string representing a
1334 date and time to a precision of one minute or one second. The year
1335 is given as a two-digit number. The LDAP-specific encoding of a
1336 value of this syntax follows the format defined in [ASN.1] for the
1337 UTCTime type and is described by the following ABNF:
1339 UTCTime = year month day hour minute [ second ]
1341 u-time-zone = %x5A ; "Z"
1346 Legg Standards Track [Page 24]
1348 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1351 u-differential = ( MINUS / PLUS ) hour minute
1353 The <year>, <month>, <day>, <hour>, <minute>, <second>, and <MINUS>
1354 rules are defined in Section 3.3.13. The <PLUS> rule is defined in
1357 The above ABNF allows character strings that do not represent valid
1358 dates (in the Gregorian calendar) and/or valid times. Such character
1359 strings SHOULD be considered invalid for this syntax.
1361 The time value represents coordinated universal time if the "Z" form
1362 of <u-time-zone> is used; otherwise, the value represents a local
1363 time. In the latter case, if <u-differential> is provided, then
1364 coordinated universal time can be calculated by subtracting the
1365 differential from the local time. The <u-time-zone> SHOULD be
1366 present in time values, and the "Z" form of <u-time-zone> SHOULD be
1367 used in preference to <u-differential>.
1369 The LDAP definition for the UTC Time syntax is:
1371 ( 1.3.6.1.4.1.1466.115.121.1.53 DESC 'UTC Time' )
1373 Note: This syntax is deprecated in favor of the Generalized Time
1376 The UTC Time syntax corresponds to the UTCTime ASN.1 type from
1381 Matching rules are used by directory implementations to compare
1382 attribute values against assertion values when performing Search and
1383 Compare operations [RFC4511]. They are also used when comparing a
1384 purported distinguished name [RFC4512] with the name of an entry.
1385 When modifying entries, matching rules are used to identify values to
1386 be deleted and to prevent an attribute from containing two equal
1389 Matching rules that are required for directory operation, or that are
1390 in common use, are specified in this section.
1392 4.1. General Considerations
1394 A matching rule is applied to attribute values through an
1395 AttributeValueAssertion or MatchingRuleAssertion [RFC4511]. The
1396 conditions under which an AttributeValueAssertion or
1397 MatchingRuleAssertion evaluates to Undefined are specified elsewhere
1398 [RFC4511]. If an assertion is not Undefined, then the result of the
1402 Legg Standards Track [Page 25]
1404 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1407 assertion is the result of applying the selected matching rule. A
1408 matching rule evaluates to TRUE, and in some cases Undefined, as
1409 specified in the description of the matching rule; otherwise, it
1412 Each assertion contains an assertion value. The definition of each
1413 matching rule specifies the syntax for the assertion value. The
1414 syntax of the assertion value is typically, but not necessarily, the
1415 same as the syntax of the attribute values to which the matching rule
1416 may be applied. Note that an AssertionValue in a SubstringFilter
1417 [RFC4511] conforms to the assertion syntax of the equality matching
1418 rule for the attribute type rather than to the assertion syntax of
1419 the substrings matching rule for the attribute type. Conceptually,
1420 the entire SubstringFilter is converted into an assertion value of
1421 the substrings matching rule prior to applying the rule.
1423 The definition of each matching rule indicates the attribute syntaxes
1424 to which the rule may be applied, by specifying conditions the
1425 corresponding ASN.1 type of a candidate attribute syntax must
1426 satisfy. These conditions are also satisfied if the corresponding
1427 ASN.1 type is a tagged or constrained derivative of the ASN.1 type
1428 explicitly mentioned in the rule description (i.e., ASN.1 tags and
1429 constraints are ignored in checking applicability), or is an
1430 alternative reference notation for the explicitly mentioned type.
1431 Each rule description lists, as examples of applicable attribute
1432 syntaxes, the complete list of the syntaxes defined in this document
1433 to which the matching rule applies. A matching rule may be
1434 applicable to additional syntaxes defined in other documents if those
1435 syntaxes satisfy the conditions on the corresponding ASN.1 type.
1437 The description of each matching rule indicates whether the rule is
1438 suitable for use as the equality matching rule (EQUALITY), ordering
1439 matching rule (ORDERING), or substrings matching rule (SUBSTR) in an
1440 attribute type definition [RFC4512].
1442 Each matching rule is uniquely identified with an object identifier.
1443 The definition of a matching rule should not subsequently be changed.
1444 If a change is desirable, then a new matching rule with a different
1445 object identifier should be defined instead.
1447 Servers MAY implement the wordMatch and keywordMatch matching rules,
1448 but they SHOULD implement the other matching rules in Section 4.2.
1449 Servers MAY implement additional matching rules.
1451 Servers that implement the extensibleMatch filter SHOULD allow the
1452 matching rules listed in Section 4.2 to be used in the
1453 extensibleMatch filter and SHOULD allow matching rules to be used
1454 with all attribute types known to the server, where the assertion
1458 Legg Standards Track [Page 26]
1460 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1463 syntax of the matching rule is the same as the value syntax of the
1466 Servers MUST publish, in the matchingRules attribute, the definitions
1467 of matching rules referenced by values of the attributeTypes and
1468 matchingRuleUse attributes in the same subschema entry. Other
1469 unreferenced matching rules MAY be published in the matchingRules
1472 If the server supports the extensibleMatch filter, then the server
1473 MAY use the matchingRuleUse attribute to indicate the applicability
1474 (in an extensibleMatch filter) of selected matching rules to
1475 nominated attribute types.
1477 4.2. Matching Rule Definitions
1479 Nominated character strings in assertion and attribute values are
1480 prepared according to the string preparation algorithms [RFC4518] for
1481 LDAP when evaluating the following matching rules:
1484 numericStringSubstringsMatch,
1486 caseExactOrderingMatch,
1487 caseExactSubstringsMatch,
1490 caseIgnoreIA5SubstringsMatch,
1491 caseIgnoreListMatch,
1492 caseIgnoreListSubstringsMatch,
1494 caseIgnoreOrderingMatch,
1495 caseIgnoreSubstringsMatch,
1496 directoryStringFirstComponentMatch,
1497 telephoneNumberMatch,
1498 telephoneNumberSubstringsMatch and
1501 The Transcode, Normalize, Prohibit, and Check bidi steps are the same
1502 for each of the matching rules. However, the Map and Insignificant
1503 Character Handling steps depend on the specific rule, as detailed in
1504 the description of these matching rules in the sections that follow.
1506 4.2.1. bitStringMatch
1508 The bitStringMatch rule compares an assertion value of the Bit String
1509 syntax to an attribute value of a syntax (e.g., the Bit String
1510 syntax) whose corresponding ASN.1 type is BIT STRING.
1514 Legg Standards Track [Page 27]
1516 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1519 If the corresponding ASN.1 type of the attribute syntax does not have
1520 a named bit list [ASN.1] (which is the case for the Bit String
1521 syntax), then the rule evaluates to TRUE if and only if the attribute
1522 value has the same number of bits as the assertion value and the bits
1523 match on a bitwise basis.
1525 If the corresponding ASN.1 type does have a named bit list, then
1526 bitStringMatch operates as above, except that trailing zero bits in
1527 the attribute and assertion values are treated as absent.
1529 The LDAP definition for the bitStringMatch rule is:
1531 ( 2.5.13.16 NAME 'bitStringMatch'
1532 SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 )
1534 The bitStringMatch rule is an equality matching rule.
1538 The booleanMatch rule compares an assertion value of the Boolean
1539 syntax to an attribute value of a syntax (e.g., the Boolean syntax)
1540 whose corresponding ASN.1 type is BOOLEAN.
1542 The rule evaluates to TRUE if and only if the attribute value and the
1543 assertion value are both TRUE or both FALSE.
1545 The LDAP definition for the booleanMatch rule is:
1547 ( 2.5.13.13 NAME 'booleanMatch'
1548 SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
1550 The booleanMatch rule is an equality matching rule.
1552 4.2.3. caseExactIA5Match
1554 The caseExactIA5Match rule compares an assertion value of the IA5
1555 String syntax to an attribute value of a syntax (e.g., the IA5 String
1556 syntax) whose corresponding ASN.1 type is IA5String.
1558 The rule evaluates to TRUE if and only if the prepared attribute
1559 value character string and the prepared assertion value character
1560 string have the same number of characters and corresponding
1561 characters have the same code point.
1563 In preparing the attribute value and assertion value for comparison,
1564 characters are not case folded in the Map preparation step, and only
1565 Insignificant Space Handling is applied in the Insignificant
1566 Character Handling step.
1570 Legg Standards Track [Page 28]
1572 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1575 The LDAP definition for the caseExactIA5Match rule is:
1577 ( 1.3.6.1.4.1.1466.109.114.1 NAME 'caseExactIA5Match'
1578 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1580 The caseExactIA5Match rule is an equality matching rule.
1582 4.2.4. caseExactMatch
1584 The caseExactMatch rule compares an assertion value of the Directory
1585 String syntax to an attribute value of a syntax (e.g., the Directory
1586 String, Printable String, Country String, or Telephone Number syntax)
1587 whose corresponding ASN.1 type is DirectoryString or one of the
1588 alternative string types of DirectoryString, such as PrintableString
1589 (the other alternatives do not correspond to any syntax defined in
1592 The rule evaluates to TRUE if and only if the prepared attribute
1593 value character string and the prepared assertion value character
1594 string have the same number of characters and corresponding
1595 characters have the same code point.
1597 In preparing the attribute value and assertion value for comparison,
1598 characters are not case folded in the Map preparation step, and only
1599 Insignificant Space Handling is applied in the Insignificant
1600 Character Handling step.
1602 The LDAP definition for the caseExactMatch rule is:
1604 ( 2.5.13.5 NAME 'caseExactMatch'
1605 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1607 The caseExactMatch rule is an equality matching rule.
1609 4.2.5. caseExactOrderingMatch
1611 The caseExactOrderingMatch rule compares an assertion value of the
1612 Directory String syntax to an attribute value of a syntax (e.g., the
1613 Directory String, Printable String, Country String, or Telephone
1614 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1615 one of its alternative string types.
1617 The rule evaluates to TRUE if and only if, in the code point
1618 collation order, the prepared attribute value character string
1619 appears earlier than the prepared assertion value character string;
1620 i.e., the attribute value is "less than" the assertion value.
1626 Legg Standards Track [Page 29]
1628 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1631 In preparing the attribute value and assertion value for comparison,
1632 characters are not case folded in the Map preparation step, and only
1633 Insignificant Space Handling is applied in the Insignificant
1634 Character Handling step.
1636 The LDAP definition for the caseExactOrderingMatch rule is:
1638 ( 2.5.13.6 NAME 'caseExactOrderingMatch'
1639 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1641 The caseExactOrderingMatch rule is an ordering matching rule.
1643 4.2.6. caseExactSubstringsMatch
1645 The caseExactSubstringsMatch rule compares an assertion value of the
1646 Substring Assertion syntax to an attribute value of a syntax (e.g.,
1647 the Directory String, Printable String, Country String, or Telephone
1648 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1649 one of its alternative string types.
1651 The rule evaluates to TRUE if and only if (1) the prepared substrings
1652 of the assertion value match disjoint portions of the prepared
1653 attribute value character string in the order of the substrings in
1654 the assertion value, (2) an <initial> substring, if present, matches
1655 the beginning of the prepared attribute value character string, and
1656 (3) a <final> substring, if present, matches the end of the prepared
1657 attribute value character string. A prepared substring matches a
1658 portion of the prepared attribute value character string if
1659 corresponding characters have the same code point.
1661 In preparing the attribute value and assertion value substrings for
1662 comparison, characters are not case folded in the Map preparation
1663 step, and only Insignificant Space Handling is applied in the
1664 Insignificant Character Handling step.
1666 The LDAP definition for the caseExactSubstringsMatch rule is:
1668 ( 2.5.13.7 NAME 'caseExactSubstringsMatch'
1669 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1671 The caseExactSubstringsMatch rule is a substrings matching rule.
1673 4.2.7. caseIgnoreIA5Match
1675 The caseIgnoreIA5Match rule compares an assertion value of the IA5
1676 String syntax to an attribute value of a syntax (e.g., the IA5 String
1677 syntax) whose corresponding ASN.1 type is IA5String.
1682 Legg Standards Track [Page 30]
1684 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1687 The rule evaluates to TRUE if and only if the prepared attribute
1688 value character string and the prepared assertion value character
1689 string have the same number of characters and corresponding
1690 characters have the same code point.
1692 In preparing the attribute value and assertion value for comparison,
1693 characters are case folded in the Map preparation step, and only
1694 Insignificant Space Handling is applied in the Insignificant
1695 Character Handling step.
1697 The LDAP definition for the caseIgnoreIA5Match rule is:
1699 ( 1.3.6.1.4.1.1466.109.114.2 NAME 'caseIgnoreIA5Match'
1700 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1702 The caseIgnoreIA5Match rule is an equality matching rule.
1704 4.2.8. caseIgnoreIA5SubstringsMatch
1706 The caseIgnoreIA5SubstringsMatch rule compares an assertion value of
1707 the Substring Assertion syntax to an attribute value of a syntax
1708 (e.g., the IA5 String syntax) whose corresponding ASN.1 type is
1711 The rule evaluates to TRUE if and only if (1) the prepared substrings
1712 of the assertion value match disjoint portions of the prepared
1713 attribute value character string in the order of the substrings in
1714 the assertion value, (2) an <initial> substring, if present, matches
1715 the beginning of the prepared attribute value character string, and
1716 (3) a <final> substring, if present, matches the end of the prepared
1717 attribute value character string. A prepared substring matches a
1718 portion of the prepared attribute value character string if
1719 corresponding characters have the same code point.
1721 In preparing the attribute value and assertion value substrings for
1722 comparison, characters are case folded in the Map preparation step,
1723 and only Insignificant Space Handling is applied in the Insignificant
1724 Character Handling step.
1726 ( 1.3.6.1.4.1.1466.109.114.3 NAME 'caseIgnoreIA5SubstringsMatch'
1727 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1729 The caseIgnoreIA5SubstringsMatch rule is a substrings matching rule.
1731 4.2.9. caseIgnoreListMatch
1733 The caseIgnoreListMatch rule compares an assertion value that is a
1734 sequence of strings to an attribute value of a syntax (e.g., the
1738 Legg Standards Track [Page 31]
1740 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1743 Postal Address syntax) whose corresponding ASN.1 type is a SEQUENCE
1744 OF the DirectoryString ASN.1 type.
1746 The rule evaluates to TRUE if and only if the attribute value and the
1747 assertion value have the same number of strings and corresponding
1748 strings (by position) match according to the caseIgnoreMatch matching
1751 In [X.520], the assertion syntax for this matching rule is defined to
1754 SEQUENCE OF DirectoryString {ub-match}
1756 That is, it is different from the corresponding type for the Postal
1757 Address syntax. The choice of the Postal Address syntax for the
1758 assertion syntax of the caseIgnoreListMatch in LDAP should not be
1759 seen as limiting the matching rule to apply only to attributes with
1760 the Postal Address syntax.
1762 The LDAP definition for the caseIgnoreListMatch rule is:
1764 ( 2.5.13.11 NAME 'caseIgnoreListMatch'
1765 SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
1767 The caseIgnoreListMatch rule is an equality matching rule.
1769 4.2.10. caseIgnoreListSubstringsMatch
1771 The caseIgnoreListSubstringsMatch rule compares an assertion value of
1772 the Substring Assertion syntax to an attribute value of a syntax
1773 (e.g., the Postal Address syntax) whose corresponding ASN.1 type is a
1774 SEQUENCE OF the DirectoryString ASN.1 type.
1776 The rule evaluates to TRUE if and only if the assertion value
1777 matches, per the caseIgnoreSubstringsMatch rule, the character string
1778 formed by concatenating the strings of the attribute value, except
1779 that none of the <initial>, <any>, or <final> substrings of the
1780 assertion value are considered to match a substring of the
1781 concatenated string which spans more than one of the original strings
1782 of the attribute value.
1784 Note that, in terms of the LDAP-specific encoding of the Postal
1785 Address syntax, the concatenated string omits the <DOLLAR> line
1786 separator and the escaping of "\" and "$" characters.
1788 The LDAP definition for the caseIgnoreListSubstringsMatch rule is:
1790 ( 2.5.13.12 NAME 'caseIgnoreListSubstringsMatch'
1794 Legg Standards Track [Page 32]
1796 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1799 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1801 The caseIgnoreListSubstringsMatch rule is a substrings matching rule.
1803 4.2.11. caseIgnoreMatch
1805 The caseIgnoreMatch rule compares an assertion value of the Directory
1806 String syntax to an attribute value of a syntax (e.g., the Directory
1807 String, Printable String, Country String, or Telephone Number syntax)
1808 whose corresponding ASN.1 type is DirectoryString or one of its
1809 alternative string types.
1811 The rule evaluates to TRUE if and only if the prepared attribute
1812 value character string and the prepared assertion value character
1813 string have the same number of characters and corresponding
1814 characters have the same code point.
1816 In preparing the attribute value and assertion value for comparison,
1817 characters are case folded in the Map preparation step, and only
1818 Insignificant Space Handling is applied in the Insignificant
1819 Character Handling step.
1821 The LDAP definition for the caseIgnoreMatch rule is:
1823 ( 2.5.13.2 NAME 'caseIgnoreMatch'
1824 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1826 The caseIgnoreMatch rule is an equality matching rule.
1828 4.2.12. caseIgnoreOrderingMatch
1830 The caseIgnoreOrderingMatch rule compares an assertion value of the
1831 Directory String syntax to an attribute value of a syntax (e.g., the
1832 Directory String, Printable String, Country String, or Telephone
1833 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1834 one of its alternative string types.
1836 The rule evaluates to TRUE if and only if, in the code point
1837 collation order, the prepared attribute value character string
1838 appears earlier than the prepared assertion value character string;
1839 i.e., the attribute value is "less than" the assertion value.
1841 In preparing the attribute value and assertion value for comparison,
1842 characters are case folded in the Map preparation step, and only
1843 Insignificant Space Handling is applied in the Insignificant
1844 Character Handling step.
1846 The LDAP definition for the caseIgnoreOrderingMatch rule is:
1850 Legg Standards Track [Page 33]
1852 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1855 ( 2.5.13.3 NAME 'caseIgnoreOrderingMatch'
1856 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1858 The caseIgnoreOrderingMatch rule is an ordering matching rule.
1860 4.2.13. caseIgnoreSubstringsMatch
1862 The caseIgnoreSubstringsMatch rule compares an assertion value of the
1863 Substring Assertion syntax to an attribute value of a syntax (e.g.,
1864 the Directory String, Printable String, Country String, or Telephone
1865 Number syntax) whose corresponding ASN.1 type is DirectoryString or
1866 one of its alternative string types.
1868 The rule evaluates to TRUE if and only if (1) the prepared substrings
1869 of the assertion value match disjoint portions of the prepared
1870 attribute value character string in the order of the substrings in
1871 the assertion value, (2) an <initial> substring, if present, matches
1872 the beginning of the prepared attribute value character string, and
1873 (3) a <final> substring, if present, matches the end of the prepared
1874 attribute value character string. A prepared substring matches a
1875 portion of the prepared attribute value character string if
1876 corresponding characters have the same code point.
1878 In preparing the attribute value and assertion value substrings for
1879 comparison, characters are case folded in the Map preparation step,
1880 and only Insignificant Space Handling is applied in the Insignificant
1881 Character Handling step.
1883 The LDAP definition for the caseIgnoreSubstringsMatch rule is:
1885 ( 2.5.13.4 NAME 'caseIgnoreSubstringsMatch'
1886 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
1888 The caseIgnoreSubstringsMatch rule is a substrings matching rule.
1890 4.2.14. directoryStringFirstComponentMatch
1892 The directoryStringFirstComponentMatch rule compares an assertion
1893 value of the Directory String syntax to an attribute value of a
1894 syntax whose corresponding ASN.1 type is a SEQUENCE with a mandatory
1895 first component of the DirectoryString ASN.1 type.
1897 Note that the assertion syntax of this matching rule differs from the
1898 attribute syntax of attributes for which this is the equality
1906 Legg Standards Track [Page 34]
1908 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1911 The rule evaluates to TRUE if and only if the assertion value matches
1912 the first component of the attribute value using the rules of
1915 The LDAP definition for the directoryStringFirstComponentMatch
1918 ( 2.5.13.31 NAME 'directoryStringFirstComponentMatch'
1919 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
1921 The directoryStringFirstComponentMatch rule is an equality matching
1922 rule. When using directoryStringFirstComponentMatch to compare two
1923 attribute values (of an applicable syntax), an assertion value must
1924 first be derived from one of the attribute values. An assertion
1925 value can be derived from an attribute value by taking the first
1926 component of that attribute value.
1928 4.2.15. distinguishedNameMatch
1930 The distinguishedNameMatch rule compares an assertion value of the DN
1931 syntax to an attribute value of a syntax (e.g., the DN syntax) whose
1932 corresponding ASN.1 type is DistinguishedName.
1934 The rule evaluates to TRUE if and only if the attribute value and the
1935 assertion value have the same number of relative distinguished names
1936 and corresponding relative distinguished names (by position) are the
1937 same. A relative distinguished name (RDN) of the assertion value is
1938 the same as an RDN of the attribute value if and only if they have
1939 the same number of attribute value assertions and each attribute
1940 value assertion (AVA) of the first RDN is the same as the AVA of the
1941 second RDN with the same attribute type. The order of the AVAs is
1942 not significant. Also note that a particular attribute type may
1943 appear in at most one AVA in an RDN. Two AVAs with the same
1944 attribute type are the same if their values are equal according to
1945 the equality matching rule of the attribute type. If one or more of
1946 the AVA comparisons evaluate to Undefined and the remaining AVA
1947 comparisons return TRUE then the distinguishedNameMatch rule
1948 evaluates to Undefined.
1950 The LDAP definition for the distinguishedNameMatch rule is:
1952 ( 2.5.13.1 NAME 'distinguishedNameMatch'
1953 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
1955 The distinguishedNameMatch rule is an equality matching rule.
1962 Legg Standards Track [Page 35]
1964 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
1967 4.2.16. generalizedTimeMatch
1969 The generalizedTimeMatch rule compares an assertion value of the
1970 Generalized Time syntax to an attribute value of a syntax (e.g., the
1971 Generalized Time syntax) whose corresponding ASN.1 type is
1974 The rule evaluates to TRUE if and only if the attribute value
1975 represents the same universal coordinated time as the assertion
1976 value. If a time is specified with the minutes or seconds absent,
1977 then the number of minutes or seconds (respectively) is assumed to be
1980 The LDAP definition for the generalizedTimeMatch rule is:
1982 ( 2.5.13.27 NAME 'generalizedTimeMatch'
1983 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
1985 The generalizedTimeMatch rule is an equality matching rule.
1987 4.2.17. generalizedTimeOrderingMatch
1989 The generalizedTimeOrderingMatch rule compares the time ordering of
1990 an assertion value of the Generalized Time syntax to an attribute
1991 value of a syntax (e.g., the Generalized Time syntax) whose
1992 corresponding ASN.1 type is GeneralizedTime.
1994 The rule evaluates to TRUE if and only if the attribute value
1995 represents a universal coordinated time that is earlier than the
1996 universal coordinated time represented by the assertion value.
1998 The LDAP definition for the generalizedTimeOrderingMatch rule is:
2000 ( 2.5.13.28 NAME 'generalizedTimeOrderingMatch'
2001 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
2003 The generalizedTimeOrderingMatch rule is an ordering matching rule.
2005 4.2.18. integerFirstComponentMatch
2007 The integerFirstComponentMatch rule compares an assertion value of
2008 the Integer syntax to an attribute value of a syntax (e.g., the DIT
2009 Structure Rule Description syntax) whose corresponding ASN.1 type is
2010 a SEQUENCE with a mandatory first component of the INTEGER ASN.1
2018 Legg Standards Track [Page 36]
2020 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2023 Note that the assertion syntax of this matching rule differs from the
2024 attribute syntax of attributes for which this is the equality
2027 The rule evaluates to TRUE if and only if the assertion value and the
2028 first component of the attribute value are the same integer value.
2030 The LDAP definition for the integerFirstComponentMatch matching rule
2033 ( 2.5.13.29 NAME 'integerFirstComponentMatch'
2034 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
2036 The integerFirstComponentMatch rule is an equality matching rule.
2037 When using integerFirstComponentMatch to compare two attribute values
2038 (of an applicable syntax), an assertion value must first be derived
2039 from one of the attribute values. An assertion value can be derived
2040 from an attribute value by taking the first component of that
2043 4.2.19. integerMatch
2045 The integerMatch rule compares an assertion value of the Integer
2046 syntax to an attribute value of a syntax (e.g., the Integer syntax)
2047 whose corresponding ASN.1 type is INTEGER.
2049 The rule evaluates to TRUE if and only if the attribute value and the
2050 assertion value are the same integer value.
2052 The LDAP definition for the integerMatch matching rule is:
2054 ( 2.5.13.14 NAME 'integerMatch'
2055 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
2057 The integerMatch rule is an equality matching rule.
2059 4.2.20. integerOrderingMatch
2061 The integerOrderingMatch rule compares an assertion value of the
2062 Integer syntax to an attribute value of a syntax (e.g., the Integer
2063 syntax) whose corresponding ASN.1 type is INTEGER.
2065 The rule evaluates to TRUE if and only if the integer value of the
2066 attribute value is less than the integer value of the assertion
2069 The LDAP definition for the integerOrderingMatch matching rule is:
2074 Legg Standards Track [Page 37]
2076 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2079 ( 2.5.13.15 NAME 'integerOrderingMatch'
2080 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
2082 The integerOrderingMatch rule is an ordering matching rule.
2084 4.2.21. keywordMatch
2086 The keywordMatch rule compares an assertion value of the Directory
2087 String syntax to an attribute value of a syntax (e.g., the Directory
2088 String syntax) whose corresponding ASN.1 type is DirectoryString.
2090 The rule evaluates to TRUE if and only if the assertion value
2091 character string matches any keyword in the attribute value. The
2092 identification of keywords in the attribute value and the exactness
2093 of the match are both implementation specific.
2095 The LDAP definition for the keywordMatch rule is:
2097 ( 2.5.13.33 NAME 'keywordMatch'
2098 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
2100 4.2.22. numericStringMatch
2102 The numericStringMatch rule compares an assertion value of the
2103 Numeric String syntax to an attribute value of a syntax (e.g., the
2104 Numeric String syntax) whose corresponding ASN.1 type is
2107 The rule evaluates to TRUE if and only if the prepared attribute
2108 value character string and the prepared assertion value character
2109 string have the same number of characters and corresponding
2110 characters have the same code point.
2112 In preparing the attribute value and assertion value for comparison,
2113 characters are not case folded in the Map preparation step, and only
2114 numericString Insignificant Character Handling is applied in the
2115 Insignificant Character Handling step.
2117 The LDAP definition for the numericStringMatch matching rule is:
2119 ( 2.5.13.8 NAME 'numericStringMatch'
2120 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 )
2122 The numericStringMatch rule is an equality matching rule.
2130 Legg Standards Track [Page 38]
2132 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2135 4.2.23. numericStringOrderingMatch
2137 The numericStringOrderingMatch rule compares an assertion value of
2138 the Numeric String syntax to an attribute value of a syntax (e.g.,
2139 the Numeric String syntax) whose corresponding ASN.1 type is
2142 The rule evaluates to TRUE if and only if, in the code point
2143 collation order, the prepared attribute value character string
2144 appears earlier than the prepared assertion value character string;
2145 i.e., the attribute value is "less than" the assertion value.
2147 In preparing the attribute value and assertion value for comparison,
2148 characters are not case folded in the Map preparation step, and only
2149 numericString Insignificant Character Handling is applied in the
2150 Insignificant Character Handling step.
2152 The rule is identical to the caseIgnoreOrderingMatch rule except that
2153 all space characters are skipped during comparison (case is
2154 irrelevant as the characters are numeric).
2156 The LDAP definition for the numericStringOrderingMatch matching rule
2159 ( 2.5.13.9 NAME 'numericStringOrderingMatch'
2160 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 )
2162 The numericStringOrderingMatch rule is an ordering matching rule.
2164 4.2.24. numericStringSubstringsMatch
2166 The numericStringSubstringsMatch rule compares an assertion value of
2167 the Substring Assertion syntax to an attribute value of a syntax
2168 (e.g., the Numeric String syntax) whose corresponding ASN.1 type is
2171 The rule evaluates to TRUE if and only if (1) the prepared substrings
2172 of the assertion value match disjoint portions of the prepared
2173 attribute value character string in the order of the substrings in
2174 the assertion value, (2) an <initial> substring, if present, matches
2175 the beginning of the prepared attribute value character string, and
2176 (3) a <final> substring, if present, matches the end of the prepared
2177 attribute value character string. A prepared substring matches a
2178 portion of the prepared attribute value character string if
2179 corresponding characters have the same code point.
2181 In preparing the attribute value and assertion value for comparison,
2182 characters are not case folded in the Map preparation step, and only
2186 Legg Standards Track [Page 39]
2188 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2191 numericString Insignificant Character Handling is applied in the
2192 Insignificant Character Handling step.
2194 The LDAP definition for the numericStringSubstringsMatch matching
2197 ( 2.5.13.10 NAME 'numericStringSubstringsMatch'
2198 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
2200 The numericStringSubstringsMatch rule is a substrings matching rule.
2202 4.2.25. objectIdentifierFirstComponentMatch
2204 The objectIdentifierFirstComponentMatch rule compares an assertion
2205 value of the OID syntax to an attribute value of a syntax (e.g., the
2206 Attribute Type Description, DIT Content Rule Description, LDAP Syntax
2207 Description, Matching Rule Description, Matching Rule Use
2208 Description, Name Form Description, or Object Class Description
2209 syntax) whose corresponding ASN.1 type is a SEQUENCE with a mandatory
2210 first component of the OBJECT IDENTIFIER ASN.1 type.
2212 Note that the assertion syntax of this matching rule differs from the
2213 attribute syntax of attributes for which this is the equality
2216 The rule evaluates to TRUE if and only if the assertion value matches
2217 the first component of the attribute value using the rules of
2218 objectIdentifierMatch.
2220 The LDAP definition for the objectIdentifierFirstComponentMatch
2223 ( 2.5.13.30 NAME 'objectIdentifierFirstComponentMatch'
2224 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
2226 The objectIdentifierFirstComponentMatch rule is an equality matching
2227 rule. When using objectIdentifierFirstComponentMatch to compare two
2228 attribute values (of an applicable syntax), an assertion value must
2229 first be derived from one of the attribute values. An assertion
2230 value can be derived from an attribute value by taking the first
2231 component of that attribute value.
2233 4.2.26. objectIdentifierMatch
2235 The objectIdentifierMatch rule compares an assertion value of the OID
2236 syntax to an attribute value of a syntax (e.g., the OID syntax) whose
2237 corresponding ASN.1 type is OBJECT IDENTIFIER.
2242 Legg Standards Track [Page 40]
2244 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2247 The rule evaluates to TRUE if and only if the assertion value and the
2248 attribute value represent the same object identifier; that is, the
2249 same sequence of integers, whether represented explicitly in the
2250 <numericoid> form of <oid> or implicitly in the <descr> form (see
2253 If an LDAP client supplies an assertion value in the <descr> form and
2254 the chosen descriptor is not recognized by the server, then the
2255 objectIdentifierMatch rule evaluates to Undefined.
2257 The LDAP definition for the objectIdentifierMatch matching rule is:
2259 ( 2.5.13.0 NAME 'objectIdentifierMatch'
2260 SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
2262 The objectIdentifierMatch rule is an equality matching rule.
2264 4.2.27. octetStringMatch
2266 The octetStringMatch rule compares an assertion value of the Octet
2267 String syntax to an attribute value of a syntax (e.g., the Octet
2268 String or JPEG syntax) whose corresponding ASN.1 type is the OCTET
2271 The rule evaluates to TRUE if and only if the attribute value and the
2272 assertion value are the same length and corresponding octets (by
2273 position) are the same.
2275 The LDAP definition for the octetStringMatch matching rule is:
2277 ( 2.5.13.17 NAME 'octetStringMatch'
2278 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
2280 The octetStringMatch rule is an equality matching rule.
2282 4.2.28. octetStringOrderingMatch
2284 The octetStringOrderingMatch rule compares an assertion value of the
2285 Octet String syntax to an attribute value of a syntax (e.g., the
2286 Octet String or JPEG syntax) whose corresponding ASN.1 type is the
2287 OCTET STRING ASN.1 type.
2289 The rule evaluates to TRUE if and only if the attribute value appears
2290 earlier in the collation order than the assertion value. The rule
2291 compares octet strings from the first octet to the last octet, and
2292 from the most significant bit to the least significant bit within the
2293 octet. The first occurrence of a different bit determines the
2294 ordering of the strings. A zero bit precedes a one bit. If the
2298 Legg Standards Track [Page 41]
2300 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2303 strings contain different numbers of octets but the longer string is
2304 identical to the shorter string up to the length of the shorter
2305 string, then the shorter string precedes the longer string.
2307 The LDAP definition for the octetStringOrderingMatch matching rule
2310 ( 2.5.13.18 NAME 'octetStringOrderingMatch'
2311 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
2313 The octetStringOrderingMatch rule is an ordering matching rule.
2315 4.2.29. telephoneNumberMatch
2317 The telephoneNumberMatch rule compares an assertion value of the
2318 Telephone Number syntax to an attribute value of a syntax (e.g., the
2319 Telephone Number syntax) whose corresponding ASN.1 type is a
2320 PrintableString representing a telephone number.
2322 The rule evaluates to TRUE if and only if the prepared attribute
2323 value character string and the prepared assertion value character
2324 string have the same number of characters and corresponding
2325 characters have the same code point.
2327 In preparing the attribute value and assertion value for comparison,
2328 characters are case folded in the Map preparation step, and only
2329 telephoneNumber Insignificant Character Handling is applied in the
2330 Insignificant Character Handling step.
2332 The LDAP definition for the telephoneNumberMatch matching rule is:
2334 ( 2.5.13.20 NAME 'telephoneNumberMatch'
2335 SYNTAX 1.3.6.1.4.1.1466.115.121.1.50 )
2337 The telephoneNumberMatch rule is an equality matching rule.
2339 4.2.30. telephoneNumberSubstringsMatch
2341 The telephoneNumberSubstringsMatch rule compares an assertion value
2342 of the Substring Assertion syntax to an attribute value of a syntax
2343 (e.g., the Telephone Number syntax) whose corresponding ASN.1 type is
2344 a PrintableString representing a telephone number.
2346 The rule evaluates to TRUE if and only if (1) the prepared substrings
2347 of the assertion value match disjoint portions of the prepared
2348 attribute value character string in the order of the substrings in
2349 the assertion value, (2) an <initial> substring, if present, matches
2350 the beginning of the prepared attribute value character string, and
2354 Legg Standards Track [Page 42]
2356 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2359 (3) a <final> substring, if present, matches the end of the prepared
2360 attribute value character string. A prepared substring matches a
2361 portion of the prepared attribute value character string if
2362 corresponding characters have the same code point.
2364 In preparing the attribute value and assertion value substrings for
2365 comparison, characters are case folded in the Map preparation step,
2366 and only telephoneNumber Insignificant Character Handling is applied
2367 in the Insignificant Character Handling step.
2369 The LDAP definition for the telephoneNumberSubstringsMatch matching
2372 ( 2.5.13.21 NAME 'telephoneNumberSubstringsMatch'
2373 SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
2375 The telephoneNumberSubstringsMatch rule is a substrings matching
2378 4.2.31. uniqueMemberMatch
2380 The uniqueMemberMatch rule compares an assertion value of the Name
2381 And Optional UID syntax to an attribute value of a syntax (e.g., the
2382 Name And Optional UID syntax) whose corresponding ASN.1 type is
2385 The rule evaluates to TRUE if and only if the <distinguishedName>
2386 components of the assertion value and attribute value match according
2387 to the distinguishedNameMatch rule and either, (1) the <BitString>
2388 component is absent from both the attribute value and assertion
2389 value, or (2) the <BitString> component is present in both the
2390 attribute value and the assertion value and the <BitString> component
2391 of the assertion value matches the <BitString> component of the
2392 attribute value according to the bitStringMatch rule.
2394 Note that this matching rule has been altered from its description in
2395 X.520 [X.520] in order to make the matching rule commutative. Server
2396 implementors should consider using the original X.520 semantics
2397 (where the matching was less exact) for approximate matching of
2398 attributes with uniqueMemberMatch as the equality matching rule.
2400 The LDAP definition for the uniqueMemberMatch matching rule is:
2402 ( 2.5.13.23 NAME 'uniqueMemberMatch'
2403 SYNTAX 1.3.6.1.4.1.1466.115.121.1.34 )
2405 The uniqueMemberMatch rule is an equality matching rule.
2410 Legg Standards Track [Page 43]
2412 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2417 The wordMatch rule compares an assertion value of the Directory
2418 String syntax to an attribute value of a syntax (e.g., the Directory
2419 String syntax) whose corresponding ASN.1 type is DirectoryString.
2421 The rule evaluates to TRUE if and only if the assertion value word
2422 matches, according to the semantics of caseIgnoreMatch, any word in
2423 the attribute value. The precise definition of a word is
2424 implementation specific.
2426 The LDAP definition for the wordMatch rule is:
2428 ( 2.5.13.32 NAME 'wordMatch'
2429 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
2431 5. Security Considerations
2433 In general, the LDAP-specific encodings for syntaxes defined in this
2434 document do not define canonical encodings. That is, a
2435 transformation from an LDAP-specific encoding into some other
2436 encoding (e.g., BER) and back into the LDAP-specific encoding will
2437 not necessarily reproduce exactly the original octets of the LDAP-
2438 specific encoding. Therefore, an LDAP-specific encoding should not
2439 be used where a canonical encoding is required.
2441 Furthermore, the LDAP-specific encodings do not necessarily enable an
2442 alternative encoding of values of the Directory String and DN
2443 syntaxes to be reconstructed; e.g., a transformation from a
2444 Distinguished Encoding Rules (DER) [BER] encoding to an LDAP-specific
2445 encoding and back to a DER encoding may not reproduce the original
2446 DER encoding. Therefore, LDAP-specific encodings should not be used
2447 where reversibility to DER is needed; e.g., for the verification of
2448 digital signatures. Instead, DER or a DER-reversible encoding should
2451 When interpreting security-sensitive fields (in particular, fields
2452 used to grant or deny access), implementations MUST ensure that any
2453 matching rule comparisons are done on the underlying abstract value,
2454 regardless of the particular encoding used.
2458 This document is primarily a revision of RFC 2252 by M. Wahl, A.
2459 Coulbeck, T. Howes, and S. Kille. RFC 2252 was a product of the IETF
2466 Legg Standards Track [Page 44]
2468 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2471 This document is based on input from the IETF LDAPBIS working group.
2472 The author would like to thank Kathy Dally for editing the early
2473 drafts of this document, and Jim Sermersheim and Kurt Zeilenga for
2474 their significant contributions to this revision.
2476 7. IANA Considerations
2478 The Internet Assigned Numbers Authority (IANA) has updated the LDAP
2479 descriptors registry [BCP64] as indicated by the following templates:
2481 Subject: Request for LDAP Descriptor Registration Update
2482 Descriptor (short name): see comment
2483 Object Identifier: see comment
2484 Person & email address to contact for further information:
2485 Steven Legg <steven.legg@eb2bcom.com>
2487 Specification: RFC 4517
2488 Author/Change Controller: IESG
2491 ------------------------------------------------------------------
2492 bitStringMatch M 2.5.13.16
2493 booleanMatch M 2.5.13.13
2494 caseExactIA5Match M 1.3.6.1.4.1.1466.109.114.1
2495 caseExactMatch M 2.5.13.5
2496 caseExactOrderingMatch M 2.5.13.6
2497 caseExactSubstringsMatch M 2.5.13.7
2498 caseIgnoreIA5Match M 1.3.6.1.4.1.1466.109.114.2
2499 caseIgnoreListMatch M 2.5.13.11
2500 caseIgnoreListSubstringsMatch M 2.5.13.12
2501 caseIgnoreMatch M 2.5.13.2
2502 caseIgnoreOrderingMatch M 2.5.13.3
2503 caseIgnoreSubstringsMatch M 2.5.13.4
2504 directoryStringFirstComponentMatch M 2.5.13.31
2505 distinguishedNameMatch M 2.5.13.1
2506 generalizedTimeMatch M 2.5.13.27
2507 generalizedTimeOrderingMatch M 2.5.13.28
2508 integerFirstComponentMatch M 2.5.13.29
2509 integerMatch M 2.5.13.14
2510 integerOrderingMatch M 2.5.13.15
2511 keywordMatch M 2.5.13.33
2512 numericStringMatch M 2.5.13.8
2513 numericStringOrderingMatch M 2.5.13.9
2514 numericStringSubstringsMatch M 2.5.13.10
2515 objectIdentifierFirstComponentMatch M 2.5.13.30
2516 octetStringMatch M 2.5.13.17
2517 octetStringOrderingMatch M 2.5.13.18
2518 telephoneNumberMatch M 2.5.13.20
2522 Legg Standards Track [Page 45]
2524 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2527 telephoneNumberSubstringsMatch M 2.5.13.21
2528 uniqueMemberMatch M 2.5.13.23
2529 wordMatch M 2.5.13.32
2531 The descriptor for the object identifier 2.5.13.0 was incorrectly
2532 registered as objectIdentifiersMatch (extraneous \`s') in BCP 64.
2533 It has been changed to the following, with a reference to
2537 ------------------------------------------------------------------
2538 objectIdentifierMatch M 2.5.13.0
2540 Subject: Request for LDAP Descriptor Registration
2541 Descriptor (short name): caseIgnoreIA5SubstringsMatch
2542 Object Identifier: 1.3.6.1.4.1.1466.109.114.3
2543 Person & email address to contact for further information:
2544 Steven Legg <steven.legg@eb2bcom.com>
2546 Specification: RFC 4517
2547 Author/Change Controller: IESG
2551 8.1. Normative References
2553 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
2554 Requirement Levels", BCP 14, RFC 2119, March 1997.
2556 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
2557 10646", STD 63, RFC 3629, November 2003.
2559 [RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
2560 Specifications: ABNF", RFC 4234, October 2005.
2562 [RFC4510] Zeilenga, K., Ed., "Lightweight Directory Access Protocol
2563 (LDAP): Technical Specification Road Map", RFC 4510, June
2566 [RFC4511] Sermersheim, J., Ed., "Lightweight Directory Access
2567 Protocol (LDAP): The Protocol", RFC 4511, June 2006.
2569 [RFC4512] Zeilenga, K., "Lightweight Directory Access Protocol
2570 (LDAP): Directory Information Models", RFC 4512, June
2578 Legg Standards Track [Page 46]
2580 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2583 [RFC4514] Zeilenga, K., Ed., "Lightweight Directory Access Protocol
2584 (LDAP): String Representation of Distinguished Names", RFC
2587 [RFC4518] Zeilenga, K., "Lightweight Directory Access Protocol
2588 (LDAP): Internationalized String Preparation", RFC 4518,
2591 [RFC4520] Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
2592 Considerations for the Lightweight Directory Access
2593 Protocol (LDAP)", BCP 64, RFC 4520, June 2006.
2595 [E.123] Notation for national and international telephone numbers,
2596 ITU-T Recommendation E.123, 1988.
2598 [FAX] Standardization of Group 3 facsimile apparatus for
2599 document transmission - Terminal Equipment and Protocols
2600 for Telematic Services, ITU-T Recommendation T.4, 1993
2602 [T.50] International Reference Alphabet (IRA) (Formerly
2603 International Alphabet No. 5 or IA5) Information
2604 Technology - 7-Bit Coded Character Set for Information
2605 Interchange, ITU-T Recommendation T.50, 1992
2607 [X.420] ITU-T Recommendation X.420 (1996) | ISO/IEC 10021-7:1997,
2608 Information Technology - Message Handling Systems (MHS):
2609 Interpersonal messaging system
2611 [X.501] ITU-T Recommendation X.501 (1993) | ISO/IEC 9594-2:1994,
2612 Information Technology - Open Systems Interconnection -
2613 The Directory: Models
2615 [X.520] ITU-T Recommendation X.520 (1993) | ISO/IEC 9594-6:1994,
2616 Information Technology - Open Systems Interconnection -
2617 The Directory: Selected attribute types
2619 [ASN.1] ITU-T Recommendation X.680 (07/02) | ISO/IEC 8824-1:2002,
2620 Information technology - Abstract Syntax Notation One
2621 (ASN.1): Specification of basic notation
2623 [ISO3166] ISO 3166, "Codes for the representation of names of
2626 [ISO8601] ISO 8601:2004, "Data elements and interchange formats --
2627 Information interchange -- Representation of dates and
2634 Legg Standards Track [Page 47]
2636 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2639 [UCS] Universal Multiple-Octet Coded Character Set (UCS) -
2640 Architecture and Basic Multilingual Plane, ISO/IEC 10646-
2641 1: 1993 (with amendments).
2643 [JPEG] JPEG File Interchange Format (Version 1.02). Eric
2644 Hamilton, C-Cube Microsystems, Milpitas, CA, September 1,
2647 8.2. Informative References
2649 [RFC4519] Sciberras, A., Ed., "Lightweight Directory Access Protocol
2650 (LDAP): Schema for User Applications", RFC 4519, June
2653 [RFC4523] Zeilenga, K., "Lightweight Directory Access Protocol
2654 (LDAP) Schema Definitions for X.509 Certificates", RFC
2657 [X.500] ITU-T Recommendation X.500 (1993) | ISO/IEC 9594-1:1994,
2658 Information Technology - Open Systems Interconnection -
2659 The Directory: Overview of concepts, models and services
2661 [BER] ITU-T Recommendation X.690 (07/02) | ISO/IEC 8825-1:2002,
2662 Information technology - ASN.1 encoding rules:
2663 Specification of Basic Encoding Rules (BER), Canonical
2664 Encoding Rules (CER) and Distinguished Encoding Rules
2690 Legg Standards Track [Page 48]
2692 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2695 Appendix A. Summary of Syntax Object Identifiers
2697 The following list summarizes the object identifiers assigned to the
2698 syntaxes defined in this document.
2700 Syntax OBJECT IDENTIFIER
2701 ==============================================================
2702 Attribute Type Description 1.3.6.1.4.1.1466.115.121.1.3
2703 Bit String 1.3.6.1.4.1.1466.115.121.1.6
2704 Boolean 1.3.6.1.4.1.1466.115.121.1.7
2705 Country String 1.3.6.1.4.1.1466.115.121.1.11
2706 Delivery Method 1.3.6.1.4.1.1466.115.121.1.14
2707 Directory String 1.3.6.1.4.1.1466.115.121.1.15
2708 DIT Content Rule Description 1.3.6.1.4.1.1466.115.121.1.16
2709 DIT Structure Rule Description 1.3.6.1.4.1.1466.115.121.1.17
2710 DN 1.3.6.1.4.1.1466.115.121.1.12
2711 Enhanced Guide 1.3.6.1.4.1.1466.115.121.1.21
2712 Facsimile Telephone Number 1.3.6.1.4.1.1466.115.121.1.22
2713 Fax 1.3.6.1.4.1.1466.115.121.1.23
2714 Generalized Time 1.3.6.1.4.1.1466.115.121.1.24
2715 Guide 1.3.6.1.4.1.1466.115.121.1.25
2716 IA5 String 1.3.6.1.4.1.1466.115.121.1.26
2717 Integer 1.3.6.1.4.1.1466.115.121.1.27
2718 JPEG 1.3.6.1.4.1.1466.115.121.1.28
2719 LDAP Syntax Description 1.3.6.1.4.1.1466.115.121.1.54
2720 Matching Rule Description 1.3.6.1.4.1.1466.115.121.1.30
2721 Matching Rule Use Description 1.3.6.1.4.1.1466.115.121.1.31
2722 Name And Optional UID 1.3.6.1.4.1.1466.115.121.1.34
2723 Name Form Description 1.3.6.1.4.1.1466.115.121.1.35
2724 Numeric String 1.3.6.1.4.1.1466.115.121.1.36
2725 Object Class Description 1.3.6.1.4.1.1466.115.121.1.37
2726 Octet String 1.3.6.1.4.1.1466.115.121.1.40
2727 OID 1.3.6.1.4.1.1466.115.121.1.38
2728 Other Mailbox 1.3.6.1.4.1.1466.115.121.1.39
2729 Postal Address 1.3.6.1.4.1.1466.115.121.1.41
2730 Printable String 1.3.6.1.4.1.1466.115.121.1.44
2731 Substring Assertion 1.3.6.1.4.1.1466.115.121.1.58
2732 Telephone Number 1.3.6.1.4.1.1466.115.121.1.50
2733 Teletex Terminal Identifier 1.3.6.1.4.1.1466.115.121.1.51
2734 Telex Number 1.3.6.1.4.1.1466.115.121.1.52
2735 UTC Time 1.3.6.1.4.1.1466.115.121.1.53
2737 Appendix B. Changes from RFC 2252
2739 This annex lists the significant differences between this
2740 specification and RFC 2252.
2746 Legg Standards Track [Page 49]
2748 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2751 This annex is provided for informational purposes only. It is not a
2752 normative part of this specification.
2754 1. The IESG Note has been removed.
2756 2. The major part of Sections 4, 5 and 7 has been moved to [RFC4512]
2757 and revised. Changes to the parts of these sections moved to
2758 [RFC4512] are detailed in [RFC4512].
2760 3. BNF descriptions of syntax formats have been replaced by ABNF
2761 [RFC4234] specifications.
2763 4. The ambiguous statement in RFC 2252, Section 4.3 regarding the
2764 use of a backslash quoting mechanism to escape separator symbols
2765 has been removed. The escaping mechanism is now explicitly
2766 represented in the ABNF for the syntaxes where this provision
2769 5. The description of each of the LDAP syntaxes has been expanded so
2770 that they are less dependent on knowledge of X.500 for
2773 6. The relationship of LDAP syntaxes to corresponding ASN.1 type
2774 definitions has been made explicit.
2776 7. The set of characters allowed in a <PrintableString> (formerly
2777 <printablestring>) has been corrected to align with the
2778 PrintableString ASN.1 type in [ASN.1]. Specifically, the double
2779 quote character has been removed and the single quote character
2780 and equals sign have been added.
2782 8. Values of the Directory String, Printable String and Telephone
2783 Number syntaxes are now required to have at least one character.
2785 9. The <DITContentRuleDescription>, <NameFormDescription> and
2786 <DITStructureRuleDescription> rules have been moved to [RFC4512].
2788 10. The corresponding ASN.1 type for the Other Mailbox syntax has
2789 been incorporated from RFC 1274.
2791 11. A corresponding ASN.1 type for the LDAP Syntax Description syntax
2794 12. The Binary syntax has been removed because it was not adequately
2795 specified, implementations with different incompatible
2796 interpretations exist, and it was confused with the ;binary
2802 Legg Standards Track [Page 50]
2804 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2807 13. All discussion of transfer options, including the ";binary"
2808 option, has been removed. All imperatives regarding binary
2809 transfer of values have been removed.
2811 14. The Delivery Method, Enhanced Guide, Guide, Octet String, Teletex
2812 Terminal Identifier and Telex Number syntaxes from RFC 2256 have
2815 15. The <criteria> rule for the Enhanced Guide and Guide syntaxes has
2816 been extended to accommodate empty "and" and "or" expressions.
2818 16. An encoding for the <ttx-value> rule in the Teletex Terminal
2819 Identifier syntax has been defined.
2821 17. The PKI-related syntaxes (Certificate, Certificate List and
2822 Certificate Pair) have been removed. They are reintroduced in
2823 [RFC4523] (as is the Supported Algorithm syntax from RFC 2256).
2825 18. The MHS OR Address syntax has been removed since its
2826 specification (in RFC 2156) is not at draft standard maturity.
2828 19. The DL Submit Permission syntax has been removed as it depends on
2829 the MHS OR Address syntax.
2831 20. The Presentation Address syntax has been removed since its
2832 specification (in RFC 1278) is not at draft standard maturity.
2834 21. The ACI Item, Access Point, Audio, Data Quality, DSA Quality, DSE
2835 Type, LDAP Schema Description, Master And Shadow Access Points,
2836 Modify Rights, Protocol Information, Subtree Specification,
2837 Supplier Information, Supplier Or Consumer and Supplier And
2838 Consumer syntaxes have been removed. These syntaxes are
2839 referenced in RFC 2252, but not defined.
2841 22. The LDAP Schema Definition syntax (defined in RFC 2927) and the
2842 Mail Preference syntax have been removed on the grounds that they
2843 are out of scope for the core specification.
2845 23. The description of each of the matching rules has been expanded
2846 so that they are less dependent on knowledge of X.500 for
2849 24. The caseIgnoreIA5SubstringsMatch matching rule from RFC 2798 has
2852 25. The caseIgnoreListSubstringsMatch, caseIgnoreOrderingMatch and
2853 caseIgnoreSubstringsMatch matching rules have been added to the
2854 list of matching rules for which the provisions for handling
2858 Legg Standards Track [Page 51]
2860 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2863 leading, trailing and multiple adjoining whitespace characters
2864 apply (now through string preparation). This is consistent with
2865 the definitions of these matching rules in X.500. The
2866 caseIgnoreIA5SubstringsMatch rule has also been added to the
2869 26. The specification of the octetStringMatch matching rule from
2870 RFC 2256 has been added to this document.
2872 27. The presentationAddressMatch matching rule has been removed as it
2873 depends on an assertion syntax (Presentation Address) that is not
2874 at draft standard maturity.
2876 28. The protocolInformationMatch matching rule has been removed as it
2877 depends on an undefined assertion syntax (Protocol Information).
2879 29. The definitive reference for ASN.1 has been changed from X.208 to
2880 X.680 since X.680 is the version of ASN.1 referred to by X.500.
2882 30. The specification of the caseIgnoreListSubstringsMatch matching
2883 rule from RFC 2798 & X.520 has been added.
2885 31. String preparation algorithms have been applied to the character
2886 string matching rules.
2888 32. The specifications of the booleanMatch, caseExactMatch,
2889 caseExactOrderingMatch, caseExactSubstringsMatch,
2890 directoryStringFirstComponentMatch, integerOrderingMatch,
2891 keywordMatch, numericStringOrderingMatch,
2892 octetStringOrderingMatch and wordMatch matching rules from
2893 RFC 3698 & X.520 have been added.
2899 Suite3, Woodhouse Corporate Centre
2901 Box Hill North, Victoria 3129
2904 Phone: +61 3 9896 7830
2905 Fax: +61 3 9896 7801
2906 EMail: steven.legg@eb2bcom.com
2914 Legg Standards Track [Page 52]
2916 RFC 4517 LDAP: Syntaxes and Matching Rules June 2006
2919 Full Copyright Statement
2921 Copyright (C) The Internet Society (2006).
2923 This document is subject to the rights, licenses and restrictions
2924 contained in BCP 78, and except as set forth therein, the authors
2925 retain all their rights.
2927 This document and the information contained herein are provided on an
2928 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
2929 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
2930 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
2931 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
2932 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
2933 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2935 Intellectual Property
2937 The IETF takes no position regarding the validity or scope of any
2938 Intellectual Property Rights or other rights that might be claimed to
2939 pertain to the implementation or use of the technology described in
2940 this document or the extent to which any license under such rights
2941 might or might not be available; nor does it represent that it has
2942 made any independent effort to identify any such rights. Information
2943 on the procedures with respect to rights in RFC documents can be
2944 found in BCP 78 and BCP 79.
2946 Copies of IPR disclosures made to the IETF Secretariat and any
2947 assurances of licenses to be made available, or the result of an
2948 attempt made to obtain a general license or permission for the use of
2949 such proprietary rights by implementers or users of this
2950 specification can be obtained from the IETF on-line IPR repository at
2951 http://www.ietf.org/ipr.
2953 The IETF invites any interested party to bring to its attention any
2954 copyrights, patents or patent applications, or other proprietary
2955 rights that may cover technology that may be required to implement
2956 this standard. Please address the information to the IETF at
2961 Funding for the RFC Editor function is provided by the IETF
2962 Administrative Support Activity (IASA).
2970 Legg Standards Track [Page 53]