Home | History | Annotate | Line # | Download | only in rfc
      1 
      2 
      3 
      4 
      5 
      6 
      7 Network Working Group                                        K. Zeilenga
      8 Request for Comments: 4523                           OpenLDAP Foundation
      9 Obsoletes: 2252, 2256, 2587                                    June 2006
     10 Category: Standards Track
     11 
     12 
     13              Lightweight Directory Access Protocol (LDAP)
     14                Schema Definitions for X.509 Certificates
     15 
     16 Status of This Memo
     17 
     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.
     23 
     24 Copyright Notice
     25 
     26    Copyright (C) The Internet Society (2006).
     27 
     28    Abstract
     29 
     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.
     35 
     36 1.  Introduction
     37 
     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
     44    and attribute values.
     45 
     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.
     49 
     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:
     53 
     54       -  addition of pkiUser, pkiCA, and deltaCRL classes;
     55 
     56 
     57 
     58 Zeilenga                    Standards Track                     [Page 1]
     59 
     61 RFC 4523                   LDAP X.509 Schema                   June 2006
     62 
     63 
     64       -  update of attribute types to include equality matching rules in
     65          accordance with their X.500 specifications;
     66 
     67       -  addition of certificate, certificate pair, certificate list,
     68          and algorithm identifier matching rules; and
     69 
     70       -  addition of LDAP syntax for assertion syntaxes for these
     71          matching rules.
     72 
     73    This document obsoletes RFC 2587.  The X.509 schema descriptions for
     74    LDAPv2 [RFC1777] are Historic, as is LDAPv2 [RFC3494].
     75 
     76    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
     77    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
     78    document are to be interpreted as described in BCP 14 [RFC2119].
     79 
     80    Schema definitions are provided using LDAP description formats
     81    [RFC4512].  Definitions provided here are formatted (line wrapped)
     82    for readability.
     83 
     84 2.  Syntaxes
     85 
     86    This section describes various syntaxes used in LDAP to transfer
     87    certificates and related data types.
     88 
     89 2.1.  Certificate
     90 
     91       ( 1.3.6.1.4.1.1466.115.121.1.8 DESC 'X.509 Certificate' )
     92 
     93    A value of this syntax is an X.509 Certificate [X.509, clause 7].
     94 
     95    Due to changes made to the definition of a Certificate through time,
     96    no LDAP-specific encoding is defined for this syntax.  Values of this
     97    syntax SHOULD be encoded using Distinguished Encoding Rules (DER)
     98    [X.690] and MUST only be transferred using the ;binary transfer
     99    option [RFC4522]; that is, by requesting and returning values using
    100    attribute descriptions such as "userCertificate;binary".
    101 
    102    As values of this syntax contain digitally signed data, values of
    103    this syntax and the form of each value MUST be preserved as
    104    presented.
    105 
    106 2.2.  CertificateList
    107 
    108       ( 1.3.6.1.4.1.1466.115.121.1.9 DESC 'X.509 Certificate List' )
    109 
    110    A value of this syntax is an X.509 CertificateList [X.509, clause
    111    7.3].
    112 
    113 
    114 
    115 Zeilenga                    Standards Track                     [Page 2]
    116 
    118 RFC 4523                   LDAP X.509 Schema                   June 2006
    119 
    120 
    121    Due to changes made to the definition of a CertificateList through
    122    time, no LDAP-specific encoding is defined for this syntax.  Values
    123    of this syntax SHOULD be encoded using DER [X.690] and MUST only be
    124    transferred using the ;binary transfer option [RFC4522]; that is, by
    125    requesting and returning values using attribute descriptions such as
    126    "certificateRevocationList;binary".
    127 
    128    As values of this syntax contain digitally signed data, values of
    129    this syntax and the form of each value MUST be preserved as
    130    presented.
    131 
    132 2.3.  CertificatePair
    133 
    134       ( 1.3.6.1.4.1.1466.115.121.1.10 DESC 'X.509 Certificate Pair' )
    135 
    136    A value of this syntax is an X.509 CertificatePair [X.509, clause
    137    11.2.3].
    138 
    139    Due to changes made to the definition of an X.509 CertificatePair
    140    through time, no LDAP-specific encoding is defined for this syntax.
    141    Values of this syntax SHOULD be encoded using DER [X.690] and MUST
    142    only be transferred using the ;binary transfer option [RFC4522]; that
    143    is, by requesting and returning values using attribute descriptions
    144    such as "crossCertificatePair;binary".
    145 
    146    As values of this syntax contain digitally signed data, values of
    147    this syntax and the form of each value MUST be preserved as
    148    presented.
    149 
    150 2.4.  SupportedAlgorithm
    151 
    152       ( 1.3.6.1.4.1.1466.115.121.1.49
    153            DESC 'X.509 Supported Algorithm' )
    154 
    155    A value of this syntax is an X.509 SupportedAlgorithm [X.509, clause
    156    11.2.7].
    157 
    158    Due to changes made to the definition of an X.509 SupportedAlgorithm
    159    through time, no LDAP-specific encoding is defined for this syntax.
    160    Values of this syntax SHOULD be encoded using DER [X.690] and MUST
    161    only be transferred using the ;binary transfer option [RFC4522]; that
    162    is, by requesting and returning values using attribute descriptions
    163    such as "supportedAlgorithms;binary".
    164 
    165    As values of this syntax contain digitally signed data, values of
    166    this syntax and the form of the value MUST be preserved as presented.
    167 
    168 
    169 
    170 
    171 
    172 Zeilenga                    Standards Track                     [Page 3]
    173 
    175 RFC 4523                   LDAP X.509 Schema                   June 2006
    176 
    177 
    178 2.5.  CertificateExactAssertion
    179 
    180       ( 1.3.6.1.1.15.1 DESC 'X.509 Certificate Exact Assertion' )
    181 
    182    A value of this syntax is an X.509 CertificateExactAssertion [X.509,
    183    clause 11.3.1].  Values of this syntax MUST be encoded using the
    184    Generic String Encoding Rules (GSER) [RFC3641].  Appendix A.1
    185    provides an equivalent Augmented Backus-Naur Form (ABNF) [RFC4234]
    186    grammar for this syntax.
    187 
    188 2.6.  CertificateAssertion
    189 
    190       ( 1.3.6.1.1.15.2 DESC 'X.509 Certificate Assertion' )
    191 
    192    A value of this syntax is an X.509 CertificateAssertion [X.509,
    193    clause 11.3.2].  Values of this syntax MUST be encoded using GSER
    194    [RFC3641].  Appendix A.2 provides an equivalent ABNF [RFC4234]
    195    grammar for this syntax.
    196 
    197 2.7.  CertificatePairExactAssertion
    198 
    199       ( 1.3.6.1.1.15.3
    200            DESC 'X.509 Certificate Pair Exact Assertion' )
    201 
    202    A value of this syntax is an X.509 CertificatePairExactAssertion
    203    [X.509, clause 11.3.3].  Values of this syntax MUST be encoded using
    204    GSER [RFC3641].  Appendix A.3 provides an equivalent ABNF [RFC4234]
    205    grammar for this syntax.
    206 
    207 2.8.  CertificatePairAssertion
    208 
    209       ( 1.3.6.1.1.15.4 DESC 'X.509 Certificate Pair Assertion' )
    210 
    211    A value of this syntax is an X.509 CertificatePairAssertion [X.509,
    212    clause 11.3.4].  Values of this syntax MUST be encoded using GSER
    213    [RFC3641].  Appendix A.4 provides an equivalent ABNF [RFC4234]
    214    grammar for this syntax.
    215 
    216 2.9.  CertificateListExactAssertion
    217 
    218       ( 1.3.6.1.1.15.5
    219            DESC 'X.509 Certificate List Exact Assertion' )
    220 
    221    A value of this syntax is an X.509 CertificateListExactAssertion
    222    [X.509, clause 11.3.5].  Values of this syntax MUST be encoded using
    223    GSER [RFC3641].  Appendix A.5 provides an equivalent ABNF grammar for
    224    this syntax.
    225 
    226 
    227 
    228 
    229 Zeilenga                    Standards Track                     [Page 4]
    230 
    232 RFC 4523                   LDAP X.509 Schema                   June 2006
    233 
    234 
    235 2.10.  CertificateListAssertion
    236 
    237       ( 1.3.6.1.1.15.6 DESC 'X.509 Certificate List Assertion' )
    238 
    239    A value of this syntax is an X.509 CertificateListAssertion [X.509,
    240    clause 11.3.6].  Values of this syntax MUST be encoded using GSER
    241    [RFC3641].  Appendix A.6 provides an equivalent ABNF [RFC4234]
    242    grammar for this syntax.
    243 
    244 2.11.  AlgorithmIdentifier
    245 
    246       ( 1.3.6.1.1.15.7 DESC 'X.509 Algorithm Identifier' )
    247 
    248    A value of this syntax is an X.509 AlgorithmIdentifier [X.509, Clause
    249    7].  Values of this syntax MUST be encoded using GSER [RFC3641].
    250 
    251    Appendix A.7 provides an equivalent ABNF [RFC4234] grammar for this
    252    syntax.
    253 
    254 3.  Matching Rules
    255 
    256    This section introduces a set of certificate and related matching
    257    rules for use in LDAP.  These rules are intended to act in accordance
    258    with their X.500 counterparts.
    259 
    260 3.1.  certificateExactMatch
    261 
    262    The certificateExactMatch matching rule compares the presented
    263    certificate exact assertion value with an attribute value of the
    264    certificate syntax as described in clause 11.3.1 of [X.509].
    265 
    266       ( 2.5.13.34 NAME 'certificateExactMatch'
    267            DESC 'X.509 Certificate Exact Match'
    268            SYNTAX 1.3.6.1.1.15.1 )
    269 
    270 3.2.  certificateMatch
    271 
    272    The certificateMatch matching rule compares the presented certificate
    273    assertion value with an attribute value of the certificate syntax as
    274    described in clause 11.3.2 of [X.509].
    275 
    276       ( 2.5.13.35 NAME 'certificateMatch'
    277            DESC 'X.509 Certificate Match'
    278            SYNTAX 1.3.6.1.1.15.2 )
    279 
    280 
    281 
    282 
    283 
    284 
    285 
    286 Zeilenga                    Standards Track                     [Page 5]
    287 
    289 RFC 4523                   LDAP X.509 Schema                   June 2006
    290 
    291 
    292 3.3.  certificatePairExactMatch
    293 
    294    The certificatePairExactMatch matching rule compares the presented
    295    certificate pair exact assertion value with an attribute value of the
    296    certificate pair syntax as described in clause 11.3.3 of [X.509].
    297 
    298       ( 2.5.13.36 NAME 'certificatePairExactMatch'
    299            DESC 'X.509 Certificate Pair Exact Match'
    300            SYNTAX 1.3.6.1.1.15.3 )
    301 
    302 3.4.  certificatePairMatch
    303 
    304    The certificatePairMatch matching rule compares the presented
    305    certificate pair assertion value with an attribute value of the
    306    certificate pair syntax as described in clause 11.3.4 of [X.509].
    307 
    308       ( 2.5.13.37 NAME 'certificatePairMatch'
    309            DESC 'X.509 Certificate Pair Match'
    310            SYNTAX 1.3.6.1.1.15.4 )
    311 
    312 3.5.  certificateListExactMatch
    313 
    314    The certificateListExactMatch matching rule compares the presented
    315    certificate list exact assertion value with an attribute value of the
    316    certificate pair syntax as described in clause 11.3.5 of [X.509].
    317 
    318       ( 2.5.13.38 NAME 'certificateListExactMatch'
    319            DESC 'X.509 Certificate List Exact Match'
    320            SYNTAX 1.3.6.1.1.15.5 )
    321 
    322 3.6.  certificateListMatch
    323 
    324    The certificateListMatch matching rule compares the presented
    325    certificate list assertion value with an attribute value of the
    326    certificate pair syntax as described in clause 11.3.6 of [X.509].
    327 
    328       ( 2.5.13.39 NAME 'certificateListMatch'
    329            DESC 'X.509 Certificate List Match'
    330            SYNTAX 1.3.6.1.1.15.6 )
    331 
    332 
    333 
    334 
    335 
    336 
    337 
    338 
    339 
    340 
    341 
    342 
    343 Zeilenga                    Standards Track                     [Page 6]
    344 
    346 RFC 4523                   LDAP X.509 Schema                   June 2006
    347 
    348 
    349 3.7.  algorithmIdentifierMatch
    350 
    351    The algorithmIdentifierMatch mating rule compares a presented
    352    algorithm identifier with an attribute value of the supported
    353    algorithm as described in clause 11.3.7 of [X.509].
    354 
    355       ( 2.5.13.40 NAME 'algorithmIdentifier'
    356            DESC 'X.509 Algorithm Identifier Match'
    357            SYNTAX 1.3.6.1.1.15.7 )
    358 
    359 4.  Attribute Types
    360 
    361    This section details a set of certificate and related attribute types
    362    for use in LDAP.
    363 
    364 4.1.  userCertificate
    365 
    366    The userCertificate attribute holds the X.509 certificates issued to
    367    the user by one or more certificate authorities, as discussed in
    368    clause 11.2.1 of [X.509].
    369 
    370       ( 2.5.4.36 NAME 'userCertificate'
    371            DESC 'X.509 user certificate'
    372            EQUALITY certificateExactMatch
    373            SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
    374 
    375    As required by this attribute type's syntax, values of this attribute
    376    are requested and transferred using the attribute description
    377    "userCertificate;binary".
    378 
    379 4.2.  cACertificate
    380 
    381    The cACertificate attribute holds the X.509 certificates issued to
    382    the certificate authority (CA), as discussed in clause 11.2.2 of
    383    [X.509].
    384 
    385       ( 2.5.4.37 NAME 'cACertificate'
    386            DESC 'X.509 CA certificate'
    387            EQUALITY certificateExactMatch
    388            SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )
    389 
    390    As required by this attribute type's syntax, values of this attribute
    391    are requested and transferred using the attribute description
    392    "cACertificate;binary".
    393 
    394 
    395 
    396 
    397 
    398 
    399 
    400 Zeilenga                    Standards Track                     [Page 7]
    401 
    403 RFC 4523                   LDAP X.509 Schema                   June 2006
    404 
    405 
    406 4.3.  crossCertificatePair
    407 
    408    The crossCertificatePair attribute holds an X.509 certificate pair,
    409    as discussed in clause 11.2.3 of [X.509].
    410 
    411       ( 2.5.4.40 NAME 'crossCertificatePair'
    412            DESC 'X.509 cross certificate pair'
    413            EQUALITY certificatePairExactMatch
    414            SYNTAX 1.3.6.1.4.1.1466.115.121.1.10 )
    415 
    416    As required by this attribute type's syntax, values of this attribute
    417    are requested and transferred using the attribute description
    418    "crossCertificatePair;binary".
    419 
    420 4.4.  certificateRevocationList
    421 
    422    The certificateRevocationList attribute holds certificate lists, as
    423    discussed in 11.2.4 of [X.509].
    424 
    425       ( 2.5.4.39 NAME 'certificateRevocationList'
    426            DESC 'X.509 certificate revocation list'
    427            EQUALITY certificateListExactMatch
    428            SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
    429 
    430    As required by this attribute type's syntax, values of this attribute
    431    are requested and transferred using the attribute description
    432    "certificateRevocationList;binary".
    433 
    434 4.5.  authorityRevocationList
    435 
    436    The authorityRevocationList attribute holds certificate lists, as
    437    discussed in 11.2.5 of [X.509].
    438 
    439       ( 2.5.4.38 NAME 'authorityRevocationList'
    440            DESC 'X.509 authority revocation list'
    441            EQUALITY certificateListExactMatch
    442            SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
    443 
    444    As required by this attribute type's syntax, values of this attribute
    445    are requested and transferred using the attribute description
    446    "authorityRevocationList;binary".
    447 
    448 
    449 
    450 
    451 
    452 
    453 
    454 
    455 
    456 
    457 Zeilenga                    Standards Track                     [Page 8]
    458 
    460 RFC 4523                   LDAP X.509 Schema                   June 2006
    461 
    462 
    463 4.6.  deltaRevocationList
    464 
    465    The deltaRevocationList attribute holds certificate lists, as
    466    discussed in 11.2.6 of [X.509].
    467 
    468       ( 2.5.4.53 NAME 'deltaRevocationList'
    469            DESC 'X.509 delta revocation list'
    470            EQUALITY certificateListExactMatch
    471            SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 )
    472 
    473    As required by this attribute type's syntax, values of this attribute
    474    MUST be requested and transferred using the attribute description
    475    "deltaRevocationList;binary".
    476 
    477 4.7.  supportedAlgorithms
    478 
    479    The supportedAlgorithms attribute holds supported algorithms, as
    480    discussed in 11.2.7 of [X.509].
    481 
    482       ( 2.5.4.52 NAME 'supportedAlgorithms'
    483            DESC 'X.509 supported algorithms'
    484            EQUALITY algorithmIdentifierMatch
    485            SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 )
    486 
    487    As required by this attribute type's syntax, values of this attribute
    488    MUST be requested and transferred using the attribute description
    489    "supportedAlgorithms;binary".
    490 
    491 5.  Object Classes
    492 
    493    This section details a set of certificate-related object classes for
    494    use in LDAP.
    495 
    496 5.1.  pkiUser
    497 
    498    This object class is used in augment entries for objects that may be
    499    subject to certificates, as defined in clause 11.1.1 of [X.509].
    500 
    501       ( 2.5.6.21 NAME 'pkiUser'
    502            DESC 'X.509 PKI User'
    503            SUP top AUXILIARY
    504            MAY userCertificate )
    505 
    506 
    507 
    508 
    509 
    510 
    511 
    512 
    513 
    514 Zeilenga                    Standards Track                     [Page 9]
    515 
    517 RFC 4523                   LDAP X.509 Schema                   June 2006
    518 
    519 
    520 5.2.  pkiCA
    521 
    522    This object class is used to augment entries for objects that act as
    523    certificate authorities, as defined in clause 11.1.2 of [X.509]
    524 
    525       ( 2.5.6.22 NAME 'pkiCA'
    526            DESC 'X.509 PKI Certificate Authority'
    527            SUP top AUXILIARY
    528            MAY ( cACertificate $ certificateRevocationList $
    529                 authorityRevocationList $ crossCertificatePair ) )
    530 
    531 5.3.  cRLDistributionPoint
    532 
    533    This class is used to represent objects that act as CRL distribution
    534    points, as discussed in clause 11.1.3 of [X.509].
    535 
    536       ( 2.5.6.19 NAME 'cRLDistributionPoint'
    537            DESC 'X.509 CRL distribution point'
    538            SUP top STRUCTURAL
    539            MUST cn
    540            MAY ( certificateRevocationList $
    541                 authorityRevocationList $ deltaRevocationList ) )
    542 
    543 5.4.  deltaCRL
    544 
    545    The deltaCRL object class is used to augment entries to hold delta
    546    revocation lists, as discussed in clause 11.1.4 of [X.509].
    547 
    548       ( 2.5.6.23 NAME 'deltaCRL'
    549            DESC 'X.509 delta CRL'
    550            SUP top AUXILIARY
    551            MAY deltaRevocationList )
    552 
    553 5.5.  strongAuthenticationUser
    554 
    555    This object class is used to augment entries for objects
    556    participating in certificate-based authentication, as defined in
    557    clause 6.15 of [X.521].  This object class is deprecated in favor of
    558    pkiUser.
    559 
    560       ( 2.5.6.15 NAME 'strongAuthenticationUser'
    561            DESC 'X.521 strong authentication user'
    562            SUP top AUXILIARY
    563            MUST userCertificate )
    564 
    565 
    566 
    567 
    568 
    569 
    570 
    571 Zeilenga                    Standards Track                    [Page 10]
    572 
    574 RFC 4523                   LDAP X.509 Schema                   June 2006
    575 
    576 
    577 5.6.  userSecurityInformation
    578 
    579    This object class is used to augment entries with needed additional
    580    associated security information, as defined in clause 6.16 of
    581    [X.521].
    582 
    583       ( 2.5.6.18 NAME 'userSecurityInformation'
    584            DESC 'X.521 user security information'
    585            SUP top AUXILIARY
    586            MAY ( supportedAlgorithms ) )
    587 
    588 5.7.  certificationAuthority
    589 
    590    This object class is used to augment entries for objects that act as
    591    certificate authorities, as defined in clause 6.17 of [X.521].  This
    592    object class is deprecated in favor of pkiCA.
    593 
    594       ( 2.5.6.16 NAME 'certificationAuthority'
    595            DESC 'X.509 certificate authority'
    596            SUP top AUXILIARY
    597            MUST ( authorityRevocationList $
    598                 certificateRevocationList $ cACertificate )
    599            MAY crossCertificatePair )
    600 
    601 5.8.  certificationAuthority-V2
    602 
    603    This object class is used to augment entries for objects that act as
    604    certificate authorities, as defined in clause 6.18 of [X.521].  This
    605    object class is deprecated in favor of pkiCA.
    606 
    607       ( 2.5.6.16.2 NAME 'certificationAuthority-V2'
    608            DESC 'X.509 certificate authority, version 2'
    609            SUP certificationAuthority AUXILIARY
    610            MAY deltaRevocationList )
    611 
    612 6.  Security Considerations
    613 
    614    General certificate considerations [RFC3280] apply to LDAP-aware
    615    certificate applications.  General LDAP security considerations
    616    [RFC4510] apply as well.
    617 
    618    While elements of certificate information are commonly signed, these
    619    signatures only protect the integrity of the signed information.  In
    620    the absence of data integrity protections in LDAP (or lower layer,
    621    e.g., IPsec), a server is not assured that client certificate request
    622    (or other request) was unaltered in transit.  Likewise, a client
    623    cannot be assured that the results of the query were unaltered in
    624 
    625 
    626 
    627 
    628 Zeilenga                    Standards Track                    [Page 11]
    629 
    631 RFC 4523                   LDAP X.509 Schema                   June 2006
    632 
    633 
    634    transit.  Hence, it is generally recommended that implementations
    635    make use of authentication and data integrity services in LDAP
    636    [RFC4513][RFC4511].
    637 
    638 7.  IANA Considerations
    639 
    640 7.1.  Object Identifier Registration
    641 
    642    The IANA has registered an LDAP Object Identifier [RFC4520] for use
    643    in this technical specification.
    644 
    645       Subject: Request for LDAP OID Registration
    646       Person & email address to contact for further information:
    647           Kurt Zeilenga <kurt (a] OpenLDAP.org>
    648       Specification: RFC 4523
    649       Author/Change Controller: IESG
    650       Comments:
    651           Identifies the LDAP X.509 Certificate schema elements
    652            introduced in this document.
    653 
    654 7.2.  Descriptor Registration
    655 
    656    The IANA has updated the LDAP
    657    Descriptor registry [RFC44520] as indicated below.
    658 
    659       Subject: Request for LDAP Descriptor Registration
    660       Descriptor (short name): see table
    661       Object Identifier: see table
    662       Person & email address to contact for further information:
    663           Kurt Zeilenga <kurt (a] OpenLDAP.org>
    664       Usage: see table
    665       Specification: RFC 4523
    666       Author/Change Controller: IESG
    667 
    668       algorithmIdentifierMatch     M 2.5.13.40
    669       authorityRevocationList      A 2.5.4.38 *
    670       cACertificate                A 2.5.4.37 *
    671       cRLDistributionPoint         O 2.5.6.19 *
    672       certificateExactMatch        M 2.5.13.34
    673       certificateListExactMatch    M 2.5.13.38
    674       certificateListMatch         M 2.5.13.39
    675       certificateMatch             M 2.5.13.35
    676       certificatePairExactMatch    M 2.5.13.36
    677       certificatePairMatch         M 2.5.13.37
    678       certificateRevocationList    A 2.5.4.39 *
    679       certificationAuthority       O 2.5.6.16 *
    680       certificationAuthority-V2    O 2.5.6.16.2 *
    681       crossCertificatePair         A 2.5.4.40 *
    682 
    683 
    684 
    685 Zeilenga                    Standards Track                    [Page 12]
    686 
    688 RFC 4523                   LDAP X.509 Schema                   June 2006
    689 
    690 
    691       deltaCRL                     O 2.5.6.23 *
    692       deltaRevocationList          A 2.5.4.53 *
    693       pkiCA                        O 2.5.6.22 *
    694       pkiUser                      O 2.5.6.21 *
    695       strongAuthenticationUser     O 2.5.6.15 *
    696       supportedAlgorithms          A 2.5.4.52 *
    697       userCertificate              A 2.5.4.36 *
    698       userSecurityInformation      O 2.5.6.18 *
    699 
    700       * Updates previous registration
    701 
    702 8.  Acknowledgements
    703 
    704    This document is based on X.509, a product of the ITU-T.  A number of
    705    LDAP schema definitions were based on those found in RFCs 2252 and
    706    2256, both products of the IETF ASID WG.  The ABNF productions in
    707    Appendix A were provided by Steven Legg.  Additional material was
    708    borrowed from prior works by David Chadwick and Steven Legg to refine
    709    the LDAP X.509 schema.
    710 
    711 9.  References
    712 
    713 9.1.  Normative References
    714 
    715    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
    716               Requirement Levels", BCP 14, RFC 2119, March 1997.
    717 
    718    [RFC3641]  Legg, S., "Generic String Encoding Rules (GSER) for ASN.1
    719               Types", RFC 3641, October 2003.
    720 
    721    [RFC4510]  Zeilenga, K., Ed., "Lightweight Directory Access Protocol
    722               (LDAP): Technical Specification Road Map", RFC 4510, June
    723               2006.
    724 
    725    [RFC4512]  Zeilenga, K., "Lightweight Directory Access Protocol
    726               (LDAP): Directory Information Models", RFC 4512, June
    727               2006.
    728 
    729    [RFC4522]  Legg, S., "Lightweight Directory Access Protocol (LDAP):
    730               The Binary Encoding Option", RFC 4522, June 2006.
    731 
    732    [X.509]    International Telecommunication Union - Telecommunication
    733               Standardization Sector, "The Directory: Authentication
    734               Framework", X.509(2000).
    735 
    736 
    737 
    738 
    739 
    740 
    741 
    742 Zeilenga                    Standards Track                    [Page 13]
    743 
    745 RFC 4523                   LDAP X.509 Schema                   June 2006
    746 
    747 
    748    [X.521]    International Telecommunication Union - Telecommunication
    749               Standardization Sector, "The Directory: Selected Object
    750               Classes", X.521(2000).
    751 
    752    [X.690]    International Telecommunication Union - Telecommunication
    753               Standardization Sector, "Specification of ASN.1 encoding
    754               rules: Basic Encoding Rules (BER), Canonical Encoding
    755               Rules (CER), and Distinguished Encoding Rules (DER)",
    756               X.690(2002) (also ISO/IEC 8825-1:2002).
    757 
    758 9.2.  Informative References
    759 
    760    [RFC1777]  Yeong, W., Howes, T., and S. Kille, "Lightweight Directory
    761               Access Protocol", RFC 1777, March 1995.
    762 
    763    [RFC2156]  Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay):
    764               Mapping between X.400 and RFC 822/MIME", RFC 2156, January
    765               1998.
    766 
    767    [RFC3280]  Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
    768               X.509 Public Key Infrastructure Certificate and
    769               Certificate Revocation List (CRL) Profile", RFC 3280,
    770               April 2002.
    771 
    772    [RFC3494]  Zeilenga, K., "Lightweight Directory Access Protocol
    773               version 2 (LDAPv2) to Historic Status", RFC 3494, March
    774               2003.
    775 
    776    [RFC3642]  Legg, S., "Common Elements of Generic String Encoding
    777               Rules (GSER) Encodings", RFC 3642, October 2003.
    778 
    779    [RFC4234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
    780               Specifications: ABNF", RFC 4234, October 2005.
    781 
    782    [RFC4511]  Sermersheim, J., Ed., "Lightweight Directory Access
    783               Protocol (LDAP): The Protocol", RFC 4511, June 2006.
    784 
    785    [RFC4513]  Harrison, R. Ed., "Lightweight Directory Access Protocol
    786               (LDAP): Authentication Methods and Security Mechanisms",
    787               RFC 4513, June 2006.
    788 
    789    [RFC4520]  Zeilenga, K., "Internet Assigned Numbers Authority (IANA)
    790               Considerations for the Lightweight Directory Access
    791               Protocol (LDAP)", BCP 64, RFC 4520, June 2006.
    792 
    793 
    794 
    795 
    796 
    797 
    798 
    799 Zeilenga                    Standards Track                    [Page 14]
    800 
    802 RFC 4523                   LDAP X.509 Schema                   June 2006
    803 
    804 
    805 Appendix A.
    806 
    807    This appendix is informative.
    808 
    809    This appendix provides ABNF [RFC4234] grammars for GSER-based
    810    [RFC3641] LDAP-specific encodings specified in this document.  These
    811    grammars where produced using, and relying on, Common Elements for
    812    GSER Encodings [RFC3642].
    813 
    814 A.1.  CertificateExactAssertion
    815 
    816    CertificateExactAssertion = "{" sp cea-serialNumber ","
    817         sp cea-issuer sp "}"
    818 
    819    cea-serialNumber = id-serialNumber msp CertificateSerialNumber
    820    cea-issuer = id-issuer msp Name
    821 
    822    id-serialNumber =
    823         %x73.65.72.69.61.6C.4E.75.6D.62.65.72 ; 'serialNumber'
    824    id-issuer = %x69.73.73.75.65.72 ; 'issuer'
    825 
    826    Name = id-rdnSequence ":" RDNSequence
    827    id-rdnSequence = %x72.64.6E.53.65.71.75.65.6E.63.65 ; 'rdnSequence'
    828 
    829    CertificateSerialNumber = INTEGER
    830 
    831 A.2.  CertificateAssertion
    832 
    833 CertificateAssertion = "{" [ sp ca-serialNumber ]
    834      [ sep sp ca-issuer ]
    835      [ sep sp ca-subjectKeyIdentifier ]
    836      [ sep sp ca-authorityKeyIdentifier ]
    837      [ sep sp ca-certificateValid ]
    838      [ sep sp ca-privateKeyValid ]
    839      [ sep sp ca-subjectPublicKeyAlgID ]
    840      [ sep sp ca-keyUsage ]
    841      [ sep sp ca-subjectAltName ]
    842      [ sep sp ca-policy ]
    843      [ sep sp ca-pathToName ]
    844      [ sep sp ca-subject ]
    845      [ sep sp ca-nameConstraints ] sp "}"
    846 
    847 ca-serialNumber = id-serialNumber msp CertificateSerialNumber
    848 ca-issuer = id-issuer msp Name
    849 ca-subjectKeyIdentifier = id-subjectKeyIdentifier msp
    850      SubjectKeyIdentifier
    851 ca-authorityKeyIdentifier = id-authorityKeyIdentifier msp
    852      AuthorityKeyIdentifier
    853 
    854 
    855 
    856 Zeilenga                    Standards Track                    [Page 15]
    857 
    859 RFC 4523                   LDAP X.509 Schema                   June 2006
    860 
    861 
    862 ca-certificateValid = id-certificateValid msp Time
    863 ca-privateKeyValid = id-privateKeyValid msp GeneralizedTime
    864 ca-subjectPublicKeyAlgID = id-subjectPublicKeyAlgID msp
    865      OBJECT-IDENTIFIER
    866 ca-keyUsage = id-keyUsage msp KeyUsage
    867 ca-subjectAltName = id-subjectAltName msp AltNameType
    868 ca-policy = id-policy msp CertPolicySet
    869 ca-pathToName = id-pathToName msp Name
    870 ca-subject = id-subject msp Name
    871 ca-nameConstraints = id-nameConstraints msp NameConstraintsSyntax
    872 
    873 id-subjectKeyIdentifier =
    874      %x73.75.62.6A.65.63.74.4B.65.79.49.64.65.6E.74.69.66.69.65.72
    875      ; 'subjectKeyIdentifier'
    876 id-authorityKeyIdentifier =
    877      %x61.75.74.68.6F.72.69.74.79.4B.65.79.49.64.65.6E.74.69.66.69.65.72
    878      ; 'authorityKeyIdentifier'
    879 id-certificateValid = %x63.65.72.74.69.66.69.63.61.74.65.56.61.6C.69.64
    880      ; 'certificateValid'
    881 id-privateKeyValid = %x70.72.69.76.61.74.65.4B.65.79.56.61.6C.69.64
    882      ; 'privateKeyValid'
    883 id-subjectPublicKeyAlgID  =
    884      %x73.75.62.6A.65.63.74.50.75.62.6C.69.63.4B.65.79.41.6C.67.49.44
    885      ; 'subjectPublicKeyAlgID'
    886 id-keyUsage = %x6B.65.79.55.73.61.67.65 ; 'keyUsage'
    887 id-subjectAltName = %x73.75.62.6A.65.63.74.41.6C.74.4E.61.6D.65
    888      ; 'subjectAltName'
    889 id-policy = %x70.6F.6C.69.63.79 ; 'policy'
    890 id-pathToName = %x70.61.74.68.54.6F.4E.61.6D.65 ; 'pathToName'
    891 id-subject = %x73.75.62.6A.65.63.74 ; 'subject'
    892 id-nameConstraints = %x6E.61.6D.65.43.6F.6E.73.74.72.61.69.6E.74.73
    893      ; 'nameConstraints'
    894 
    895 SubjectKeyIdentifier = KeyIdentifier
    896 
    897 KeyIdentifier = OCTET-STRING
    898 
    899 AuthorityKeyIdentifier = "{" [ sp aki-keyIdentifier ]
    900      [ sep sp aki-authorityCertIssuer ]
    901      [ sep sp aki-authorityCertSerialNumber ] sp "}"
    902 
    903 aki-keyIdentifier = id-keyIdentifier msp KeyIdentifier
    904 aki-authorityCertIssuer = id-authorityCertIssuer msp GeneralNames
    905 
    906 GeneralNames = "{" sp GeneralName *( "," sp GeneralName ) sp "}"
    907 GeneralName  = gn-otherName
    908      / gn-rfc822Name
    909      / gn-dNSName
    910 
    911 
    912 
    913 Zeilenga                    Standards Track                    [Page 16]
    914 
    916 RFC 4523                   LDAP X.509 Schema                   June 2006
    917 
    918 
    919      / gn-x400Address
    920      / gn-directoryName
    921      / gn-ediPartyName
    922      / gn-uniformResourceIdentifier
    923      / gn-iPAddress
    924      / gn-registeredID
    925 
    926 gn-otherName = id-otherName ":" OtherName
    927 gn-rfc822Name = id-rfc822Name ":" IA5String
    928 gn-dNSName = id-dNSName ":" IA5String
    929 gn-x400Address = id-x400Address ":" ORAddress
    930 gn-directoryName = id-directoryName ":" Name
    931 gn-ediPartyName = id-ediPartyName ":" EDIPartyName
    932 gn-iPAddress = id-iPAddress ":" OCTET-STRING
    933 gn-registeredID = gn-id-registeredID ":" OBJECT-IDENTIFIER
    934 
    935 gn-uniformResourceIdentifier = id-uniformResourceIdentifier
    936      ":" IA5String
    937 
    938 id-otherName = %x6F.74.68.65.72.4E.61.6D.65 ; 'otherName'
    939 gn-id-registeredID = %x72.65.67.69.73.74.65.72.65.64.49.44
    940      ; 'registeredID'
    941 
    942 OtherName = "{" sp on-type-id "," sp on-value sp "}"
    943 on-type-id = id-type-id msp OBJECT-IDENTIFIER
    944 on-value = id-value msp Value
    945      ;; <Value> as defined in Section 3 of [RFC3641]
    946 
    947 id-type-id = %x74.79.70.65.2D.69.64 ; 'type-id'
    948 id-value = %x76.61.6C.75.65 ; 'value'
    949 
    950 ORAddress = dquote *SafeIA5Character dquote
    951 SafeIA5Character = %x01-21 / %x23-7F / ; ASCII minus dquote
    952      dquote dquote ; escaped double quote
    953 dquote = %x22 ; '"' (double quote)
    954 
    955 ;; Note: The <ORAddress> rule encodes the x400Address component
    956 ;; of a GeneralName as a character string between double quotes.
    957 ;; The character string is first derived according to Section 4.1
    958 ;; of [RFC2156], and then any embedded double quotes are escaped
    959 ;; by being repeated. This resulting string is output between
    960 ;; double quotes.
    961 
    962 EDIPartyName = "{" [ sp nameAssigner "," ] sp partyName sp "}"
    963 nameAssigner = id-nameAssigner msp DirectoryString
    964 partyName = id-partyName msp DirectoryString
    965 id-nameAssigner = %x6E.61.6D.65.41.73.73.69.67.6E.65.72
    966      ; 'nameAssigner'
    967 
    968 
    969 
    970 Zeilenga                    Standards Track                    [Page 17]
    971 
    973 RFC 4523                   LDAP X.509 Schema                   June 2006
    974 
    975 
    976 id-partyName    = %x70.61.72.74.79.4E.61.6D.65 ; 'partyName'
    977 
    978 aki-authorityCertSerialNumber = id-authorityCertSerialNumber
    979      msp CertificateSerialNumber
    980 
    981 id-keyIdentifier = %x6B.65.79.49.64.65.6E.74.69.66.69.65.72
    982      ; 'keyIdentifier'
    983 id-authorityCertIssuer =
    984      %x61.75.74.68.6F.72.69.74.79.43.65.72.74.49.73.73.75.65.72
    985      ; 'authorityCertIssuer'
    986 
    987 id-authorityCertSerialNumber = %x61.75.74.68.6F.72.69.74.79.43
    988      %x65.72.74.53.65.72.69.61.6C.4E.75.6D.62.65.72
    989      ; 'authorityCertSerialNumber'
    990 
    991 Time = time-utcTime / time-generalizedTime
    992 time-utcTime = id-utcTime ":" UTCTime
    993 time-generalizedTime = id-generalizedTime ":" GeneralizedTime
    994 id-utcTime = %x75.74.63.54.69.6D.65 ; 'utcTime'
    995 id-generalizedTime = %x67.65.6E.65.72.61.6C.69.7A.65.64.54.69.6D.65
    996      ; 'generalizedTime'
    997 
    998 KeyUsage = BIT-STRING / key-usage-bit-list
    999 key-usage-bit-list = "{" [ sp key-usage *( "," sp key-usage ) ] sp "}"
   1000 
   1001 ;; Note: The <key-usage-bit-list> rule encodes the one bits in
   1002 ;; a KeyUsage value as a comma separated list of identifiers.
   1003 
   1004 key-usage = id-digitalSignature
   1005      / id-nonRepudiation
   1006      / id-keyEncipherment
   1007      / id-dataEncipherment
   1008      / id-keyAgreement
   1009      / id-keyCertSign
   1010      / id-cRLSign
   1011      / id-encipherOnly
   1012      / id-decipherOnly
   1013 
   1014 id-digitalSignature = %x64.69.67.69.74.61.6C.53.69.67.6E.61.74
   1015      %x75.72.65 ; 'digitalSignature'
   1016 id-nonRepudiation   = %x6E.6F.6E.52.65.70.75.64.69.61.74.69.6F.6E
   1017      ; 'nonRepudiation'
   1018 id-keyEncipherment  = %x6B.65.79.45.6E.63.69.70.68.65.72.6D.65.6E.74
   1019      ; 'keyEncipherment'
   1020 id-dataEncipherment = %x64.61.74.61.45.6E.63.69.70.68.65.72.6D.65.6E
   1021      %x74 ; "dataEncipherment'
   1022 id-keyAgreement     = %x6B.65.79.41.67.72.65.65.6D.65.6E.74
   1023      ; 'keyAgreement'
   1024 
   1025 
   1026 
   1027 Zeilenga                    Standards Track                    [Page 18]
   1028 
   1030 RFC 4523                   LDAP X.509 Schema                   June 2006
   1031 
   1032 
   1033 id-keyCertSign      = %x6B.65.79.43.65.72.74.53.69.67.6E
   1034      ; 'keyCertSign'
   1035 id-cRLSign          = %x63.52.4C.53.69.67.6E ; "cRLSign"
   1036 id-encipherOnly     = %x65.6E.63.69.70.68.65.72.4F.6E.6C.79
   1037      ; 'encipherOnly'
   1038 id-decipherOnly     = %x64.65.63.69.70.68.65.72.4F.6E.6C.79
   1039      ; 'decipherOnly'
   1040 
   1041 AltNameType = ant-builtinNameForm / ant-otherNameForm
   1042 
   1043 ant-builtinNameForm = id-builtinNameForm ":" BuiltinNameForm
   1044 ant-otherNameForm = id-otherNameForm ":" OBJECT-IDENTIFIER
   1045 
   1046 id-builtinNameForm = %x62.75.69.6C.74.69.6E.4E.61.6D.65.46.6F.72.6D
   1047      ; 'builtinNameForm'
   1048 id-otherNameForm   = %x6F.74.68.65.72.4E.61.6D.65.46.6F.72.6D
   1049      ; 'otherNameForm'
   1050 
   1051 BuiltinNameForm  = id-rfc822Name
   1052      / id-dNSName
   1053      / id-x400Address
   1054      / id-directoryName
   1055      / id-ediPartyName
   1056      / id-uniformResourceIdentifier
   1057      / id-iPAddress
   1058      / id-registeredId
   1059 
   1060 id-rfc822Name = %x72.66.63.38.32.32.4E.61.6D.65 ; 'rfc822Name'
   1061 id-dNSName = %x64.4E.53.4E.61.6D.65 ; 'dNSName'
   1062 id-x400Address  = %x78.34.30.30.41.64.64.72.65.73.73 ; 'x400Address'
   1063 id-directoryName = %x64.69.72.65.63.74.6F.72.79.4E.61.6D.65
   1064      ; 'directoryName'
   1065 id-ediPartyName  = %x65.64.69.50.61.72.74.79.4E.61.6D.65
   1066      ; 'ediPartyName'
   1067 id-iPAddress = %x69.50.41.64.64.72.65.73.73 ; 'iPAddress'
   1068 id-registeredId = %x72.65.67.69.73.74.65.72.65.64.49.64
   1069      ; 'registeredId'
   1070 
   1071 id-uniformResourceIdentifier = %x75.6E.69.66.6F.72.6D.52.65.73.6F.75
   1072      %x72.63.65.49.64.65.6E.74.69.66.69.65.72
   1073      ; 'uniformResourceIdentifier'
   1074 
   1075 CertPolicySet = "{" sp CertPolicyId *( "," sp CertPolicyId ) sp "}"
   1076 CertPolicyId = OBJECT-IDENTIFIER
   1077 
   1078 NameConstraintsSyntax = "{" [ sp ncs-permittedSubtrees ]
   1079      [ sep sp ncs-excludedSubtrees ] sp "}"
   1080 
   1081 
   1082 
   1083 
   1084 Zeilenga                    Standards Track                    [Page 19]
   1085 
   1087 RFC 4523                   LDAP X.509 Schema                   June 2006
   1088 
   1089 
   1090 ncs-permittedSubtrees = id-permittedSubtrees msp GeneralSubtrees
   1091 ncs-excludedSubtrees = id-excludedSubtrees  msp GeneralSubtrees
   1092 
   1093 id-permittedSubtrees =
   1094      %x70.65.72.6D.69.74.74.65.64.53.75.62.74.72.65.65.73
   1095      ; 'permittedSubtrees'
   1096 id-excludedSubtrees =
   1097      %x65.78.63.6C.75.64.65.64.53.75.62.74.72.65.65.73
   1098      ; 'excludedSubtrees'
   1099 
   1100 GeneralSubtrees = "{" sp GeneralSubtree
   1101      *( "," sp GeneralSubtree ) sp "}"
   1102 GeneralSubtree  = "{" sp gs-base
   1103      [ "," sp gs-minimum ]
   1104      [ "," sp gs-maximum ] sp "}"
   1105 
   1106 gs-base = id-base msp GeneralName
   1107 gs-minimum = id-minimum msp BaseDistance
   1108 gs-maximum = id-maximum msp BaseDistance
   1109 
   1110 id-base = %x62.61.73.65 ; 'base'
   1111 id-minimum = %x6D.69.6E.69.6D.75.6D ; 'minimum'
   1112 id-maximum = %x6D.61.78.69.6D.75.6D ; 'maximum'
   1113 
   1114 BaseDistance = INTEGER-0-MAX
   1115 
   1116 A.3.  CertificatePairExactAssertion
   1117 
   1118   CertificatePairExactAssertion = "{" [ sp cpea-issuedTo ]
   1119        [sep sp cpea-issuedBy ] sp "}"
   1120   ;; At least one of <cpea-issuedTo> or <cpea-issuedBy> MUST be present.
   1121 
   1122   cpea-issuedTo = id-issuedToThisCAAssertion msp
   1123        CertificateExactAssertion
   1124   cpea-issuedBy = id-issuedByThisCAAssertion msp
   1125        CertificateExactAssertion
   1126 
   1127   id-issuedToThisCAAssertion = %x69.73.73.75.65.64.54.6F.54.68.69.73
   1128        %x43.41.41.73.73.65.72.74.69.6F.6E ; 'issuedToThisCAAssertion'
   1129   id-issuedByThisCAAssertion = %x69.73.73.75.65.64.42.79.54.68.69.73
   1130        %x43.41.41.73.73.65.72.74.69.6F.6E ; 'issuedByThisCAAssertion'
   1131 
   1132 
   1133 
   1134 
   1135 
   1136 
   1137 
   1138 
   1139 
   1140 
   1141 Zeilenga                    Standards Track                    [Page 20]
   1142 
   1144 RFC 4523                   LDAP X.509 Schema                   June 2006
   1145 
   1146 
   1147 A.4.  CertificatePairAssertion
   1148 
   1149    CertificatePairAssertion = "{" [ sp cpa-issuedTo ]
   1150         [sep sp cpa-issuedBy ] sp "}"
   1151    ;; At least one of <cpa-issuedTo> and <cpa-issuedBy> MUST be present.
   1152 
   1153    cpa-issuedTo = id-issuedToThisCAAssertion msp CertificateAssertion
   1154    cpa-issuedBy = id-issuedByThisCAAssertion msp CertificateAssertion
   1155 
   1156 A.5.  CertificateListExactAssertion
   1157 
   1158    CertificateListExactAssertion = "{" sp clea-issuer ","
   1159         sp clea-thisUpdate
   1160         [ "," sp clea-distributionPoint ] sp "}"
   1161 
   1162    clea-issuer = id-issuer msp Name
   1163    clea-thisUpdate = id-thisUpdate msp Time
   1164    clea-distributionPoint = id-distributionPoint msp
   1165         DistributionPointName
   1166 
   1167    id-thisUpdate = %x74.68.69.73.55.70.64.61.74.65 ; 'thisUpdate'
   1168    id-distributionPoint =
   1169         %x64.69.73.74.72.69.62.75.74.69.6F.6E.50.6F.69.6E.74
   1170         ; 'distributionPoint'
   1171 
   1172    DistributionPointName = dpn-fullName / dpn-nameRelativeToCRLIssuer
   1173 
   1174    dpn-fullName = id-fullName ":" GeneralNames
   1175    dpn-nameRelativeToCRLIssuer = id-nameRelativeToCRLIssuer ":"
   1176         RelativeDistinguishedName
   1177 
   1178    id-fullName = %x66.75.6C.6C.4E.61.6D.65 ; 'fullName'
   1179    id-nameRelativeToCRLIssuer = %x6E.61.6D.65.52.65.6C.61.74.69.76.65
   1180         %x54.6F.43.52.4C.49.73.73.75.65.72 ; 'nameRelativeToCRLIssuer'
   1181 
   1182 A.6.  CertificateListAssertion
   1183 
   1184    CertificateListAssertion = "{" [ sp cla-issuer ]
   1185         [ sep sp cla-minCRLNumber ]
   1186         [ sep sp cla-maxCRLNumber ]
   1187         [ sep sp cla-reasonFlags ]
   1188         [ sep sp cla-dateAndTime ]
   1189         [ sep sp cla-distributionPoint ]
   1190         [ sep sp cla-authorityKeyIdentifier ] sp "}"
   1191 
   1192    cla-issuer = id-issuer msp Name
   1193    cla-minCRLNumber = id-minCRLNumber msp CRLNumber
   1194    cla-maxCRLNumber = id-maxCRLNumber msp CRLNumber
   1195 
   1196 
   1197 
   1198 Zeilenga                    Standards Track                    [Page 21]
   1199 
   1201 RFC 4523                   LDAP X.509 Schema                   June 2006
   1202 
   1203 
   1204    cla-reasonFlags = id-reasonFlags msp ReasonFlags
   1205    cla-dateAndTime = id-dateAndTime msp Time
   1206 
   1207    cla-distributionPoint = id-distributionPoint msp
   1208         DistributionPointName
   1209 
   1210    cla-authorityKeyIdentifier = id-authorityKeyIdentifier msp
   1211         AuthorityKeyIdentifier
   1212 
   1213    id-minCRLNumber = %x6D.69.6E.43.52.4C.4E.75.6D.62.65.72
   1214         ; 'minCRLNumber'
   1215    id-maxCRLNumber = %x6D.61.78.43.52.4C.4E.75.6D.62.65.72
   1216         ; 'maxCRLNumber'
   1217    id-reasonFlags = %x72.65.61.73.6F.6E.46.6C.61.67.73 ; 'reasonFlags'
   1218    id-dateAndTime = %x64.61.74.65.41.6E.64.54.69.6D.65 ; 'dateAndTime'
   1219 
   1220    CRLNumber = INTEGER-0-MAX
   1221 
   1222    ReasonFlags = BIT-STRING
   1223         / "{" [ sp reason-flag *( "," sp reason-flag ) ] sp "}"
   1224 
   1225    reason-flag = id-unused
   1226         / id-keyCompromise
   1227         / id-cACompromise
   1228         / id-affiliationChanged
   1229         / id-superseded
   1230         / id-cessationOfOperation
   1231         / id-certificateHold
   1232         / id-privilegeWithdrawn
   1233         / id-aACompromise
   1234 
   1235    id-unused = %x75.6E.75.73.65.64 ; 'unused'
   1236    id-keyCompromise = %x6B.65.79.43.6F.6D.70.72.6F.6D.69.73.65
   1237         ; 'keyCompromise'
   1238    id-cACompromise = %x63.41.43.6F.6D.70.72.6F.6D.69.73.65
   1239         ; 'cACompromise'
   1240    id-affiliationChanged =
   1241         %x61.66.66.69.6C.69.61.74.69.6F.6E.43.68.61.6E.67.65.64
   1242         ; 'affiliationChanged'
   1243    id-superseded = %x73.75.70.65.72.73.65.64.65.64 ; 'superseded'
   1244    id-cessationOfOperation =
   1245         %x63.65.73.73.61.74.69.6F.6E.4F.66.4F.70.65.72.61.74.69.6F.6E
   1246         ; 'cessationOfOperation'
   1247    id-certificateHold = %x63.65.72.74.69.66.69.63.61.74.65.48.6F.6C.64
   1248         ; 'certificateHold'
   1249    id-privilegeWithdrawn =
   1250         %x70.72.69.76.69.6C.65.67.65.57.69.74.68.64.72.61.77.6E
   1251         ; 'privilegeWithdrawn'
   1252 
   1253 
   1254 
   1255 Zeilenga                    Standards Track                    [Page 22]
   1256 
   1258 RFC 4523                   LDAP X.509 Schema                   June 2006
   1259 
   1260 
   1261    id-aACompromise = %x61.41.43.6F.6D.70.72.6F.6D.69.73.65
   1262         ; 'aACompromise'
   1263 
   1264 A.7.  AlgorithmIdentifier
   1265 
   1266    AlgorithmIdentifier = "{" sp ai-algorithm
   1267         [ "," sp ai-parameters ] sp "}"
   1268 
   1269    ai-algorithm = id-algorithm msp OBJECT-IDENTIFIER
   1270    ai-parameters = id-parameters msp Value
   1271    id-algorithm = %x61.6C.67.6F.72.69.74.68.6D ; 'algorithm'
   1272    id-parameters = %x70.61.72.61.6D.65.74.65.72.73 ; 'parameters'
   1273 
   1274 Author's Address
   1275 
   1276    Kurt D. Zeilenga
   1277    OpenLDAP Foundation
   1278 
   1279    EMail: Kurt (a] OpenLDAP.org
   1280 
   1281 
   1282 
   1283 
   1284 
   1285 
   1286 
   1287 
   1288 
   1289 
   1290 
   1291 
   1292 
   1293 
   1294 
   1295 
   1296 
   1297 
   1298 
   1299 
   1300 
   1301 
   1302 
   1303 
   1304 
   1305 
   1306 
   1307 
   1308 
   1309 
   1310 
   1311 
   1312 Zeilenga                    Standards Track                    [Page 23]
   1313 
   1315 RFC 4523                   LDAP X.509 Schema                   June 2006
   1316 
   1317 
   1318 Full Copyright Statement
   1319 
   1320    Copyright (C) The Internet Society (2006).
   1321 
   1322    This document is subject to the rights, licenses and restrictions
   1323    contained in BCP 78, and except as set forth therein, the authors
   1324    retain all their rights.
   1325 
   1326    This document and the information contained herein are provided on an
   1327    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   1328    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   1329    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   1330    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   1331    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   1332    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
   1333 
   1334 Intellectual Property
   1335 
   1336    The IETF takes no position regarding the validity or scope of any
   1337    Intellectual Property Rights or other rights that might be claimed to
   1338    pertain to the implementation or use of the technology described in
   1339    this document or the extent to which any license under such rights
   1340    might or might not be available; nor does it represent that it has
   1341    made any independent effort to identify any such rights.  Information
   1342    on the procedures with respect to rights in RFC documents can be
   1343    found in BCP 78 and BCP 79.
   1344 
   1345    Copies of IPR disclosures made to the IETF Secretariat and any
   1346    assurances of licenses to be made available, or the result of an
   1347    attempt made to obtain a general license or permission for the use of
   1348    such proprietary rights by implementers or users of this
   1349    specification can be obtained from the IETF on-line IPR repository at
   1350    http://www.ietf.org/ipr.
   1351 
   1352    The IETF invites any interested party to bring to its attention any
   1353    copyrights, patents or patent applications, or other proprietary
   1354    rights that may cover technology that may be required to implement
   1355    this standard.  Please address the information to the IETF at
   1356    ietf-ipr (a] ietf.org.
   1357 
   1358 Acknowledgement
   1359 
   1360    Funding for the RFC Editor function is provided by the IETF
   1361    Administrative Support Activity (IASA).
   1362 
   1363 
   1364 
   1365 
   1366 
   1367 
   1368 
   1369 Zeilenga                    Standards Track                    [Page 24]
   1370 
   1372