7 Network Working Group K. Zeilenga
8 Request for Comments: 4523 OpenLDAP Foundation
9 Obsoletes: 2252, 2256, 2587 June 2006
10 Category: Standards Track
13 Lightweight Directory Access Protocol (LDAP)
14 Schema Definitions for X.509 Certificates
18 This document specifies an Internet standards track protocol for the
19 Internet community, and requests discussion and suggestions for
20 improvements. Please refer to the current edition of the "Internet
21 Official Protocol Standards" (STD 1) for the standardization state
22 and status of this protocol. Distribution of this memo is unlimited.
26 Copyright (C) The Internet Society (2006).
30 This document describes schema for representing X.509 certificates,
31 X.521 security information, and related elements in directories
32 accessible using the Lightweight Directory Access Protocol (LDAP).
33 The LDAP definitions for these X.509 and X.521 schema elements
34 replace those provided in RFCs 2252 and 2256.
38 This document provides LDAP [RFC4510] schema definitions [RFC4512]
39 for a subset of elements specified in X.509 [X.509] and X.521
40 [X.521], including attribute types for certificates, cross
41 certificate pairs, and certificate revocation lists; matching rules
42 to be used with these attribute types; and related object classes.
43 LDAP syntax definitions are also provided for associated assertion
46 As the semantics of these elements are as defined in X.509 and X.521,
47 knowledge of X.509 and X.521 is necessary to make use of the LDAP
48 schema definitions provided herein.
50 This document, together with [RFC4510], obsoletes RFCs 2252 and 2256
51 in their entirety. The changes (in this document) made since RFC
52 2252 and RFC 2256 include:
54 - addition of pkiUser, pkiCA, and deltaCRL classes;
58 Zeilenga Standards Track [Page 1]
60 RFC 4523 LDAP X.509 Schema June 2006
63 - update of attribute types to include equality matching rules in
64 accordance with their X.500 specifications;
66 - addition of certificate, certificate pair, certificate list,
67 and algorithm identifier matching rules; and
69 - addition of LDAP syntax for assertion syntaxes for these
72 This document obsoletes RFC 2587. The X.509 schema descriptions for
73 LDAPv2 [RFC1777] are Historic, as is LDAPv2 [RFC3494].
75 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
76 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
77 document are to be interpreted as described in BCP 14 [RFC2119].
79 Schema definitions are provided using LDAP description formats
80 [RFC4512]. Definitions provided here are formatted (line wrapped)
85 This section describes various syntaxes used in LDAP to transfer
86 certificates and related data types.
90 ( 1.3.6.1.4.1.1466.115.121.1.8 DESC 'X.509 Certificate' )
92 A value of this syntax is an X.509 Certificate [X.509, clause 7].
94 Due to changes made to the definition of a Certificate through time,
95 no LDAP-specific encoding is defined for this syntax. Values of this
96 syntax SHOULD be encoded using Distinguished Encoding Rules (DER)
97 [X.690] and MUST only be transferred using the ;binary transfer
98 option [RFC4522]; that is, by requesting and returning values using
99 attribute descriptions such as "userCertificate;binary".
101 As values of this syntax contain digitally signed data, values of
102 this syntax and the form of each value MUST be preserved as
107 ( 1.3.6.1.4.1.1466.115.121.1.9 DESC 'X.509 Certificate List' )
109 A value of this syntax is an X.509 CertificateList [X.509, clause
114 Zeilenga Standards Track [Page 2]
116 RFC 4523 LDAP X.509 Schema June 2006
119 Due to changes made to the definition of a CertificateList through
120 time, no LDAP-specific encoding is defined for this syntax. Values
121 of this syntax SHOULD be encoded using DER [X.690] and MUST only be
122 transferred using the ;binary transfer option [RFC4522]; that is, by
123 requesting and returning values using attribute descriptions such as
124 "certificateRevocationList;binary".
126 As values of this syntax contain digitally signed data, values of
127 this syntax and the form of each value MUST be preserved as
132 ( 1.3.6.1.4.1.1466.115.121.1.10 DESC 'X.509 Certificate Pair' )
134 A value of this syntax is an X.509 CertificatePair [X.509, clause
137 Due to changes made to the definition of an X.509 CertificatePair
138 through time, no LDAP-specific encoding is defined for this syntax.
139 Values of this syntax SHOULD be encoded using DER [X.690] and MUST
140 only be transferred using the ;binary transfer option [RFC4522]; that
141 is, by requesting and returning values using attribute descriptions
142 such as "crossCertificatePair;binary".
144 As values of this syntax contain digitally signed data, values of
145 this syntax and the form of each value MUST be preserved as
148 2.4. SupportedAlgorithm
150 ( 1.3.6.1.4.1.1466.115.121.1.49
151 DESC 'X.509 Supported Algorithm' )
153 A value of this syntax is an X.509 SupportedAlgorithm [X.509, clause
156 Due to changes made to the definition of an X.509 SupportedAlgorithm
157 through time, no LDAP-specific encoding is defined for this syntax.
158 Values of this syntax SHOULD be encoded using DER [X.690] and MUST
159 only be transferred using the ;binary transfer option [RFC4522]; that
160 is, by requesting and returning values using attribute descriptions
161 such as "supportedAlgorithms;binary".
163 As values of this syntax contain digitally signed data, values of
164 this syntax and the form of the value MUST be preserved as presented.
170 Zeilenga Standards Track [Page 3]
172 RFC 4523 LDAP X.509 Schema June 2006
175 2.5. CertificateExactAssertion
177 ( 1.3.6.1.1.15.1 DESC 'X.509 Certificate Exact Assertion' )
179 A value of this syntax is an X.509 CertificateExactAssertion [X.509,
180 clause 11.3.1]. Values of this syntax MUST be encoded using the
181 Generic String Encoding Rules (GSER) [RFC3641]. Appendix A.1
182 provides an equivalent Augmented Backus-Naur Form (ABNF) [RFC4234]
183 grammar for this syntax.
185 2.6. CertificateAssertion
187 ( 1.3.6.1.1.15.2 DESC 'X.509 Certificate Assertion' )
189 A value of this syntax is an X.509 CertificateAssertion [X.509,
190 clause 11.3.2]. Values of this syntax MUST be encoded using GSER
191 [RFC3641]. Appendix A.2 provides an equivalent ABNF [RFC4234]
192 grammar for this syntax.
194 2.7. CertificatePairExactAssertion
197 DESC 'X.509 Certificate Pair Exact Assertion' )
199 A value of this syntax is an X.509 CertificatePairExactAssertion
200 [X.509, clause 11.3.3]. Values of this syntax MUST be encoded using
201 GSER [RFC3641]. Appendix A.3 provides an equivalent ABNF [RFC4234]
202 grammar for this syntax.
204 2.8. CertificatePairAssertion
206 ( 1.3.6.1.1.15.4 DESC 'X.509 Certificate Pair Assertion' )
208 A value of this syntax is an X.509 CertificatePairAssertion [X.509,
209 clause 11.3.4]. Values of this syntax MUST be encoded using GSER
210 [RFC3641]. Appendix A.4 provides an equivalent ABNF [RFC4234]
211 grammar for this syntax.
213 2.9. CertificateListExactAssertion
216 DESC 'X.509 Certificate List Exact Assertion' )
218 A value of this syntax is an X.509 CertificateListExactAssertion
219 [X.509, clause 11.3.5]. Values of this syntax MUST be encoded using
220 GSER [RFC3641]. Appendix A.5 provides an equivalent ABNF grammar for
226 Zeilenga Standards Track [Page 4]
228 RFC 4523 LDAP X.509 Schema June 2006
231 2.10. CertificateListAssertion
233 ( 1.3.6.1.1.15.6 DESC 'X.509 Certificate List Assertion' )
235 A value of this syntax is an X.509 CertificateListAssertion [X.509,
236 clause 11.3.6]. Values of this syntax MUST be encoded using GSER
237 [RFC3641]. Appendix A.6 provides an equivalent ABNF [RFC4234]
238 grammar for this syntax.
240 2.11. AlgorithmIdentifier
242 ( 1.3.6.1.1.15.7 DESC 'X.509 Algorithm Identifier' )
244 A value of this syntax is an X.509 AlgorithmIdentifier [X.509, Clause
245 7]. Values of this syntax MUST be encoded using GSER [RFC3641].
247 Appendix A.7 provides an equivalent ABNF [RFC4234] grammar for this
252 This section introduces a set of certificate and related matching
253 rules for use in LDAP. These rules are intended to act in accordance
254 with their X.500 counterparts.
256 3.1. certificateExactMatch
258 The certificateExactMatch matching rule compares the presented
259 certificate exact assertion value with an attribute value of the
260 certificate syntax as described in clause 11.3.1 of [X.509].
262 ( 2.5.13.34 NAME 'certificateExactMatch'
263 DESC 'X.509 Certificate Exact Match'
264 SYNTAX 1.3.6.1.1.15.1 )
266 3.2. certificateMatch
268 The certificateMatch matching rule compares the presented certificate
269 assertion value with an attribute value of the certificate syntax as
270 described in clause 11.3.2 of [X.509].
272 ( 2.5.13.35 NAME 'certificateMatch'
273 DESC 'X.509 Certificate Match'
274 SYNTAX 1.3.6.1.1.15.2 )
282 Zeilenga Standards Track [Page 5]
284 RFC 4523 LDAP X.509 Schema June 2006
287 3.3. certificatePairExactMatch
289 The certificatePairExactMatch matching rule compares the presented
290 certificate pair exact assertion value with an attribute value of the
291 certificate pair syntax as described in clause 11.3.3 of [X.509].
293 ( 2.5.13.36 NAME 'certificatePairExactMatch'
294 DESC 'X.509 Certificate Pair Exact Match'
295 SYNTAX 1.3.6.1.1.15.3 )
297 3.4. certificatePairMatch
299 The certificatePairMatch matching rule compares the presented
300 certificate pair assertion value with an attribute value of the
301 certificate pair syntax as described in clause 11.3.4 of [X.509].
303 ( 2.5.13.37 NAME 'certificatePairMatch'
304 DESC 'X.509 Certificate Pair Match'
305 SYNTAX 1.3.6.1.1.15.4 )
307 3.5. certificateListExactMatch
309 The certificateListExactMatch matching rule compares the presented
310 certificate list exact assertion value with an attribute value of the
311 certificate pair syntax as described in clause 11.3.5 of [X.509].
313 ( 2.5.13.38 NAME 'certificateListExactMatch'
314 DESC 'X.509 Certificate List Exact Match'
315 SYNTAX 1.3.6.1.1.15.5 )
317 3.6. certificateListMatch
319 The certificateListMatch matching rule compares the presented
320 certificate list assertion value with an attribute value of the
321 certificate pair syntax as described in clause 11.3.6 of [X.509].
323 ( 2.5.13.39 NAME 'certificateListMatch'
324 DESC 'X.509 Certificate List Match'
325 SYNTAX 1.3.6.1.1.15.6 )
338 Zeilenga Standards Track [Page 6]
340 RFC 4523 LDAP X.509 Schema June 2006
343 3.7. algorithmIdentifierMatch
345 The algorithmIdentifierMatch mating rule compares a presented
346 algorithm identifier with an attribute value of the supported
347 algorithm as described in clause 11.3.7 of [X.509].
349 ( 2.5.13.40 NAME 'algorithmIdentifier'
350 DESC 'X.509 Algorithm Identifier Match'
351 SYNTAX 1.3.6.1.1.15.7 )
355 This section details a set of certificate and related attribute types
360 The userCertificate attribute holds the X.509 certificates issued to
361 the user by one or more certificate authorities, as discussed in
362 clause 11.2.1 of [X.509].
364 ( 2.5.4.36 NAME 'userCertificate'
365 DESC 'X.509 user certificate'
366 EQUALITY certificateExactMatch
367 SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
369 As required by this attribute type's syntax, values of this attribute
370 are requested and transferred using the attribute description
371 "userCertificate;binary".
375 The cACertificate attribute holds the X.509 certificates issued to
376 the certificate authority (CA), as discussed in clause 11.2.2 of
379 ( 2.5.4.37 NAME 'cACertificate'
380 DESC 'X.509 CA certificate'
381 EQUALITY certificateExactMatch
382 SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
384 As required by this attribute type's syntax, values of this attribute
385 are requested and transferred using the attribute description
386 "cACertificate;binary".
394 Zeilenga Standards Track [Page 7]
396 RFC 4523 LDAP X.509 Schema June 2006
399 4.3. crossCertificatePair
401 The crossCertificatePair attribute holds an X.509 certificate pair,
402 as discussed in clause 11.2.3 of [X.509].
404 ( 2.5.4.40 NAME 'crossCertificatePair'
405 DESC 'X.509 cross certificate pair'
406 EQUALITY certificatePairExactMatch
407 SYNTAX 1.3.6.1.4.1.1466.115.121.1.10 )
409 As required by this attribute type's syntax, values of this attribute
410 are requested and transferred using the attribute description
411 "crossCertificatePair;binary".
413 4.4. certificateRevocationList
415 The certificateRevocationList attribute holds certificate lists, as
416 discussed in 11.2.4 of [X.509].
418 ( 2.5.4.39 NAME 'certificateRevocationList'
419 DESC 'X.509 certificate revocation list'
420 EQUALITY certificateListExactMatch
421 SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
423 As required by this attribute type's syntax, values of this attribute
424 are requested and transferred using the attribute description
425 "certificateRevocationList;binary".
427 4.5. authorityRevocationList
429 The authorityRevocationList attribute holds certificate lists, as
430 discussed in 11.2.5 of [X.509].
432 ( 2.5.4.38 NAME 'authorityRevocationList'
433 DESC 'X.509 authority revocation list'
434 EQUALITY certificateListExactMatch
435 SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
437 As required by this attribute type's syntax, values of this attribute
438 are requested and transferred using the attribute description
439 "authorityRevocationList;binary".
450 Zeilenga Standards Track [Page 8]
452 RFC 4523 LDAP X.509 Schema June 2006
455 4.6. deltaRevocationList
457 The deltaRevocationList attribute holds certificate lists, as
458 discussed in 11.2.6 of [X.509].
460 ( 2.5.4.53 NAME 'deltaRevocationList'
461 DESC 'X.509 delta revocation list'
462 EQUALITY certificateListExactMatch
463 SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
465 As required by this attribute type's syntax, values of this attribute
466 MUST be requested and transferred using the attribute description
467 "deltaRevocationList;binary".
469 4.7. supportedAlgorithms
471 The supportedAlgorithms attribute holds supported algorithms, as
472 discussed in 11.2.7 of [X.509].
474 ( 2.5.4.52 NAME 'supportedAlgorithms'
475 DESC 'X.509 supported algorithms'
476 EQUALITY algorithmIdentifierMatch
477 SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 )
479 As required by this attribute type's syntax, values of this attribute
480 MUST be requested and transferred using the attribute description
481 "supportedAlgorithms;binary".
485 This section details a set of certificate-related object classes for
490 This object class is used in augment entries for objects that may be
491 subject to certificates, as defined in clause 11.1.1 of [X.509].
493 ( 2.5.6.21 NAME 'pkiUser'
494 DESC 'X.509 PKI User'
496 MAY userCertificate )
506 Zeilenga Standards Track [Page 9]
508 RFC 4523 LDAP X.509 Schema June 2006
513 This object class is used to augment entries for objects that act as
514 certificate authorities, as defined in clause 11.1.2 of [X.509]
516 ( 2.5.6.22 NAME 'pkiCA'
517 DESC 'X.509 PKI Certificate Authority'
519 MAY ( cACertificate $ certificateRevocationList $
520 authorityRevocationList $ crossCertificatePair ) )
522 5.3. cRLDistributionPoint
524 This class is used to represent objects that act as CRL distribution
525 points, as discussed in clause 11.1.3 of [X.509].
527 ( 2.5.6.19 NAME 'cRLDistributionPoint'
528 DESC 'X.509 CRL distribution point'
531 MAY ( certificateRevocationList $
532 authorityRevocationList $ deltaRevocationList ) )
536 The deltaCRL object class is used to augment entries to hold delta
537 revocation lists, as discussed in clause 11.1.4 of [X.509].
539 ( 2.5.6.23 NAME 'deltaCRL'
540 DESC 'X.509 delta CRL'
542 MAY deltaRevocationList )
544 5.5. strongAuthenticationUser
546 This object class is used to augment entries for objects
547 participating in certificate-based authentication, as defined in
548 clause 6.15 of [X.521]. This object class is deprecated in favor of
551 ( 2.5.6.15 NAME 'strongAuthenticationUser'
552 DESC 'X.521 strong authentication user'
554 MUST userCertificate )
562 Zeilenga Standards Track [Page 10]
564 RFC 4523 LDAP X.509 Schema June 2006
567 5.6. userSecurityInformation
569 This object class is used to augment entries with needed additional
570 associated security information, as defined in clause 6.16 of
573 ( 2.5.6.18 NAME 'userSecurityInformation'
574 DESC 'X.521 user security information'
576 MAY ( supportedAlgorithms ) )
578 5.7. certificationAuthority
580 This object class is used to augment entries for objects that act as
581 certificate authorities, as defined in clause 6.17 of [X.521]. This
582 object class is deprecated in favor of pkiCA.
584 ( 2.5.6.16 NAME 'certificationAuthority'
585 DESC 'X.509 certificate authority'
587 MUST ( authorityRevocationList $
588 certificateRevocationList $ cACertificate )
589 MAY crossCertificatePair )
591 5.8. certificationAuthority-V2
593 This object class is used to augment entries for objects that act as
594 certificate authorities, as defined in clause 6.18 of [X.521]. This
595 object class is deprecated in favor of pkiCA.
597 ( 2.5.6.16.2 NAME 'certificationAuthority-V2'
598 DESC 'X.509 certificate authority, version 2'
599 SUP certificationAuthority AUXILIARY
600 MAY deltaRevocationList )
602 6. Security Considerations
604 General certificate considerations [RFC3280] apply to LDAP-aware
605 certificate applications. General LDAP security considerations
606 [RFC4510] apply as well.
608 While elements of certificate information are commonly signed, these
609 signatures only protect the integrity of the signed information. In
610 the absence of data integrity protections in LDAP (or lower layer,
611 e.g., IPsec), a server is not assured that client certificate request
612 (or other request) was unaltered in transit. Likewise, a client
613 cannot be assured that the results of the query were unaltered in
618 Zeilenga Standards Track [Page 11]
620 RFC 4523 LDAP X.509 Schema June 2006
623 transit. Hence, it is generally recommended that implementations
624 make use of authentication and data integrity services in LDAP
627 7. IANA Considerations
629 7.1. Object Identifier Registration
631 The IANA has registered an LDAP Object Identifier [RFC4520] for use
632 in this technical specification.
634 Subject: Request for LDAP OID Registration
635 Person & email address to contact for further information:
636 Kurt Zeilenga <kurt@OpenLDAP.org>
637 Specification: RFC 4523
638 Author/Change Controller: IESG
640 Identifies the LDAP X.509 Certificate schema elements
641 introduced in this document.
643 7.2. Descriptor Registration
645 The IANA has updated the LDAP
646 Descriptor registry [RFC44520] as indicated below.
648 Subject: Request for LDAP Descriptor Registration
649 Descriptor (short name): see table
650 Object Identifier: see table
651 Person & email address to contact for further information:
652 Kurt Zeilenga <kurt@OpenLDAP.org>
654 Specification: RFC 4523
655 Author/Change Controller: IESG
657 algorithmIdentifierMatch M 2.5.13.40
658 authorityRevocationList A 2.5.4.38 *
659 cACertificate A 2.5.4.37 *
660 cRLDistributionPoint O 2.5.6.19 *
661 certificateExactMatch M 2.5.13.34
662 certificateListExactMatch M 2.5.13.38
663 certificateListMatch M 2.5.13.39
664 certificateMatch M 2.5.13.35
665 certificatePairExactMatch M 2.5.13.36
666 certificatePairMatch M 2.5.13.37
667 certificateRevocationList A 2.5.4.39 *
668 certificationAuthority O 2.5.6.16 *
669 certificationAuthority-V2 O 2.5.6.16.2 *
670 crossCertificatePair A 2.5.4.40 *
674 Zeilenga Standards Track [Page 12]
676 RFC 4523 LDAP X.509 Schema June 2006
679 deltaCRL O 2.5.6.23 *
680 deltaRevocationList A 2.5.4.53 *
683 strongAuthenticationUser O 2.5.6.15 *
684 supportedAlgorithms A 2.5.4.52 *
685 userCertificate A 2.5.4.36 *
686 userSecurityInformation O 2.5.6.18 *
688 * Updates previous registration
692 This document is based on X.509, a product of the ITU-T. A number of
693 LDAP schema definitions were based on those found in RFCs 2252 and
694 2256, both products of the IETF ASID WG. The ABNF productions in
695 Appendix A were provided by Steven Legg. Additional material was
696 borrowed from prior works by David Chadwick and Steven Legg to refine
697 the LDAP X.509 schema.
701 9.1. Normative References
703 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
704 Requirement Levels", BCP 14, RFC 2119, March 1997.
706 [RFC3641] Legg, S., "Generic String Encoding Rules (GSER) for ASN.1
707 Types", RFC 3641, October 2003.
709 [RFC4510] Zeilenga, K., Ed., "Lightweight Directory Access Protocol
710 (LDAP): Technical Specification Road Map", RFC 4510, June
713 [RFC4512] Zeilenga, K., "Lightweight Directory Access Protocol
714 (LDAP): Directory Information Models", RFC 4512, June
717 [RFC4522] Legg, S., "Lightweight Directory Access Protocol (LDAP):
718 The Binary Encoding Option", RFC 4522, June 2006.
720 [X.509] International Telecommunication Union - Telecommunication
721 Standardization Sector, "The Directory: Authentication
722 Framework", X.509(2000).
730 Zeilenga Standards Track [Page 13]
732 RFC 4523 LDAP X.509 Schema June 2006
735 [X.521] International Telecommunication Union - Telecommunication
736 Standardization Sector, "The Directory: Selected Object
737 Classes", X.521(2000).
739 [X.690] International Telecommunication Union - Telecommunication
740 Standardization Sector, "Specification of ASN.1 encoding
741 rules: Basic Encoding Rules (BER), Canonical Encoding
742 Rules (CER), and Distinguished Encoding Rules (DER)",
743 X.690(2002) (also ISO/IEC 8825-1:2002).
745 9.2. Informative References
747 [RFC1777] Yeong, W., Howes, T., and S. Kille, "Lightweight Directory
748 Access Protocol", RFC 1777, March 1995.
750 [RFC2156] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay):
751 Mapping between X.400 and RFC 822/MIME", RFC 2156, January
754 [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
755 X.509 Public Key Infrastructure Certificate and
756 Certificate Revocation List (CRL) Profile", RFC 3280,
759 [RFC3494] Zeilenga, K., "Lightweight Directory Access Protocol
760 version 2 (LDAPv2) to Historic Status", RFC 3494, March
763 [RFC3642] Legg, S., "Common Elements of Generic String Encoding
764 Rules (GSER) Encodings", RFC 3642, October 2003.
766 [RFC4234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
767 Specifications: ABNF", RFC 4234, October 2005.
769 [RFC4511] Sermersheim, J., Ed., "Lightweight Directory Access
770 Protocol (LDAP): The Protocol", RFC 4511, June 2006.
772 [RFC4513] Harrison, R. Ed., "Lightweight Directory Access Protocol
773 (LDAP): Authentication Methods and Security Mechanisms",
776 [RFC4520] Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
777 Considerations for the Lightweight Directory Access
778 Protocol (LDAP)", BCP 64, RFC 4520, June 2006.
786 Zeilenga Standards Track [Page 14]
788 RFC 4523 LDAP X.509 Schema June 2006
793 This appendix is informative.
795 This appendix provides ABNF [RFC4234] grammars for GSER-based
796 [RFC3641] LDAP-specific encodings specified in this document. These
797 grammars where produced using, and relying on, Common Elements for
798 GSER Encodings [RFC3642].
800 A.1. CertificateExactAssertion
802 CertificateExactAssertion = "{" sp cea-serialNumber ","
805 cea-serialNumber = id-serialNumber msp CertificateSerialNumber
806 cea-issuer = id-issuer msp Name
809 %x73.65.72.69.61.6C.4E.75.6D.62.65.72 ; 'serialNumber'
810 id-issuer = %x69.73.73.75.65.72 ; 'issuer'
812 Name = id-rdnSequence ":" RDNSequence
813 id-rdnSequence = %x72.64.6E.53.65.71.75.65.6E.63.65 ; 'rdnSequence'
815 CertificateSerialNumber = INTEGER
817 A.2. CertificateAssertion
819 CertificateAssertion = "{" [ sp ca-serialNumber ]
821 [ sep sp ca-subjectKeyIdentifier ]
822 [ sep sp ca-authorityKeyIdentifier ]
823 [ sep sp ca-certificateValid ]
824 [ sep sp ca-privateKeyValid ]
825 [ sep sp ca-subjectPublicKeyAlgID ]
826 [ sep sp ca-keyUsage ]
827 [ sep sp ca-subjectAltName ]
829 [ sep sp ca-pathToName ]
830 [ sep sp ca-subject ]
831 [ sep sp ca-nameConstraints ] sp "}"
833 ca-serialNumber = id-serialNumber msp CertificateSerialNumber
834 ca-issuer = id-issuer msp Name
835 ca-subjectKeyIdentifier = id-subjectKeyIdentifier msp
837 ca-authorityKeyIdentifier = id-authorityKeyIdentifier msp
838 AuthorityKeyIdentifier
842 Zeilenga Standards Track [Page 15]
844 RFC 4523 LDAP X.509 Schema June 2006
847 ca-certificateValid = id-certificateValid msp Time
848 ca-privateKeyValid = id-privateKeyValid msp GeneralizedTime
849 ca-subjectPublicKeyAlgID = id-subjectPublicKeyAlgID msp
851 ca-keyUsage = id-keyUsage msp KeyUsage
852 ca-subjectAltName = id-subjectAltName msp AltNameType
853 ca-policy = id-policy msp CertPolicySet
854 ca-pathToName = id-pathToName msp Name
855 ca-subject = id-subject msp Name
856 ca-nameConstraints = id-nameConstraints msp NameConstraintsSyntax
858 id-subjectKeyIdentifier =
859 %x73.75.62.6A.65.63.74.4B.65.79.49.64.65.6E.74.69.66.69.65.72
860 ; 'subjectKeyIdentifier'
861 id-authorityKeyIdentifier =
862 %x61.75.74.68.6F.72.69.74.79.4B.65.79.49.64.65.6E.74.69.66.69.65.72
863 ; 'authorityKeyIdentifier'
864 id-certificateValid = %x63.65.72.74.69.66.69.63.61.74.65.56.61.6C.69.64
866 id-privateKeyValid = %x70.72.69.76.61.74.65.4B.65.79.56.61.6C.69.64
868 id-subjectPublicKeyAlgID =
869 %x73.75.62.6A.65.63.74.50.75.62.6C.69.63.4B.65.79.41.6C.67.49.44
870 ; 'subjectPublicKeyAlgID'
871 id-keyUsage = %x6B.65.79.55.73.61.67.65 ; 'keyUsage'
872 id-subjectAltName = %x73.75.62.6A.65.63.74.41.6C.74.4E.61.6D.65
874 id-policy = %x70.6F.6C.69.63.79 ; 'policy'
875 id-pathToName = %x70.61.74.68.54.6F.4E.61.6D.65 ; 'pathToName'
876 id-subject = %x73.75.62.6A.65.63.74 ; 'subject'
877 id-nameConstraints = %x6E.61.6D.65.43.6F.6E.73.74.72.61.69.6E.74.73
880 SubjectKeyIdentifier = KeyIdentifier
882 KeyIdentifier = OCTET-STRING
884 AuthorityKeyIdentifier = "{" [ sp aki-keyIdentifier ]
885 [ sep sp aki-authorityCertIssuer ]
886 [ sep sp aki-authorityCertSerialNumber ] sp "}"
888 aki-keyIdentifier = id-keyIdentifier msp KeyIdentifier
889 aki-authorityCertIssuer = id-authorityCertIssuer msp GeneralNames
891 GeneralNames = "{" sp GeneralName *( "," sp GeneralName ) sp "}"
892 GeneralName = gn-otherName
898 Zeilenga Standards Track [Page 16]
900 RFC 4523 LDAP X.509 Schema June 2006
906 / gn-uniformResourceIdentifier
910 gn-otherName = id-otherName ":" OtherName
911 gn-rfc822Name = id-rfc822Name ":" IA5String
912 gn-dNSName = id-dNSName ":" IA5String
913 gn-x400Address = id-x400Address ":" ORAddress
914 gn-directoryName = id-directoryName ":" Name
915 gn-ediPartyName = id-ediPartyName ":" EDIPartyName
916 gn-iPAddress = id-iPAddress ":" OCTET-STRING
917 gn-registeredID = gn-id-registeredID ":" OBJECT-IDENTIFIER
919 gn-uniformResourceIdentifier = id-uniformResourceIdentifier
922 id-otherName = %x6F.74.68.65.72.4E.61.6D.65 ; 'otherName'
923 gn-id-registeredID = %x72.65.67.69.73.74.65.72.65.64.49.44
926 OtherName = "{" sp on-type-id "," sp on-value sp "}"
927 on-type-id = id-type-id msp OBJECT-IDENTIFIER
928 on-value = id-value msp Value
929 ;; <Value> as defined in Section 3 of [RFC3641]
931 id-type-id = %x74.79.70.65.2D.69.64 ; 'type-id'
932 id-value = %x76.61.6C.75.65 ; 'value'
934 ORAddress = dquote *SafeIA5Character dquote
935 SafeIA5Character = %x01-21 / %x23-7F / ; ASCII minus dquote
936 dquote dquote ; escaped double quote
937 dquote = %x22 ; '"' (double quote)
939 ;; Note: The <ORAddress> rule encodes the x400Address component
940 ;; of a GeneralName as a character string between double quotes.
941 ;; The character string is first derived according to Section 4.1
942 ;; of [RFC2156], and then any embedded double quotes are escaped
943 ;; by being repeated. This resulting string is output between
946 EDIPartyName = "{" [ sp nameAssigner "," ] sp partyName sp "}"
947 nameAssigner = id-nameAssigner msp DirectoryString
948 partyName = id-partyName msp DirectoryString
949 id-nameAssigner = %x6E.61.6D.65.41.73.73.69.67.6E.65.72
954 Zeilenga Standards Track [Page 17]
956 RFC 4523 LDAP X.509 Schema June 2006
959 id-partyName = %x70.61.72.74.79.4E.61.6D.65 ; 'partyName'
961 aki-authorityCertSerialNumber = id-authorityCertSerialNumber
962 msp CertificateSerialNumber
964 id-keyIdentifier = %x6B.65.79.49.64.65.6E.74.69.66.69.65.72
966 id-authorityCertIssuer =
967 %x61.75.74.68.6F.72.69.74.79.43.65.72.74.49.73.73.75.65.72
968 ; 'authorityCertIssuer'
970 id-authorityCertSerialNumber = %x61.75.74.68.6F.72.69.74.79.43
971 %x65.72.74.53.65.72.69.61.6C.4E.75.6D.62.65.72
972 ; 'authorityCertSerialNumber'
974 Time = time-utcTime / time-generalizedTime
975 time-utcTime = id-utcTime ":" UTCTime
976 time-generalizedTime = id-generalizedTime ":" GeneralizedTime
977 id-utcTime = %x75.74.63.54.69.6D.65 ; 'utcTime'
978 id-generalizedTime = %x67.65.6E.65.72.61.6C.69.7A.65.64.54.69.6D.65
981 KeyUsage = BIT-STRING / key-usage-bit-list
982 key-usage-bit-list = "{" [ sp key-usage *( "," sp key-usage ) ] sp "}"
984 ;; Note: The <key-usage-bit-list> rule encodes the one bits in
985 ;; a KeyUsage value as a comma separated list of identifiers.
987 key-usage = id-digitalSignature
990 / id-dataEncipherment
997 id-digitalSignature = %x64.69.67.69.74.61.6C.53.69.67.6E.61.74
998 %x75.72.65 ; 'digitalSignature'
999 id-nonRepudiation = %x6E.6F.6E.52.65.70.75.64.69.61.74.69.6F.6E
1001 id-keyEncipherment = %x6B.65.79.45.6E.63.69.70.68.65.72.6D.65.6E.74
1003 id-dataEncipherment = %x64.61.74.61.45.6E.63.69.70.68.65.72.6D.65.6E
1004 %x74 ; "dataEncipherment'
1005 id-keyAgreement = %x6B.65.79.41.67.72.65.65.6D.65.6E.74
1010 Zeilenga Standards Track [Page 18]
1012 RFC 4523 LDAP X.509 Schema June 2006
1015 id-keyCertSign = %x6B.65.79.43.65.72.74.53.69.67.6E
1017 id-cRLSign = %x63.52.4C.53.69.67.6E ; "cRLSign"
1018 id-encipherOnly = %x65.6E.63.69.70.68.65.72.4F.6E.6C.79
1020 id-decipherOnly = %x64.65.63.69.70.68.65.72.4F.6E.6C.79
1023 AltNameType = ant-builtinNameForm / ant-otherNameForm
1025 ant-builtinNameForm = id-builtinNameForm ":" BuiltinNameForm
1026 ant-otherNameForm = id-otherNameForm ":" OBJECT-IDENTIFIER
1028 id-builtinNameForm = %x62.75.69.6C.74.69.6E.4E.61.6D.65.46.6F.72.6D
1030 id-otherNameForm = %x6F.74.68.65.72.4E.61.6D.65.46.6F.72.6D
1033 BuiltinNameForm = id-rfc822Name
1038 / id-uniformResourceIdentifier
1042 id-rfc822Name = %x72.66.63.38.32.32.4E.61.6D.65 ; 'rfc822Name'
1043 id-dNSName = %x64.4E.53.4E.61.6D.65 ; 'dNSName'
1044 id-x400Address = %x78.34.30.30.41.64.64.72.65.73.73 ; 'x400Address'
1045 id-directoryName = %x64.69.72.65.63.74.6F.72.79.4E.61.6D.65
1047 id-ediPartyName = %x65.64.69.50.61.72.74.79.4E.61.6D.65
1049 id-iPAddress = %x69.50.41.64.64.72.65.73.73 ; 'iPAddress'
1050 id-registeredId = %x72.65.67.69.73.74.65.72.65.64.49.64
1053 id-uniformResourceIdentifier = %x75.6E.69.66.6F.72.6D.52.65.73.6F.75
1054 %x72.63.65.49.64.65.6E.74.69.66.69.65.72
1055 ; 'uniformResourceIdentifier'
1057 CertPolicySet = "{" sp CertPolicyId *( "," sp CertPolicyId ) sp "}"
1058 CertPolicyId = OBJECT-IDENTIFIER
1060 NameConstraintsSyntax = "{" [ sp ncs-permittedSubtrees ]
1061 [ sep sp ncs-excludedSubtrees ] sp "}"
1066 Zeilenga Standards Track [Page 19]
1068 RFC 4523 LDAP X.509 Schema June 2006
1071 ncs-permittedSubtrees = id-permittedSubtrees msp GeneralSubtrees
1072 ncs-excludedSubtrees = id-excludedSubtrees msp GeneralSubtrees
1074 id-permittedSubtrees =
1075 %x70.65.72.6D.69.74.74.65.64.53.75.62.74.72.65.65.73
1076 ; 'permittedSubtrees'
1077 id-excludedSubtrees =
1078 %x65.78.63.6C.75.64.65.64.53.75.62.74.72.65.65.73
1079 ; 'excludedSubtrees'
1081 GeneralSubtrees = "{" sp GeneralSubtree
1082 *( "," sp GeneralSubtree ) sp "}"
1083 GeneralSubtree = "{" sp gs-base
1084 [ "," sp gs-minimum ]
1085 [ "," sp gs-maximum ] sp "}"
1087 gs-base = id-base msp GeneralName
1088 gs-minimum = id-minimum msp BaseDistance
1089 gs-maximum = id-maximum msp BaseDistance
1091 id-base = %x62.61.73.65 ; 'base'
1092 id-minimum = %x6D.69.6E.69.6D.75.6D ; 'minimum'
1093 id-maximum = %x6D.61.78.69.6D.75.6D ; 'maximum'
1095 BaseDistance = INTEGER-0-MAX
1097 A.3. CertificatePairExactAssertion
1099 CertificatePairExactAssertion = "{" [ sp cpea-issuedTo ]
1100 [sep sp cpea-issuedBy ] sp "}"
1101 ;; At least one of <cpea-issuedTo> or <cpea-issuedBy> MUST be present.
1103 cpea-issuedTo = id-issuedToThisCAAssertion msp
1104 CertificateExactAssertion
1105 cpea-issuedBy = id-issuedByThisCAAssertion msp
1106 CertificateExactAssertion
1108 id-issuedToThisCAAssertion = %x69.73.73.75.65.64.54.6F.54.68.69.73
1109 %x43.41.41.73.73.65.72.74.69.6F.6E ; 'issuedToThisCAAssertion'
1110 id-issuedByThisCAAssertion = %x69.73.73.75.65.64.42.79.54.68.69.73
1111 %x43.41.41.73.73.65.72.74.69.6F.6E ; 'issuedByThisCAAssertion'
1122 Zeilenga Standards Track [Page 20]
1124 RFC 4523 LDAP X.509 Schema June 2006
1127 A.4. CertificatePairAssertion
1129 CertificatePairAssertion = "{" [ sp cpa-issuedTo ]
1130 [sep sp cpa-issuedBy ] sp "}"
1131 ;; At least one of <cpa-issuedTo> and <cpa-issuedBy> MUST be present.
1133 cpa-issuedTo = id-issuedToThisCAAssertion msp CertificateAssertion
1134 cpa-issuedBy = id-issuedByThisCAAssertion msp CertificateAssertion
1136 A.5. CertificateListExactAssertion
1138 CertificateListExactAssertion = "{" sp clea-issuer ","
1140 [ "," sp clea-distributionPoint ] sp "}"
1142 clea-issuer = id-issuer msp Name
1143 clea-thisUpdate = id-thisUpdate msp Time
1144 clea-distributionPoint = id-distributionPoint msp
1145 DistributionPointName
1147 id-thisUpdate = %x74.68.69.73.55.70.64.61.74.65 ; 'thisUpdate'
1148 id-distributionPoint =
1149 %x64.69.73.74.72.69.62.75.74.69.6F.6E.50.6F.69.6E.74
1150 ; 'distributionPoint'
1152 DistributionPointName = dpn-fullName / dpn-nameRelativeToCRLIssuer
1154 dpn-fullName = id-fullName ":" GeneralNames
1155 dpn-nameRelativeToCRLIssuer = id-nameRelativeToCRLIssuer ":"
1156 RelativeDistinguishedName
1158 id-fullName = %x66.75.6C.6C.4E.61.6D.65 ; 'fullName'
1159 id-nameRelativeToCRLIssuer = %x6E.61.6D.65.52.65.6C.61.74.69.76.65
1160 %x54.6F.43.52.4C.49.73.73.75.65.72 ; 'nameRelativeToCRLIssuer'
1162 A.6. CertificateListAssertion
1164 CertificateListAssertion = "{" [ sp cla-issuer ]
1165 [ sep sp cla-minCRLNumber ]
1166 [ sep sp cla-maxCRLNumber ]
1167 [ sep sp cla-reasonFlags ]
1168 [ sep sp cla-dateAndTime ]
1169 [ sep sp cla-distributionPoint ]
1170 [ sep sp cla-authorityKeyIdentifier ] sp "}"
1172 cla-issuer = id-issuer msp Name
1173 cla-minCRLNumber = id-minCRLNumber msp CRLNumber
1174 cla-maxCRLNumber = id-maxCRLNumber msp CRLNumber
1178 Zeilenga Standards Track [Page 21]
1180 RFC 4523 LDAP X.509 Schema June 2006
1183 cla-reasonFlags = id-reasonFlags msp ReasonFlags
1184 cla-dateAndTime = id-dateAndTime msp Time
1186 cla-distributionPoint = id-distributionPoint msp
1187 DistributionPointName
1189 cla-authorityKeyIdentifier = id-authorityKeyIdentifier msp
1190 AuthorityKeyIdentifier
1192 id-minCRLNumber = %x6D.69.6E.43.52.4C.4E.75.6D.62.65.72
1194 id-maxCRLNumber = %x6D.61.78.43.52.4C.4E.75.6D.62.65.72
1196 id-reasonFlags = %x72.65.61.73.6F.6E.46.6C.61.67.73 ; 'reasonFlags'
1197 id-dateAndTime = %x64.61.74.65.41.6E.64.54.69.6D.65 ; 'dateAndTime'
1199 CRLNumber = INTEGER-0-MAX
1201 ReasonFlags = BIT-STRING
1202 / "{" [ sp reason-flag *( "," sp reason-flag ) ] sp "}"
1204 reason-flag = id-unused
1207 / id-affiliationChanged
1209 / id-cessationOfOperation
1210 / id-certificateHold
1211 / id-privilegeWithdrawn
1214 id-unused = %x75.6E.75.73.65.64 ; 'unused'
1215 id-keyCompromise = %x6B.65.79.43.6F.6D.70.72.6F.6D.69.73.65
1217 id-cACompromise = %x63.41.43.6F.6D.70.72.6F.6D.69.73.65
1219 id-affiliationChanged =
1220 %x61.66.66.69.6C.69.61.74.69.6F.6E.43.68.61.6E.67.65.64
1221 ; 'affiliationChanged'
1222 id-superseded = %x73.75.70.65.72.73.65.64.65.64 ; 'superseded'
1223 id-cessationOfOperation =
1224 %x63.65.73.73.61.74.69.6F.6E.4F.66.4F.70.65.72.61.74.69.6F.6E
1225 ; 'cessationOfOperation'
1226 id-certificateHold = %x63.65.72.74.69.66.69.63.61.74.65.48.6F.6C.64
1228 id-privilegeWithdrawn =
1229 %x70.72.69.76.69.6C.65.67.65.57.69.74.68.64.72.61.77.6E
1230 ; 'privilegeWithdrawn'
1234 Zeilenga Standards Track [Page 22]
1236 RFC 4523 LDAP X.509 Schema June 2006
1239 id-aACompromise = %x61.41.43.6F.6D.70.72.6F.6D.69.73.65
1242 A.7. AlgorithmIdentifier
1244 AlgorithmIdentifier = "{" sp ai-algorithm
1245 [ "," sp ai-parameters ] sp "}"
1247 ai-algorithm = id-algorithm msp OBJECT-IDENTIFIER
1248 ai-parameters = id-parameters msp Value
1249 id-algorithm = %x61.6C.67.6F.72.69.74.68.6D ; 'algorithm'
1250 id-parameters = %x70.61.72.61.6D.65.74.65.72.73 ; 'parameters'
1257 EMail: Kurt@OpenLDAP.org
1290 Zeilenga Standards Track [Page 23]
1292 RFC 4523 LDAP X.509 Schema June 2006
1295 Full Copyright Statement
1297 Copyright (C) The Internet Society (2006).
1299 This document is subject to the rights, licenses and restrictions
1300 contained in BCP 78, and except as set forth therein, the authors
1301 retain all their rights.
1303 This document and the information contained herein are provided on an
1304 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1305 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1306 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1307 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1308 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1309 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1311 Intellectual Property
1313 The IETF takes no position regarding the validity or scope of any
1314 Intellectual Property Rights or other rights that might be claimed to
1315 pertain to the implementation or use of the technology described in
1316 this document or the extent to which any license under such rights
1317 might or might not be available; nor does it represent that it has
1318 made any independent effort to identify any such rights. Information
1319 on the procedures with respect to rights in RFC documents can be
1320 found in BCP 78 and BCP 79.
1322 Copies of IPR disclosures made to the IETF Secretariat and any
1323 assurances of licenses to be made available, or the result of an
1324 attempt made to obtain a general license or permission for the use of
1325 such proprietary rights by implementers or users of this
1326 specification can be obtained from the IETF on-line IPR repository at
1327 http://www.ietf.org/ipr.
1329 The IETF invites any interested party to bring to its attention any
1330 copyrights, patents or patent applications, or other proprietary
1331 rights that may cover technology that may be required to implement
1332 this standard. Please address the information to the IETF at
1337 Funding for the RFC Editor function is provided by the IETF
1338 Administrative Support Activity (IASA).
1346 Zeilenga Standards Track [Page 24]