Revert "s3:smbd: set req->smb2req->compat_chain_fsp in file_fsp()"
[Samba.git] / source4 / ldap_server / devdocs / rfc4523.txt
blobd2589811c78d3f686210651b709c158c2e1761b4
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
16 Status of This Memo
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.
24 Copyright Notice
26    Copyright (C) The Internet Society (2006).
28    Abstract
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.
36 1.  Introduction
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.
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
70          matching rules.
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)
81    for readability.
83 2.  Syntaxes
85    This section describes various syntaxes used in LDAP to transfer
86    certificates and related data types.
88 2.1.  Certificate
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
103    presented.
105 2.2.  CertificateList
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
110    7.3].
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
128    presented.
130 2.3.  CertificatePair
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
135    11.2.3].
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
146    presented.
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
154    11.2.7].
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
196       ( 1.3.6.1.1.15.3
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
215       ( 1.3.6.1.1.15.5
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
221    this syntax.
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
248    syntax.
250 3.  Matching Rules
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 )
353 4.  Attribute Types
355    This section details a set of certificate and related attribute types
356    for use in LDAP.
358 4.1.  userCertificate
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".
373 4.2.  cACertificate
375    The cACertificate attribute holds the X.509 certificates issued to
376    the certificate authority (CA), as discussed in clause 11.2.2 of
377    [X.509].
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".
483 5.  Object Classes
485    This section details a set of certificate-related object classes for
486    use in LDAP.
488 5.1.  pkiUser
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'
495            SUP top AUXILIARY
496            MAY userCertificate )
506 Zeilenga                    Standards Track                     [Page 9]
508 RFC 4523                   LDAP X.509 Schema                   June 2006
511 5.2.  pkiCA
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'
518            SUP top AUXILIARY
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'
529            SUP top STRUCTURAL
530            MUST cn
531            MAY ( certificateRevocationList $
532                 authorityRevocationList $ deltaRevocationList ) )
534 5.4.  deltaCRL
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'
541            SUP top AUXILIARY
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
549    pkiUser.
551       ( 2.5.6.15 NAME 'strongAuthenticationUser'
552            DESC 'X.521 strong authentication user'
553            SUP top AUXILIARY
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
571    [X.521].
573       ( 2.5.6.18 NAME 'userSecurityInformation'
574            DESC 'X.521 user security information'
575            SUP top AUXILIARY
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'
586            SUP top AUXILIARY
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
625    [RFC4513][RFC4511].
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
639       Comments:
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>
653       Usage: see table
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 *
681       pkiCA                        O 2.5.6.22 *
682       pkiUser                      O 2.5.6.21 *
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
690 8.  Acknowledgements
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.
699 9.  References
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
711               2006.
713    [RFC4512]  Zeilenga, K., "Lightweight Directory Access Protocol
714               (LDAP): Directory Information Models", RFC 4512, June
715               2006.
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
752               1998.
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,
757               April 2002.
759    [RFC3494]  Zeilenga, K., "Lightweight Directory Access Protocol
760               version 2 (LDAPv2) to Historic Status", RFC 3494, March
761               2003.
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",
774               RFC 4513, June 2006.
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
791 Appendix A.
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 ","
803         sp cea-issuer sp "}"
805    cea-serialNumber = id-serialNumber msp CertificateSerialNumber
806    cea-issuer = id-issuer msp Name
808    id-serialNumber =
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 ]
820      [ sep sp ca-issuer ]
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 ]
828      [ sep sp ca-policy ]
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
836      SubjectKeyIdentifier
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
850      OBJECT-IDENTIFIER
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
865      ; 'certificateValid'
866 id-privateKeyValid = %x70.72.69.76.61.74.65.4B.65.79.56.61.6C.69.64
867      ; 'privateKeyValid'
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
873      ; 'subjectAltName'
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
878      ; 'nameConstraints'
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
893      / gn-rfc822Name
894      / gn-dNSName
898 Zeilenga                    Standards Track                    [Page 16]
900 RFC 4523                   LDAP X.509 Schema                   June 2006
903      / gn-x400Address
904      / gn-directoryName
905      / gn-ediPartyName
906      / gn-uniformResourceIdentifier
907      / gn-iPAddress
908      / gn-registeredID
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
920      ":" IA5String
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
924      ; 'registeredID'
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
944 ;; double quotes.
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
950      ; 'nameAssigner'
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
965      ; 'keyIdentifier'
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
979      ; 'generalizedTime'
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
988      / id-nonRepudiation
989      / id-keyEncipherment
990      / id-dataEncipherment
991      / id-keyAgreement
992      / id-keyCertSign
993      / id-cRLSign
994      / id-encipherOnly
995      / id-decipherOnly
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
1000      ; 'nonRepudiation'
1001 id-keyEncipherment  = %x6B.65.79.45.6E.63.69.70.68.65.72.6D.65.6E.74
1002      ; 'keyEncipherment'
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
1006      ; 'keyAgreement'
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
1016      ; 'keyCertSign'
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
1019      ; 'encipherOnly'
1020 id-decipherOnly     = %x64.65.63.69.70.68.65.72.4F.6E.6C.79
1021      ; 'decipherOnly'
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
1029      ; 'builtinNameForm'
1030 id-otherNameForm   = %x6F.74.68.65.72.4E.61.6D.65.46.6F.72.6D
1031      ; 'otherNameForm'
1033 BuiltinNameForm  = id-rfc822Name
1034      / id-dNSName
1035      / id-x400Address
1036      / id-directoryName
1037      / id-ediPartyName
1038      / id-uniformResourceIdentifier
1039      / id-iPAddress
1040      / id-registeredId
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
1046      ; 'directoryName'
1047 id-ediPartyName  = %x65.64.69.50.61.72.74.79.4E.61.6D.65
1048      ; 'ediPartyName'
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
1051      ; 'registeredId'
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 ","
1139         sp clea-thisUpdate
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
1193         ; 'minCRLNumber'
1194    id-maxCRLNumber = %x6D.61.78.43.52.4C.4E.75.6D.62.65.72
1195         ; 'maxCRLNumber'
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
1205         / id-keyCompromise
1206         / id-cACompromise
1207         / id-affiliationChanged
1208         / id-superseded
1209         / id-cessationOfOperation
1210         / id-certificateHold
1211         / id-privilegeWithdrawn
1212         / id-aACompromise
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
1216         ; 'keyCompromise'
1217    id-cACompromise = %x63.41.43.6F.6D.70.72.6F.6D.69.73.65
1218         ; 'cACompromise'
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
1227         ; 'certificateHold'
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
1240         ; 'aACompromise'
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'
1252 Author's Address
1254    Kurt D. Zeilenga
1255    OpenLDAP Foundation
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
1333    ietf-ipr@ietf.org.
1335 Acknowledgement
1337    Funding for the RFC Editor function is provided by the IETF
1338    Administrative Support Activity (IASA).
1346 Zeilenga                    Standards Track                    [Page 24]