INTERNET-DRAFT                                             D. W. Chadwick
PKIX WG                                                    M. V. Sahalayev
Intended Category: Informational                           University of Salford
Expires on 28 December 2004                                 28 June 2004



                 Internet X.509 Public Key Infrastructure
                     LDAP Schema for X.509 CRLs
                <draft-ietf-pkix-ldap-crl-schema-02.txt>



Copyright (C) The Internet Society (2003). All Rights Reserved.


STATUS OF THIS MEMO


This document is an Internet-Draft and is in full conformance with
all the provisions of Section 10 of RFC2026 [1].


Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.


Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."


The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.


The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.


Comments and suggestions on this document are encouraged. Comments on this
document should be sent to the PKIX working group discussion list
<ietf-pkix@imc.org> or directly to the authors.



ABSTRACT


This document describes an LDAP schema for X.509 CRLs. Each CRL is broken down
into a set of attribute types. These attributes can then be stored in a CRL
entry, or set of entries. Object classes are defined for these CRL entries. Each
attribute type uses an existing LDAP syntax, so that no new matching rules need
to be defined.


The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and  "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [2].


        1. Introduction


It currently isn't possible to search LDAP servers for X.509 [6] attributes
(public key certificates, CRLs etc.) as no matching rules have been defined for
them. A couple of Internet Drafts [9,10] have been specified, but implementation
of them is complex. Component matching [19] defines a mechanism for matching
against complex syntaxes, by defining generic matching rules that can match
against any user selected component parts in an attribute value of any
arbitrarily complex attribute syntax.  This might prove to be the proper way to
solve LDAP search problems in the longer term, but it will take a long time
until such ASN.1 based mechanisms are implemented in all LDAP servers and
clients.  Even when this has happened the mechanism proposed in this document
will still be useful to some applications such as CIP [20].


A simple and easy to implement mechanism is needed today to search for X.509
attributes.


Rather than search for an X.509 attribute in an entry, it suggests the directory
administrative user creates an entry (in the case of pubic key and attribute
certificates) or a subtree (in the case of CRLs) from the X.509 attribute. The
attributes of these new entries will be created from fields of the X.509
attribute (e.g. the issuer field), and if these new attributes are defined using
existing LDAP syntaxes and matching rules, then it will be possible to use
existing LDAP server technology to search for fields in X.509 attributes.


This document is one of a set comprising:
i)      the LDAP schema for X.509 public key certificates [7]
ii)     the LDAP schema for X.509 attribute certificates [8]
iii)    the LDAP schema for X.509 CRLs (this document)


Schema definitions are provided using LDAPv3 description formats from RFC2252
[3].  Definitions provided here are formatted (line wrapped) for readability.
The specifications use the augmented Backus-Naur Form (ABNF) as described in
RFC2234 [4].


        2. DIT Structure and Naming


If the schema presented in this document is used to store information about CRLs
in a directory, each CRL entry SHOULD be stored as a direct subordinate of the
CRL issuer's entry, unless a crlScope Extension or issuingDistributionPoint
Extension is present in the CRL. In the latter cases the CRL MUST be stored as
indicated in those extensions.  The CRL entry is named using the
x509CRLThisUpdate attribute, using one of the following name forms:


   (1.2.826.0.1.3344810.1.3.0
        NAME 'x509CRLNameForm'
        OC x509CRL
        MUST x509CRLThisUpdate )


   (1.2.826.0.1.3344810.1.3.7
        NAME 'x509ARLNameForm'
        OC x509CRL
        MUST x509CRLThisUpdate )


   (1.2.826.0.1.3344810.1.3.8
        NAME 'x509deltaRLNameForm'
        OC x509CRL
        MUST x509CRLThisUpdate )


x509CRLNameForm is used to name CRL entries.
x509ARLNameForm is used to name Authority Revocation List entries.
x509deltaRLNameForm is used to name delta CRL entries.


Subordinate to the entry for the CRL, the user MAY create an entry for each
revoked certificate. Each revoked certificate entry is named with the serial
number of the revoked certificate, unless the CRL is an indirect CRL, in which
case it is named with a combination of the serial number and issuer's DN i.e. a
multi-valued RDN. For those LDAP servers that do not support multi-valued RDNs,
an alternative name form is defined in which the serial number and issuer DN are
concatenated together into one attribute value. This is expressed in the
following name forms:


   (1.2.826.0.1.3344810.1.3.1
        NAME 'x509CRLentryNameForm'
        OC x509CRLentry
        MUST x509serial )


   (1.2.826.0.1.3344810.1.3.2
        NAME 'x509CRLindirectEntryNameForm'
        OC x509CRLentry
        MUST ( x509serialNumber $ x509issuer ) )


   (1.2.826.0.1.3344810.1.3.6
        NAME 'x509CRLindirectEntryAltNameForm'
        OC x509AC
        MUST ( x509issuerSerial ) )


When encoding DNs that contain an x509issuer field, the string representation
must be made according to [13].  These strings contain RFC2253 special
characters and must therefore be escaped.  For example, the issuer name in a
certificate may be:


   x509issuer: OU=VeriSign Trust Network,OU=(c) 1998 VeriSign Inc. -
     For authorized use only,OU=Class 1 Public Primary Certification Au
     thority - G2,O=VeriSign Inc.,C=US


When used in the x509issuerSerial attribute of a DN, this may appear as:


   dn: x509issuerSerial=123456\,OU\=VeriSign Trust Network \,OU
    \=(c) 1998 VeriSign Inc. - For authorized use only\,OU\=Class 1 Public
    Primary Certification Authority - G2\,O\=VeriSign Inc.\2cC\3dUS



        3. X.509 Schema Object Classes


The object classes have been designed to form a logical set and be extensible in
an orderly way as new PKC/CRL/AC extensions are defined. The methodology is as
follows. Every X.509 entry (for a PKC, CRL or AC) is of the x509base abstract
object class. There is then an additional abstract object class for each,
derived from x509base, which holds the attributes extracted from the basic
PKC/AC/CRL ASN.1 structure (excluding all extensions). Further, there is an
auxiliary object class for the extensions defined in X.509 [6], and an
additional auxiliary object class (if needed) for extensions defined in existing
Internet RFCs. As new extensions are defined, then new auxiliary object classes
and attributes will need to be defined to cater for the attributes to be
extracted from these. Finally there are several structural object classes for
each, which allow the X.509 DER encoded attribute to be stored in the entry.


        3.1 X509 base object class


The x509base object class is defined in [7].


        3.2 X.509 CRL object class


The x509CRL object class is the abstract object class used for storing the
searchable attributes extracted from the basic fields of a CRL (excluding
extensions). It is the superior of the revocation list structural object
classes.


  (1.2.826.0.1.3344810.1.0.14
      NAME 'x509CRL'
      SUP x509base
      ABSTRACT
      MUST ( x509CRLThisUpdate $
             x509signatureAlgorithm $
             x509issuer )
      MAY ( x509CRLNextUpdate ))


        3.3 X509 CRL extensions object class


The x509CRLext auxiliary object class is used to hold the attributes extracted
from the extensions defined in the X.509 standard [6] and profiled in [5]. Note
that the freshest CRL extension is not included since this was originally
forbidden from appearing in CRLs by X.509.



Note. If a CRL holds additional extensions to these, then another auxiliary
object class and supporting attributes will need to be defined.


(1.2.826.0.1.3344810.1.0.23
      NAME 'x509CRLext'
      AUXILIARY
      MAY ( x509authorityKeyIdentifier $
            x509authorityCertIssuer $
            x509authorityCertSerialNumber $
            x509issuerRfc822Name $
            x509issuerDNSName $
            x509issuerDirectoryName $
            x509issuerUniformResourceIdentifier $
            x509issuerIPAddress $
            x509issuerRegisteredID $
            x509CRLNumber $
            x509CRLDPRfc822Name $
            x509CRLDPDNSName $
            x509CRLDPDN $
            x509CRLDPURI $
            x509CRLDPIPAddress $
            x509CRLDPRegisteredID $
            x509CRLDPOnlyUserCerts $
            x509CRLDPOnlyCACerts $
            x509CRLDPOnlySomeReasons $
            x509CRLDPOnlyAttCerts $
            x509CRLDPindirect $
            x509CRLDeltaIndicator ) )



        3.4 X.509 certificate revocation list object class


This object class is the structural object class used to hold certificate
revocation list entries.


   (1.2.826.0.1.3344810.1.0.19
     NAME 'x509certificateRevocationList'
     SUP x509CRL
     MUST certificateRevocationList )



        3.4 X.509 authority revocation list object class


This object class is the structural object class used to hold authority
revocation list entries.


   (1.2.826.0.1.3344810.1.0.20
     NAME 'x509authorityRevocationList'
     SUP x509CRL
     MUST authorityRevocationList )


        3.5 X.509 delta revocation list object class


This object class is the structural object class used to hold delta revocation
list entries.


   (1.2.826.0.1.3344810.1.0.21
     NAME 'x509deltaRevocationList'
     SUP x509CRL
     MUST deltaRevocationList )


        3.6 X.509 revoked certificate object class


The x509CRLentry object class is the structural object class used for storing
revoked certificate entries.


   (1.2.826.0.1.3344810.1.0.15
        NAME 'x509CRLentry'
        SUP x509base
        MUST ( x509serialNumber $
             x509CRLCertRevocationDate )
        MAY ( x509CRLCertInvalidityDate $
            x509CRLCertReasonCode $
            x509CRLCertHoldInstructionCode $
            x509CRLCertIssuerRfc822Name $
            x509CRLCertIssuerDnsName $
            x509CRLCertIssuerDN $
            x509CRLCertIssuerURI $
            x509CRLCertIssuerIpAddress $
            x509CRLCertIssuerRegisteredID )  )


        4. Common X.509 Attribute Types


The following attribute types defined in [7] are used to hold the corresponding
fields of CRLs:


   - x509serialNumber - used to hold the serial number(s) of the revoked
     certifictate(s)
   - x509version - used to hold the version of the CRL
   - x509signatureAlgorithm - used to hold the OID of the algorithm used to
     sign the CRL
   - x509issuer - used to hold the DN of the CRL issuer
   - x509issuerRfc822Name - used to hold the email address of the CRL issuer
   - x509issuerDnsName - used to hold the DNS name of the CRL issuer
   - x509issuerDirectoryName - used to hold an alternative DN for the
     CRL issuer
   - x509issuerUniformResourceIdentifier - used to hold a URI for the
     CRL issuer
   - x509issuerIpAddress - used to hold the IP address of the CRL issuer
   - x509issuerRegisteredID - used to hold a registered OID of the CRL issuer
   - x509authorityKeyIdentifier - used to hold the identifier of the key used
     to sign the CRL
   - x509authorityCertIssuer - used in conjunction with
     x509authorityCertSerialNumber to identify the certificate of the issuer
   - x509authorityCertSerialNumber - used in conjunction with
     x509authorityCertIssuer to identify the certificate of the issuer


        5. Attribute Types for CRL Specific Fields


The following attribute types may be used to store basic fields of a CRL. The
following basic fields are supported:
   - this update
   - next update


        5.1 This update


This attribute may be used to hold the thisUpdate field of the CRL.


   (1.2.826.0.1.3344810.1.1.37
        NAME 'x509CRLThisUpdate'
        DESC 'Date at which this revocation list was issued - see RFC3280 5.1.2.4'
        EQUALITY generalizedTimeMatch
        ORDERING generalizedTimeOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
        SINGLE-VALUE )


Note that the field in the CRL may be in UTC or GeneralizedTime format. If in
UTC format, the creator of this attribute MUST convert the UTC time into
GeneralisedTime format when creating the attribute value.


5.2     Next update


This attribute may be used to hold the nextUpdate field of the CRL.


   (1.2.826.0.1.3344810.1.1.38
        NAME 'x509CRLNextUpdate'
        DESC 'Date by which the next revocation list in this series
                 will be issued, see - RFC3280 5.1.2.5'
        EQUALITY generalizedTimeMatch
        ORDERING generalizedTimeOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
        SINGLE-VALUE )


Note that the field in the CRL may be in UTC or GeneralizedTime format. If in
UTC format, the creator of this attribute MUST convert the UTC time into
GeneralisedTime format when creating the attribute value.


        6. Attributes for Selected CRL Extensions


In line with the CRL profile RFC 3280 [5], the following CRL extensions are
supported:
   - CRL Number (defined here)
   - Issuing Distribution Point (defined here)
   - Authority Key Identifier (defined in [7])
   - Issuer Alternative Name (defined in [7])
   - Delta CRL Indicator (defined here)


The following extension is not included:
   - freshest CRL (see 5.2.6 of RFC 3280 [5])


6.1     CRL number extension


This attribute may be used to store the sequence number of the CRL.


   (1.2.826.0.1.3344810.1.1.102
        NAME 'x509CRLNumber'
        DESC 'sequence number of issued CRL - see RFC3280 5.2.3'
        EQUALITY integerMatch
        ORDERING integerOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
        SINGLE-VALUE )


6.2     Issuing distribution point


The issuing distribution point comprises the general name of the issuing CA,
plus some codes that indicate the contents of this CRL. Separate attribute types
are defined for all choices of the ASN.1 type "GeneralName" except for
"otherName", "x400Address" and "ediPartyName".


        6.2.1 Issuing distribution point RFC 822 name


   (1.2.826.0.1.3344810.1.1.48
        NAME 'x509CRLDPRfc822Name'
        DESC 'Internet electronic mail address of the issuing
            distribution point, see RFC3280 5.2.5'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute must be encoded according to the syntax given in RFC
822 [11].


        6.2.2 Issuing distribution point DNS name


   (1.2.826.0.1.3344810.1.1.49
        NAME 'x509CRLDPDnsName'
        DESC 'Internet domain name of the issuing distribution point, see
              RFC3280 5.2.5'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute must be encoded as Internet domain names in accordance
with RFC1035 [12].


        6.2.3 Issuing distribution point directory name


   (1.2.826.0.1.3344810.1.1.50
        NAME 'x509CRLDPDN'
        DESC 'Distinguished name of the issuing distribution point, see
              RFC3280 5.2.5'
        EQUALITY distinguishedNameMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )


Values of this attribute type must be encoded according to the syntax given in
RFC2253 [13].


        6.2.4 Issuing distribution point uniform resource identifier


   (1.2.826.0.1.3344810.1.1.51
        NAME  'x509CRLDPURI'
        DESC 'Uniform Resource Identifier of the issuing distribution
            point, see RFC3280 5.2.5'
        EQUALITY caseExactIA5Match
        SUBSTR caseExactIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute must be encoded according to the syntax given in
RFC2396 [14].


        6.2.5 Issuing distribution point IP address


   (1.2.826.0.1.3344810.1.1.52
        NAME 'x509CRLDPIpAddress'
        DESC 'Internet Protocol address, of the issuing distribution point, see
              RFC3280 5.2.5'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute type must be stored in the syntax given in Appendix B
of RFC2373 [16].


        6.2.6 Issuing distribution point registered ID


   (1.2.826.0.1.3344810.1.1.53
        NAME 'x509CRLDPRegisteredID'
        DESC 'Any registered OID of the certificate issuer, see
              RFC3280 5.2.5'
        EQUALITY objectIdentifierMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )


registeredID is an identifier of any registered object assigned in accordance
with ITU-T Rec. X.660. [17]


        6.2.7 Issuing distribution point only contains user certs


This attribute may be used to indicate if the CRL only contains revocations for
end-entity certificates.


   (1.2.826.0.1.3344810.1.1.54
        NAME 'x509CRLDPOnlyUserCerts'
        DESC 'If true, the CRL only contains revocations for end-entity certs, see
              RFC3280 5.2.5'
        EQUALITY booleanMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )


        6.2.8 Issuing distribution point only contains CA certs


This attribute may be used to indicate if the CRL only contains revocations for
CA certificates.


   (1.2.826.0.1.3344810.1.1.55
        NAME 'x509CRLDPOnlyCACerts'
        DESC 'If true, the CRL only contains revocations for CA certs, see
              RFC3280 5.2.5'
        EQUALITY booleanMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )


        6.2.9 Issuing distribution point only contains some reasons


This attribute may be used to indicate if the CRL only contains some revocation
reason codes.


   (1.2.826.0.1.3344810.1.1.56
        NAME 'x509CRLDPOnlySomeReasons'
        DESC 'If true, the CRL only contains some revocation reason codes, see
              RFC3280 5.2.5'
        EQUALITY bitStringMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 )


        6.2.10 Issuing distribution point only contains attribute certs


This attribute may be used to indicate if the CRL only contains revocations for
attribute certificates.


   (1.2.826.0.1.3344810.1.1.57
        NAME 'x509CRLDPOnlyAttCerts'
        DESC 'If true, the CRL only contains revocations for attribute certs, see
              RFC3280 5.2.5'
        EQUALITY booleanMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )


        6.2.11 Issuing distribution point is indirect


This attribute may be used to indicate if the CRL is an indirect CRL and holds
revocations of certificates issued by authorities other than the CRL issuer.


   (1.2.826.0.1.3344810.1.1.58
        NAME 'x509CRLDPindirect'
        DESC 'If true, the CRL is an indirect CRL, see
              RFC3280 5.2.5'
        EQUALITY booleanMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )


6.3     Delta CRL Indicator


This attribute may be used to indicate if the CRL is a delta CRL.


   (1.2.826.0.1.3344810.1.1.59
        NAME 'x509CRLDeltaIndicator'
        DESC 'Indicates this is a delta CRL, and the value points to the
            sequence number of the issued base CRL to which this is a delta
            - see RFC3280 5.2.4'
        EQUALITY integerMatch
        ORDERING integerOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
        SINGLE-VALUE )


        7. Attributes for CRL Revoked Certificate Fields


The serial number attribute is as defined in [7].


7.1     Revocation date


This attribute may be used to hold the revocationDate field of a CRL entry.


   (1.2.826.0.1.3344810.1.1.39
        NAME 'x509CRLCertRevocationDate'
        DESC 'Date/time the CA actually revoked the certificate,
            see - RFC3280 5.1.2.6'
        EQUALITY generalizedTimeMatch
        ORDERING generalizedTimeOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
        SINGLE-VALUE )


Note that the field in the CRL may be in UTC or GeneralizedTime format. If in
UTC format, the creator of this attribute MUST convert the UTC time into
GeneralisedTime format when creating the attribute value.


        8. Attributes for Selected CRL Entry Extensions


In line with the CRL profile RFC 3280 [5], the following CRL entry extensions
are supported:
   - Invalidity date (defined here)
   - Certificate issuer (defined here)
   - Reason code (defined here)
   - Hold instruction code (defined here)


        8.1 Invalidity date extension


This attribute may be used to hold the invalidity date of a certificate.


   (1.2.826.0.1.3344810.1.1.40
        NAME 'x509CRLCertInvalidityDate'
        DESC 'date at which it is known or suspected that the private
              key was compromised, see RFC3280 5.3.3'
        EQUALITY generalizedTimeMatch
        ORDERING generalizedTimeOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
        SINGLE-VALUE )


        8.2  Certificate issuer extension


The certificate issuer extension is used in indirect CRLs to identify the issuer
of the certificate that is revoked. Separate attribute types are defined for all
choices of the ASN.1 type "GeneralName" except for "otherName", "x400Address"
and "ediPartyName".


        8.2.1 Certificate issuer RFC 822 name


   (1.2.826.0.1.3344810.1.1.41
        NAME 'x509CRLCertIssuerRfc822Name'
        DESC 'Internet electronic mail address of the certificate issuer, see
              RFC3280 5.3.4'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute must be encoded according to the syntax given in RFC
822 [11].


        8.2.2 Certificate issuer DNS name


   (1.2.826.0.1.3344810.1.1.42
        NAME 'x509CRLCertIssuerDnsName'
        DESC 'Internet domain name of the certificate issuer, see
              RFC3280 5.3.4'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute must be encoded as Internet domain names in accordance
with RFC1035 [12].


        8.2.3 Certificate issuer directory name


   (1.2.826.0.1.3344810.1.1.43
        NAME 'x509CRLCertIssuerDN'
        DESC 'Distinguished name of the certificate issuer, see
              RFC3280 5.3.4'
        EQUALITY distinguishedNameMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )


Values of this attribute type must be encoded according to the syntax given in
RFC2253 [13].


        8.2.4 Certificate issuer uniform resource identifier


   (1.2.826.0.1.3344810.1.1.44
        NAME  'x509CRLCertIssuerURI'
        DESC 'Uniform Resource Identifier of the certificate issuer, see
              RFC3280 5.3.4'
        EQUALITY caseExactIA5Match
        SUBSTR caseExactIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute must be encoded according to the syntax given in
RFC2396 [14].


        8.2.5 Certificate issuer IP address


   (1.2.826.0.1.3344810.1.1.45
        NAME 'x509CRLCertIssuerIpAddress'
        DESC 'Internet Protocol address, of the certificate issuer, see
              RFC3280 5.3.4'
        EQUALITY caseIgnoreIA5Match
        SUBSTR caseIgnoreIA5SubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )


Values of this attribute type must be stored in the syntax given in Appendix B
of RFC2373 [16].


        8.2.6 Certificate issuer registered ID


   (1.2.826.0.1.3344810.1.1.46
        NAME 'x509CRLCertIssuerRegisteredID'
        DESC 'Any registered OID of the certificate issuer, see
              RFC3280 5.3.4'
        EQUALITY objectIdentifierMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )


registeredID is an identifier of any registered object assigned in accordance
with ITU-T Rec. X.660. [17]


        8.3 Revocation reason code


This field may be used to hold the coded reason for the revocation


   (1.2.826.0.1.3344810.1.1.47
      NAME 'x509CRLCertReasonCode'
      DESC 'An integer code indicating the reason for the revocation, see
              RFC3280 5.3.1'
      EQUALITY integerMatch
      ORDERING integerOrderingMatch
      SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )


        8.4 Hold instruction code


This attribute may be used to store the hold instruction code for the
certificate on the CRL.


   (1.2.826.0.1.3344810.1.1.103
        NAME 'x509CRLCertHoldInstructionCode'
        DESC 'Any registered OID indicating a hold instruction, see
              RFC3280 5.3.2'
        EQUALITY objectIdentifierMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )


        9. Security Considerations


This [Internet Draft/Standard] describes the subschema for the storage
and matching of PKI attributes derived from CRLs. It does not address the
protocol for the storage and retrieval of this information.


LDAP servers SHOULD use authentication and access control mechanisms to protect
the information during its storage and retrieval.


        10. IANA Considerations


This document uses the OID branch 1.2.826.0.1.3344810 to identify new LDAP
attribute types and object classes. A register of all OIDs allocated under this
branch is kept by the registered holder. This branch has been assigned to
TrueTrust Ltd, under its BSI assigned English/Welsh Registered Company number
[18].


        11. References


        Normative


[1] Bradner, S. The Internet Standards Process -- Revision 3. RFC
2026  October 1996.


[2] S.Bradner. "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, March 1997.


[3] Wahl, M., Coulbeck, A., Howes, T. and S. Kille, "Lightweight Directory
Access Protocol (v3): Attribute Syntax Definitions", RFC 2252, December 1997.


[4] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF",
RFC 2234, November 1997.


[5] Housley, R., Polk, T., Ford, W. and D. Solo, "Internet X.509 Public Key
Infrastructure Certificate and CRL Profile", RFC 3280, April 2002.


[6] ITU, "Information  Technology - Open Systems Interconnection - The
Directory: Public-key and attribute certificate frameworks", ITU-T
Recommendation X.509, March 2000.


[7] Gietz, P., Klasen, N. "Internet X.509 Public Key Infrastructure Lightweight
Directory Access Protocol Schema for X.509 Certificates",
<draft-ietf-pkix-ldap-pkc-schema-00.txt>, June 2004


[11] Crocker, D., "Standard for the format of ARPA Internet text messages", STD
11, RFC 822, August 1982.


[12] Mockapetris, P., "Domain names - implementation and specification", STD 13,
RFC 1035, November 1987.


[13] Wahl, M., Kille, S. and T. Howes, "Lightweight Directory Access Protocol
(v3): UTF-8 String Representation of Distinguished Names", RFC 2253, December
1997.


[14] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform Resource
Identifiers (URI): Generic Syntax", RFC 2396, August 1998.


[15] Hodges, J. and RL. Morgan, "Lightweight Directory Access Protocol (v3):
Technical Specification", RFC 3377, September 2002.


[16] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC
2373, July 1998.


[17] CCITT Recommendation X.660 (1992) | ISO/IEC 9834-1:1993, Information
technology - Open Systems Interconnection - Procedures for the operation of OSI
Registration Authorities: General procedures.


[18] BRITISH STANDARD BS 7453 Part 1. Procedures for UK Registration for Open
System Standards Part 1: Procedures for the UK Name Registration Authority.


        Informative


[8] Chadwick, D.W., Sahalayev, M. V. "Internet X.509 Public Key Infrastructure
LDAP Schema for X.509 Attribute Certificates", <draft-ietf-pkix-ldap-ac-schema-
02.txt>, June 2004


[9] Chadwick, D.W., Legg, S. "Internet X.509 Public Key Infrastructure - LDAP
Schema for PKIs " <draft-ietf-pkix-ldap-pki-schema-00.txt>, July 2002


[10] Chadwick, D.W., Legg, S. "Internet X.509 Public Key Infrastructure - LDAP
Schema for PMIs" <draft-ietf-pkix-ldap-pmi-schema-00.txt>, July 2002
[19] S. Legg. "Lightweight Directory Access Protocol (LDAP) and X.500 Component
Matching Rules" RFC 3687, February 2004


[20] J. Allen, M. Mealling. "The Architecture of the Common Indexing Protocol
(CIP)". RFC 2651. August 1999.
        12. Intellectual Property Notice


The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it has
made any effort to identify any such rights.
Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. [BCP-11]
Copies of claims of rights made available for publication and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementors or users of this specification
can be obtained from the IETF Secretariat.


The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard.
Please address the information to the IETF Executive
Director.



        13. Acknowledgments


The authors would like to thank Peter Gietz for his help and co-operation, and
in particular his willingness to align [7] with this document.


The authors would also like to thank TERENA, CESNET, SURFnet, UNINETT, RedIRIS
and SWITCH, who jointly partially funded this work, and without whose support
this work would not have been possible.


        14. Copyright


Copyright (C) The Internet Society (2001). All Rights Reserved.


This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.


The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.


This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.



        15. Authors' Addresses


David Chadwick, Mikhail Sahalayev
IS Institute
University of Salford
Salford
England
M5 4WT


Email: d.w.chadwick@salford.ac.uk
       M.Sahalayev@pgr.salford.ac.uk



        16. Changes


Changes since version 00.


1. An alternative name form for revoked certificate entries has been added for
those LDAP servers that don't support multiple valued RDNs.
2. Name forms for delta CRL entries and authority revocation list entries have
been added
3. x509CRL object class has been changed to ABSTRACT and three new STRUCTURAL
object classes have been added for CRLs, ARLs and delta CRLs.
4. Corrected some OID assignments
5. Minor editorial corrections


Changes since version 01


1. The object class structure has been re-vamped and x509base has been
transferred to the certificate schema ID [7]
2. Minor editorial corrections
3. Changed from Standards Track to Informational after discussions with area and
WP leaders.
4. Inserted IANA considerations section and Acknowledgement section