draft-ietf-lamps-cmp-updates-12.txt | draft-ietf-lamps-cmp-updates-13.txt | |||
---|---|---|---|---|
LAMPS Working Group H. Brockhaus | LAMPS Working Group H. Brockhaus, Ed. | |||
Internet-Draft D. von Oheimb | Internet-Draft D. von Oheimb | |||
Updates: 4210, 5912, 6712 (if approved) Siemens | Updates: 4210, 5912, 6712 (if approved) Siemens | |||
Intended status: Standards Track 9 July 2021 | Intended status: Standards Track J. Gray | |||
Expires: 10 January 2022 | Expires: 28 April 2022 Entrust | |||
25 October 2021 | ||||
Certificate Management Protocol (CMP) Updates | Certificate Management Protocol (CMP) Updates | |||
draft-ietf-lamps-cmp-updates-12 | draft-ietf-lamps-cmp-updates-13 | |||
Abstract | Abstract | |||
This document contains a set of updates to the syntax and transport | This document contains a set of updates to the syntax and transfer of | |||
of Certificate Management Protocol (CMP) version 2. This document | Certificate Management Protocol (CMP) version 2. This document | |||
updates RFC 4210 and RFC 6712. | updates RFC 4210, RFC 5912, and RFC 6712. | |||
The aspects of CMP updated in this document are using EnvelopedData | The aspects of CMP updated in this document are using EnvelopedData | |||
instead of EncryptedValue, clarifying the handling of p10cr messages, | instead of EncryptedValue, clarifying the handling of p10cr messages, | |||
improving the crypto agility, as well as adding new general message | improving the crypto agility, as well as adding new general message | |||
types, extended key usages to identify certificates for use with CMP, | types, extended key usages to identify certificates for use with CMP, | |||
and '.well-known' HTTP path segments. | and '.well-known' HTTP path segments. | |||
To properly differentiate the support of EnvelopedData instead of | To properly differentiate the support of EnvelopedData instead of | |||
EncryptedValue, the CMP version 3 is introduced in case a transaction | EncryptedValue, the CMP version 3 is introduced in case a transaction | |||
is supposed to use EnvelopedData. | is supposed to use EnvelopedData. | |||
skipping to change at page 1, line 48 ¶ | skipping to change at page 1, line 49 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 10 January 2022. | This Internet-Draft will expire on 28 April 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Convention and Terminology . . . . . . . . . . . . . . . 3 | 1.1. Convention and Terminology . . . . . . . . . . . . . . . 4 | |||
2. Updates to RFC 4210 - Certificate Management Protocol | 2. Updates to RFC 4210 - Certificate Management Protocol | |||
(CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. New Section 1.1. - Changes since RFC 4210 . . . . . . . . 4 | 2.1. New Section 1.1. - Changes since RFC 4210 . . . . . . . . 4 | |||
2.2. New Section 4.5 - Extended Key Usage . . . . . . . . . . 5 | 2.2. New Section 4.5 - Extended Key Usage . . . . . . . . . . 5 | |||
2.3. Update Section 5.1.1. - PKI Message Header . . . . . . . 7 | 2.3. Update Section 5.1.1. - PKI Message Header . . . . . . . 7 | |||
2.4. New Section 5.1.1.3. - RootCaCert . . . . . . . . . . . . 7 | 2.4. New Section 5.1.1.4. - CertProfile . . . . . . . . . . . 7 | |||
2.5. New Section 5.1.1.4. - CertProfile . . . . . . . . . . . 8 | 2.5. Update Section 5.1.3.1. - Shared Secret Information . . . 8 | |||
2.6. Update Section 5.1.3.1. - Shared Secret Information . . . 8 | 2.6. Replace Section 5.1.3.4 - Multiple Protection . . . . . . 8 | |||
2.7. Replace Section 5.1.3.4 - Multiple Protection . . . . . . 8 | 2.7. Replace Section 5.2.2. - Encrypted Values . . . . . . . . 9 | |||
2.8. Replace Section 5.2.2. - Encrypted Values . . . . . . . . 9 | 2.8. Update Section 5.3.4. - Certification Response . . . . . 11 | |||
2.9. Update Section 5.3.4. - Certification Response . . . . . 11 | 2.9. Update Section 5.3.18. - Certificate Confirmation | |||
2.10. Update Section 5.3.18. - Certificate Confirmation | ||||
Content . . . . . . . . . . . . . . . . . . . . . . . . 12 | Content . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
2.11. Update Section 5.3.19.2. - Signing Key Pair Types . . . . 12 | 2.10. Update Section 5.3.19.2. - Signing Key Pair Types . . . . 13 | |||
2.12. Update Section 5.3.19.3. - Encryption/Key Agreement Key | 2.11. Update Section 5.3.19.3. - Encryption/Key Agreement Key | |||
Pair Types . . . . . . . . . . . . . . . . . . . . . . . 13 | Pair Types . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
2.13. Replace Section 5.3.19.9. - Revocation Passphrase . . . . 13 | 2.12. Replace Section 5.3.19.9. - Revocation Passphrase . . . . 13 | |||
2.14. New Section 5.3.19.14 - CA Certificates . . . . . . . . . 13 | 2.13. New Section 5.3.19.14 - CA Certificates . . . . . . . . . 14 | |||
2.15. New Section 5.3.19.15 - Root CA Certificate Update . . . 14 | 2.14. New Section 5.3.19.15 - Root CA Certificate Update . . . 14 | |||
2.16. New Section 5.3.19.16 - Certificate Request Template . . 14 | 2.15. New Section 5.3.19.16 - Certificate Request Template . . 15 | |||
2.17. Update Section 5.3.22 - Polling Request and Response . . 16 | 2.16. New Section 5.3.19.17 - CRL update retrieval . . . . . . 17 | |||
2.18. Update Section 7 - Version Negotiation . . . . . . . . . 16 | 2.17. Update Section 5.3.21 - Error Message Content . . . . . . 17 | |||
2.19. Update Section 7.1.1. - Clients Talking to RFC 2510 | 2.18. Replace Section 5.3.22 - Polling Request and Response . . 18 | |||
Servers . . . . . . . . . . . . . . . . . . . . . . . . 17 | 2.19. Update Section 7 - Version Negotiation . . . . . . . . . 23 | |||
2.20. Update Section 9 - IANA Considerations . . . . . . . . . 17 | 2.20. Update Section 7.1.1. - Clients Talking to RFC 2510 | |||
2.21. Update Appendix B - The Use of Revocation Passphrase . . 19 | Servers . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
2.22. Update Appendix C - Request Message Behavioral | 2.21. Add Section 8.4 - Private keys for certificate signing and | |||
Clarifications . . . . . . . . . . . . . . . . . . . . . 20 | CMP message protection . . . . . . . . . . . . . . . . . 25 | |||
2.23. Update Appendix D.1. - General Rules for Interpretation of | 2.22. Add Section 8.5 - Entropy of random numbers, key pairs, and | |||
These Profiles . . . . . . . . . . . . . . . . . . . . . 20 | shared secret information . . . . . . . . . . . . . . . 25 | |||
2.24. Update Appendix D.2. - Algorithm Use Profile . . . . . . 21 | 2.23. Add Section 8.6 - Trust anchor provisioning using | |||
2.25. Update Appendix D.4. - Initial Registration/Certification | caPubs . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
(Basic Authenticated Scheme) . . . . . . . . . . . . . . 21 | 2.24. Update Section 9 - IANA Considerations . . . . . . . . . 26 | |||
2.25. Update Appendix B - The Use of Revocation Passphrase . . 28 | ||||
2.26. Update Appendix C - Request Message Behavioral | ||||
Clarifications . . . . . . . . . . . . . . . . . . . . . 29 | ||||
2.27. Update Appendix D.1. - General Rules for Interpretation of | ||||
These Profiles . . . . . . . . . . . . . . . . . . . . . 30 | ||||
2.28. Update Appendix D.2. - Algorithm Use Profile . . . . . . 31 | ||||
2.29. Update Appendix D.4. - Initial Registration/Certification | ||||
(Basic Authenticated Scheme) . . . . . . . . . . . . . . 31 | ||||
3. Updates to RFC 6712 - HTTP Transfer for the Certificate | 3. Updates to RFC 6712 - HTTP Transfer for the Certificate | |||
Management Protocol (CMP) . . . . . . . . . . . . . . . . 21 | Management Protocol (CMP) . . . . . . . . . . . . . . . . 31 | |||
3.1. New Section 1.1. - Changes since RFC 6712 . . . . . . . . 21 | 3.1. Update Section 1. - Introduction . . . . . . . . . . . . 31 | |||
3.2. Replace Section 3.6. - HTTP Request-URI . . . . . . . . . 22 | 3.2. New Section 1.1. - Changes since RFC 6712 . . . . . . . . 32 | |||
3.3. Update Section 6. - IANA Considerations . . . . . . . . . 22 | 3.3. Replace Section 3.6. - HTTP Request-URI . . . . . . . . . 32 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 3.4. Update Section 6. - IANA Considerations . . . . . . . . . 33 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 | |||
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 23 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 25 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 34 | |||
Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 26 | 7.2. Informative References . . . . . . . . . . . . . . . . . 36 | |||
A.1. 1988 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 26 | Appendix A. ASN.1 Modules . . . . . . . . . . . . . . . . . . . 37 | |||
A.2. 2002 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 39 | A.1. 1988 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 37 | |||
Appendix B. History of changes . . . . . . . . . . . . . . . . . 51 | A.2. 2002 ASN.1 Module . . . . . . . . . . . . . . . . . . . . 50 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55 | Appendix B. History of changes . . . . . . . . . . . . . . . . . 64 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 69 | ||||
1. Introduction | 1. Introduction | |||
While using CMP [RFC4210] in industrial and IoT environments and | While using CMP [RFC4210] in industrial and IoT environments and | |||
developing the Lightweight CMP Profile | developing the Lightweight CMP Profile | |||
[I-D.ietf-lamps-lightweight-cmp-profile] some limitations were | [I-D.ietf-lamps-lightweight-cmp-profile] some limitations were | |||
identified in the original CMP specification. This document updates | identified in the original CMP specification. This document updates | |||
RFC 4210 [RFC4210] and RFC 6712 [RFC6712] to overcome these | RFC 4210 [RFC4210] and RFC 6712 [RFC6712] to overcome these | |||
limitations. | limitations. | |||
skipping to change at page 5, line 26 ¶ | skipping to change at page 5, line 26 ¶ | |||
properly differentiate the support of EnvelopedData instead of | properly differentiate the support of EnvelopedData instead of | |||
EncryptedValue, the CMP version 3 is introduced in case a | EncryptedValue, the CMP version 3 is introduced in case a | |||
transaction is supposed to use EnvelopedData. | transaction is supposed to use EnvelopedData. | |||
* Offering an optional hashAlg field in CertStatus supporting | * Offering an optional hashAlg field in CertStatus supporting | |||
confirmation of certificates signed with signature algorithms, | confirmation of certificates signed with signature algorithms, | |||
e.g., EdDSA, not directly indicating a specific hash algorithm to | e.g., EdDSA, not directly indicating a specific hash algorithm to | |||
use to compute the certHash. | use to compute the certHash. | |||
* Adding new general message types to request CA certificates, a | * Adding new general message types to request CA certificates, a | |||
root CA update, or a certificate request template. | root CA update, a certificate request template, or a CRL update. | |||
* Extend the usage of polling to p10cr messages. | * Extend the usage of polling to p10cr, certConf, rr, genm, and | |||
error messages. | ||||
* Delete the mandatory algorithm profile in RFC 4210 Appendix D.2 | * Delete the mandatory algorithm profile in RFC 4210 Appendix D.2 | |||
[RFC4210] and refer to CMP Algorithms Section 7 | [RFC4210] and refer to CMP Algorithms Section 7 | |||
[I-D.ietf-lamps-cmp-algorithms]. | [I-D.ietf-lamps-cmp-algorithms]. | |||
2.2. New Section 4.5 - Extended Key Usage | 2.2. New Section 4.5 - Extended Key Usage | |||
The following subsection introduces a new extended key usage for CMP | The following subsection introduces a new extended key usage for CMP | |||
servers authorized to centrally generate key pairs on behalf of end | servers authorized to centrally generate key pairs on behalf of end | |||
entities. | entities. | |||
skipping to change at page 7, line 9 ¶ | skipping to change at page 7, line 13 ¶ | |||
specified in IEEE 802.1AR Section 8.5 [IEEE.802.1AR_2018] and | specified in IEEE 802.1AR Section 8.5 [IEEE.802.1AR_2018] and | |||
RFC 5280 Section 4.1.2.5 [RFC5280]). Such validity periods SHOULD | RFC 5280 Section 4.1.2.5 [RFC5280]). Such validity periods SHOULD | |||
NOT be used for protection of CMP messages and key generation. | NOT be used for protection of CMP messages and key generation. | |||
Certificates containing one of the above EKUs SHOULD NOT use | Certificates containing one of the above EKUs SHOULD NOT use | |||
indefinite expiration date. | indefinite expiration date. | |||
2.3. Update Section 5.1.1. - PKI Message Header | 2.3. Update Section 5.1.1. - PKI Message Header | |||
Section 5.1.1 of RFC 4210 [RFC4210] describes the PKI message header. | Section 5.1.1 of RFC 4210 [RFC4210] describes the PKI message header. | |||
This document introduces the new version 3 indicating support of | This document introduces the new version 3 indicating support of | |||
EnvelopedData as specified in Section 2.8. | EnvelopedData as specified in Section 2.7. | |||
Replace the ASN.1 Syntax of PKIHeader and the subsequent description | Replace the ASN.1 Syntax of PKIHeader and the subsequent description | |||
of pvno with the following text: | of pvno with the following text: | |||
PKIHeader ::= SEQUENCE { | PKIHeader ::= SEQUENCE { | |||
pvno INTEGER { cmp1999(1), cmp2000(2), | pvno INTEGER { cmp1999(1), cmp2000(2), | |||
cmp2021(3) }, | cmp2021(3) }, | |||
sender GeneralName, | sender GeneralName, | |||
recipient GeneralName, | recipient GeneralName, | |||
messageTime [0] GeneralizedTime OPTIONAL, | messageTime [0] GeneralizedTime OPTIONAL, | |||
protectionAlg [1] AlgorithmIdentifier OPTIONAL, | protectionAlg [1] AlgorithmIdentifier{ALGORITHM, {...}} | |||
OPTIONAL, | ||||
senderKID [2] KeyIdentifier OPTIONAL, | senderKID [2] KeyIdentifier OPTIONAL, | |||
recipKID [3] KeyIdentifier OPTIONAL, | recipKID [3] KeyIdentifier OPTIONAL, | |||
transactionID [4] OCTET STRING OPTIONAL, | transactionID [4] OCTET STRING OPTIONAL, | |||
senderNonce [5] OCTET STRING OPTIONAL, | senderNonce [5] OCTET STRING OPTIONAL, | |||
recipNonce [6] OCTET STRING OPTIONAL, | recipNonce [6] OCTET STRING OPTIONAL, | |||
freeText [7] PKIFreeText OPTIONAL, | freeText [7] PKIFreeText OPTIONAL, | |||
generalInfo [8] SEQUENCE SIZE (1..MAX) OF | generalInfo [8] SEQUENCE SIZE (1..MAX) OF | |||
InfoTypeAndValue OPTIONAL | InfoTypeAndValue OPTIONAL | |||
} | } | |||
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | |||
The usage of pvno values is described in Section 7. | The usage of pvno values is described in Section 7. | |||
2.4. New Section 5.1.1.3. - RootCaCert | 2.4. New Section 5.1.1.4. - CertProfile | |||
Section 5.1.1 of RFC 4210 [RFC4210] defines the PKIHeader and id-it | ||||
OIDs to be used in the generalInfo field. This section introduces | ||||
id-it-rootCaCert. | ||||
Insert this section after Section 5.1.1.2: | ||||
5.1.1.3. RootCaCert | ||||
This is used by the EE to indicate a specific root CA certificate, | ||||
e.g., when requesting a root CA certificate update, see | ||||
Section 5.3.19.15. | ||||
id-it-rootCaCert OBJECT IDENTIFIER ::= {id-it 20} | ||||
RootCaCertValue ::= CMPCertificate | ||||
2.5. New Section 5.1.1.4. - CertProfile | ||||
Section 5.1.1 of RFC 4210 [RFC4210] defines the PKIHeader and id-it | Section 5.1.1 of RFC 4210 [RFC4210] defines the PKIHeader and id-it | |||
OIDs to be used in the generalInfo field. This section introduces | OIDs to be used in the generalInfo field. This section introduces | |||
id-it-certProfile. | id-it-certProfile. | |||
Insert this section after Section 5.1.1.3: | Insert this section after Section 5.1.1.3: | |||
5.1.1.4. CertProfile | 5.1.1.4. CertProfile | |||
This is used by the EE to indicate specific certificate profiles, | This is used by the EE to indicate specific certificate profiles, | |||
e.g., when requesting a new certificate or a certificate request | e.g., when requesting a new certificate or a certificate request | |||
template, see Section 5.3.19.16. | template, see Section 5.3.19.16. | |||
id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | |||
CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF UTF8String | CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF UTF8String | |||
When used in a ir/cr/kur/genm, the value MUST NOT contain more | < TBD: The authors would prefer re-ordering the newly requested OIDs, | |||
if possible. See also IANA Consideration. | ||||
+---------+-------------------------+------------+ | ||||
| 20 | id-it-certProfile | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
When used in an ir/cr/kur/genm, the value MUST NOT contain more | ||||
elements than the number of CertReqMsg or InfoTypeAndValue elements | elements than the number of CertReqMsg or InfoTypeAndValue elements | |||
and the certificate profile names refer to the elements in the given | and the certificate profile names refer to the elements in the given | |||
order. | order. | |||
When used in a p10cr, the value MUST NOT contain multiple certificate | When used in a p10cr, the value MUST NOT contain multiple certificate | |||
profile names. | profile names. | |||
2.6. Update Section 5.1.3.1. - Shared Secret Information | 2.5. Update Section 5.1.3.1. - Shared Secret Information | |||
Section 5.1.3.1 of RFC 4210 [RFC4210] describes the MAC based | Section 5.1.3.1 of RFC 4210 [RFC4210] describes the MAC based | |||
protection of a PKIMessage using the algorithm id-PasswordBasedMac. | protection of a PKIMessage using the algorithm id-PasswordBasedMac. | |||
Replace the first paragraph with the following text: | Replace the first paragraph with the following text: | |||
In this case, the sender and recipient share secret information with | In this case, the sender and recipient share secret information with | |||
sufficient entropy (established via out-of-band means or from a | sufficient entropy (established via out-of-band means or from a | |||
previous PKI management operation). PKIProtection will contain a MAC | previous PKI management operation). PKIProtection will contain a MAC | |||
value and the protectionAlg MAY be one of the options described in | value and the protectionAlg MAY be one of the options described in | |||
CMP Algorithms [I-D.ietf-lamps-cmp-algorithms]. The PasswordBasedMac | CMP Algorithms [I-D.ietf-lamps-cmp-algorithms]. The PasswordBasedMac | |||
is specified as follows (see also [RFC4211] and [RFC9045]): | is specified as follows (see also [RFC4211] and [RFC9045]): | |||
2.7. Replace Section 5.1.3.4 - Multiple Protection | Replace the last paragraph with the following text (Note: This fixes | |||
Errata ID 2616): | ||||
Note: It is RECOMMENDED that the fields of PBMParameter remain | ||||
constant throughout the messages of a single transaction (e.g., | ||||
ir/ip/certConf/pkiConf) to reduce the overhead associated with | ||||
PasswordBasedMac computation. | ||||
2.6. Replace Section 5.1.3.4 - Multiple Protection | ||||
Section 5.1.3.4 of RFC 4210 [RFC4210] describes the nested message. | Section 5.1.3.4 of RFC 4210 [RFC4210] describes the nested message. | |||
This document enables using nested messages also for batch transport | This document enables using nested messages also for batch-delivery | |||
of PKI messages between PKI management entities and with mixed body | transport of PKI messages between PKI management entities and with | |||
types. | mixed body types. | |||
Replace the text of the section with the following text: | Replace the text of the section with the following text: | |||
5.1.3.4. Multiple Protection | 5.1.3.4. Multiple Protection | |||
When receiving a protected PKI message, a PKI management entity such | When receiving a protected PKI message, a PKI management entity such | |||
as an RA MAY forward that message adding its own protection (which | as an RA MAY forward that message adding its own protection (which | |||
MAY be a MAC or a signature, depending on the information and | MAY be a MAC or a signature, depending on the information and | |||
certificates shared between the RA and the CA). Moreover, multiple | certificates shared between the RA and the CA). Moreover, multiple | |||
PKI messages MAY be aggregated. There are several use cases for such | PKI messages MAY be aggregated. There are several use cases for such | |||
skipping to change at page 9, line 44 ¶ | skipping to change at page 9, line 42 ¶ | |||
the CA request messages and in communication from the CA response | the CA request messages and in communication from the CA response | |||
or announcement messages will be collected. This can for instance | or announcement messages will be collected. This can for instance | |||
be used when bridging an off-line connection between two PKI | be used when bridging an off-line connection between two PKI | |||
management entities. | management entities. | |||
These use cases are accomplished by nesting the messages within a new | These use cases are accomplished by nesting the messages within a new | |||
PKI message. The structure used is as follows: | PKI message. The structure used is as follows: | |||
NestedMessageContent ::= PKIMessages | NestedMessageContent ::= PKIMessages | |||
2.8. Replace Section 5.2.2. - Encrypted Values | 2.7. Replace Section 5.2.2. - Encrypted Values | |||
Section 5.2.2 of RFC 4210 [RFC4210] describes the use of | Section 5.2.2 of RFC 4210 [RFC4210] describes the use of | |||
EncryptedValue to transport encrypted data. This document extends | EncryptedValue to transport encrypted data. This document extends | |||
the encryption of data to preferably use EnvelopedData. | the encryption of data to preferably use EnvelopedData. | |||
Replace the text of the section with the following text: | Replace the text of the section with the following text: | |||
5.2.2. Encrypted Values | 5.2.2. Encrypted Values | |||
Where encrypted data (in this specification, private keys, | Where encrypted data (in this specification, private keys, | |||
certificates, or revocation passphrase) are sent in PKI messages, the | certificates, or revocation passphrase) are sent in PKI messages, the | |||
EncryptedKey data structure is used. | EncryptedKey data structure is used. | |||
EncryptedKey ::= CHOICE { | EncryptedKey ::= CHOICE { | |||
encryptedValue EncryptedValue, -- deprecated | encryptedValue EncryptedValue, -- deprecated | |||
envelopedData [0] EnvelopedData } | envelopedData [0] EnvelopedData } | |||
See CRMF [RFC4211] for EncryptedKey and EncryptedValue syntax and CMS | See CRMF [RFC4211] for EncryptedKey and EncryptedValue syntax and CMS | |||
[RFC5652] for EnvelopedData syntax. Using the EncryptedKey data | [RFC5652] for EnvelopedData syntax. Using the EncryptedKey data | |||
skipping to change at page 10, line 39 ¶ | skipping to change at page 10, line 44 ¶ | |||
The EncryptedKey data structure is used in CMP to transport a private | The EncryptedKey data structure is used in CMP to transport a private | |||
key, certificate, or revocation passphrase in encrypted form. | key, certificate, or revocation passphrase in encrypted form. | |||
EnvelopedData is used as follows: | EnvelopedData is used as follows: | |||
* It contains only one RecipientInfo structure because the content | * It contains only one RecipientInfo structure because the content | |||
is encrypted only for one recipient. | is encrypted only for one recipient. | |||
* It may contain a private key in the AsymmetricKeyPackage structure | * It may contain a private key in the AsymmetricKeyPackage structure | |||
as defined in RFC 5958 [RFC5958] wrapped in a SignedData structure | as defined in RFC 5958 [RFC5958] wrapped in a SignedData structure | |||
as specified in CMS section 5 [RFC5652] signed by the Key | as specified in CMS section 5 [RFC5652] and [RFC8933] signed by | |||
Generation Authority. | the Key Generation Authority. | |||
* It may contain a certificate or revocation passphrase directly in | * It may contain a certificate or revocation passphrase directly in | |||
the encryptedContent field. | the encryptedContent field. | |||
The content of the EnvelopedData structure, as specified in CMS | The content of the EnvelopedData structure, as specified in CMS | |||
section 6 [RFC5652], MUST be encrypted using a newly generated | section 6 [RFC5652], MUST be encrypted using a newly generated | |||
symmetric content-encryption key. This content-encryption key MUST | symmetric content-encryption key. This content-encryption key MUST | |||
be securely provided to the recipient using one of three key | be securely provided to the recipient using one of three key | |||
management techniques. | management techniques. | |||
skipping to change at page 11, line 23 ¶ | skipping to change at page 11, line 29 ¶ | |||
* Recipient's certificate that contains a key usage extension | * Recipient's certificate that contains a key usage extension | |||
asserting keyEncipherment: The content-encryption key will be | asserting keyEncipherment: The content-encryption key will be | |||
protected using the key transport key management technique, as | protected using the key transport key management technique, as | |||
specified in CMS section 6.2.1 [RFC5652]. | specified in CMS section 6.2.1 [RFC5652]. | |||
* A password or shared secret: The content-encryption key will be | * A password or shared secret: The content-encryption key will be | |||
protected using the password-based key management technique, as | protected using the password-based key management technique, as | |||
specified in CMS section 6.2.4 [RFC5652]. | specified in CMS section 6.2.4 [RFC5652]. | |||
2.9. Update Section 5.3.4. - Certification Response | 2.8. Update Section 5.3.4. - Certification Response | |||
Section 5.3.4 of RFC 4210 [RFC4210] describes the Certification | Section 5.3.4 of RFC 4210 [RFC4210] describes the Certification | |||
Response. This document updates the syntax by using the parent | Response. This document updates the syntax by using the parent | |||
structure EncryptedKey instead of EncryptedValue as described in | structure EncryptedKey instead of EncryptedValue as described in | |||
Section 2.8 above. Moreover, it clarifies the certReqId to be used | Section 2.7 above. Moreover, it clarifies the certReqId to be used | |||
in response to a p10cr message. | in response to a p10cr message. | |||
Replace the ASN.1 syntax of CertifiedKeyPair and CertOrEncCert with | Replace the ASN.1 syntax with the following text (Note: This also | |||
the following text: | fixes Errata ID 3949 and 4078): | |||
CertRepMessage ::= SEQUENCE { | ||||
caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | ||||
OPTIONAL, | ||||
response SEQUENCE OF CertResponse | ||||
} | ||||
CertResponse ::= SEQUENCE { | ||||
certReqId INTEGER, | ||||
status PKIStatusInfo, | ||||
certifiedKeyPair CertifiedKeyPair OPTIONAL, | ||||
rspInfo OCTET STRING OPTIONAL | ||||
-- analogous to the id-regInfo-utf8Pairs string defined | ||||
-- for regInfo in CertReqMsg [CRMF] | ||||
} | ||||
CertifiedKeyPair ::= SEQUENCE { | CertifiedKeyPair ::= SEQUENCE { | |||
certOrEncCert CertOrEncCert, | certOrEncCert CertOrEncCert, | |||
privateKey [0] EncryptedKey OPTIONAL, | privateKey [0] EncryptedKey OPTIONAL, | |||
-- see [CRMF] for comment on encoding | -- see [CRMF] for comment on encoding | |||
publicationInfo [1] PKIPublicationInfo OPTIONAL | publicationInfo [1] PKIPublicationInfo OPTIONAL | |||
} | } | |||
CertOrEncCert ::= CHOICE { | CertOrEncCert ::= CHOICE { | |||
certificate [0] Certificate, | certificate [0] CMPCertificate, | |||
encryptedCert [1] EncryptedKey | encryptedCert [1] EncryptedKey | |||
} | } | |||
Add the following as a new paragraph right after the ASN.1 syntax: | Add the following as a new paragraph right after the ASN.1 syntax: | |||
A p10cr message contains exactly one CertificationRequestInfo data | A p10cr message contains exactly one CertificationRequestInfo data | |||
structure as specified in PKCS#10 [RFC2986] but no certReqId. | structure as specified in PKCS#10 [RFC2986] but no certReqId. | |||
Therefore, the certReqId in the corresponding certification response | Therefore, the certReqId in the corresponding certification response | |||
(cp) message MUST be set to 0. | (cp) message MUST be set to -1. | |||
Add the following as new paragraphs to the end of the section: | Add the following as new paragraphs to the end of the section: | |||
The use of EncryptedKey is described in Section 5.2.2. | The use of EncryptedKey is described in Section 5.2.2. | |||
Note: To indicate support for EnvelopedData the pvno cmp2021 is | Note: To indicate support for EnvelopedData the pvno cmp2021 is | |||
introduced by this document. Details on the usage of different pvno | introduced by this document. Details on the usage of different pvno | |||
values are described in Section 7. | values are described in Section 7. | |||
2.10. Update Section 5.3.18. - Certificate Confirmation Content | 2.9. Update Section 5.3.18. - Certificate Confirmation Content | |||
This section introduces an optional hashAlg field to the CertStatus | This section introduces an optional hashAlg field to the CertStatus | |||
type used in certConf messages to explicitly specify the hash | type used in certConf messages to explicitly specify the hash | |||
algorithm for those certificates where no hash algorithm is specified | algorithm for those certificates where no hash algorithm is specified | |||
in the signatureAlgorithm field. | in the signatureAlgorithm field. | |||
Replace the ASN.1 Syntax of CertStatus with the following text: | Replace the ASN.1 Syntax of CertStatus with the following text: | |||
CertStatus ::= SEQUENCE { | CertStatus ::= SEQUENCE { | |||
hashAlg [0] AlgorithmIdentifier OPTIONAL, | ||||
certHash OCTET STRING, | certHash OCTET STRING, | |||
certReqId INTEGER, | certReqId INTEGER, | |||
statusInfo PKIStatusInfo OPTIONAL | statusInfo PKIStatusInfo OPTIONAL, | |||
hashAlg [0] AlgorithmIdentifier{DIGEST-ALGORITHM, {...}} | ||||
OPTIONAL | ||||
} | } | |||
The hashAlg field SHOULD be used only in exceptional cases where the | The hashAlg field SHOULD be used only in exceptional cases where the | |||
signatureAlgorithm of the certificate to be confirmed does not | signatureAlgorithm of the certificate to be confirmed does not | |||
specify a hash algorithm, neither in the OID nor in the parameters. | specify a hash algorithm, neither in the OID nor in the parameters. | |||
In such cases, e.g., for EdDSA, the hashAlg MUST be used to specify | In such cases, e.g., for EdDSA, the hashAlg MUST be used to specify | |||
the hash algorithm to be used for calculating the certHash value. | the hash algorithm to be used for calculating the certHash value. | |||
Otherwise, the certHash value SHALL be computed using the same hash | Otherwise, the certHash value SHALL be computed using the same hash | |||
algorithm as used to create and verify the certificate signature. If | algorithm as used to create and verify the certificate signature. If | |||
hashAlg is used, the CMP version indicated by the certConf message | hashAlg is used, the CMP version indicated by the certConf message | |||
header must be cmp2021(3). | header must be cmp2021(3). | |||
2.11. Update Section 5.3.19.2. - Signing Key Pair Types | 2.10. Update Section 5.3.19.2. - Signing Key Pair Types | |||
The following section clarifies the usage of the Signing Key Pair | The following section clarifies the usage of the Signing Key Pair | |||
Types on referencing EC curves. | Types on referencing EC curves. | |||
Insert this note at the end of Section 5.3.19.2: | Insert this note at the end of Section 5.3.19.2: | |||
Note: In case several EC curves are supported, several id-ecPublicKey | Note: In case several EC curves are supported, several id-ecPublicKey | |||
elements need to be given, one per named curve. | elements need to be given, one per named curve. | |||
2.12. Update Section 5.3.19.3. - Encryption/Key Agreement Key Pair | 2.11. Update Section 5.3.19.3. - Encryption/Key Agreement Key Pair | |||
Types | Types | |||
The following section clarifies the use of the Encryption/Key | The following section clarifies the use of the Encryption/Key | |||
Agreement Key Pair Types on referencing EC curves. | Agreement Key Pair Types on referencing EC curves. | |||
Insert this note at the end of Section 5.3.19.3: | Insert this note at the end of Section 5.3.19.3: | |||
Note: In case several EC curves are supported, several id-ecPublicKey | Note: In case several EC curves are supported, several id-ecPublicKey | |||
elements need to be given, one per named curve. | elements need to be given, one per named curve. | |||
2.13. Replace Section 5.3.19.9. - Revocation Passphrase | 2.12. Replace Section 5.3.19.9. - Revocation Passphrase | |||
Section 5.3.19.9 of RFC 4210 [RFC4210] describes the provisioning of | Section 5.3.19.9 of RFC 4210 [RFC4210] describes the provisioning of | |||
a revocation passphrase for authenticating a later revocation | a revocation passphrase for authenticating a later revocation | |||
request. This document updates the handling by using the parent | request. This document updates the handling by using the parent | |||
structure EncryptedKey instead of EncryptedValue to transport this | structure EncryptedKey instead of EncryptedValue to transport this | |||
information as described in Section 2.8 above. | information as described in Section 2.7 above. | |||
Replace the text of the section with the following text: | Replace the text of the section with the following text: | |||
5.3.19.9. Revocation Passphrase | 5.3.19.9. Revocation Passphrase | |||
This MAY be used by the EE to send a passphrase to a CA/RA for the | This MAY be used by the EE to send a passphrase to a CA/RA for the | |||
purpose of authenticating a later revocation request (in the case | purpose of authenticating a later revocation request (in the case | |||
that the appropriate signing private key is no longer available to | that the appropriate signing private key is no longer available to | |||
authenticate the request). See Appendix B for further details on the | authenticate the request). See Appendix B for further details on the | |||
use of this mechanism. | use of this mechanism. | |||
GenMsg: {id-it 12}, EncryptedKey | GenMsg: {id-it 12}, EncryptedKey | |||
GenRep: {id-it 12}, < absent > | GenRep: {id-it 12}, < absent > | |||
The use of EncryptedKey is described in Section 5.2.2. | The use of EncryptedKey is described in Section 5.2.2. | |||
2.14. New Section 5.3.19.14 - CA Certificates | 2.13. New Section 5.3.19.14 - CA Certificates | |||
The following subsection describes PKI general messages using id-it- | The following subsection describes PKI general messages using id-it- | |||
caCerts. The use is specified in Lightweight CMP Profile [I-D.ietf- | caCerts. The use is specified in Lightweight CMP Profile Section 4.3 | |||
lamps-lightweight-cmp-profile] Section 4.4. | [I-D.ietf-lamps-lightweight-cmp-profile]. | |||
Insert this section after Section 5.3.19.13: | Insert this section after Section 5.3.19.13: | |||
2.3.19.14 CA Certificates | 2.3.19.14 CA Certificates | |||
This MAY be used by the client to get the current CA intermediate and | This MAY be used by the client to get the current CA intermediate and | |||
issuing CA certificates. | issuing CA certificates. | |||
GenMsg: {id-it 17}, < absent > | GenMsg: {id-it 17}, < absent > | |||
GenRep: {id-it 17}, SEQUENCE OF CMPCertificate | < absent > | GenRep: {id-it 17}, SEQUENCE SIZE (1..MAX) OF | |||
CMPCertificate | < absent > | ||||
2.15. New Section 5.3.19.15 - Root CA Certificate Update | 2.14. New Section 5.3.19.15 - Root CA Certificate Update | |||
The following subsection describes PKI general messages using id-it- | The following subsection describes PKI general messages using id-it- | |||
rootCaKeyUpdate. The use is specified in Lightweight CMP Profile [I- | oldTrustAnchor and id-it-trustAnchorUpdate. The use is specified in | |||
D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | Lightweight CMP Profile Section 4.3 | |||
[I-D.ietf-lamps-lightweight-cmp-profile]. | ||||
Insert this section after new Section 5.3.19.14: | Insert this section after new Section 5.3.19.14: | |||
5.3.19.15. Root CA Certificate Update | 5.3.19.15. Root CA Certificate Update | |||
This MAY be used by the client to get an update of an existing root | This MAY be used by the client to get an update of a trust anchor, | |||
CA Certificate, which MAY be indicated in the rootCaCert field, see | which usually is provided in the form of a root CA Certificate. In | |||
Section 5.1.1.3, of the PKIHeader of the request message. In | ||||
contrast to the ckuann message this approach follows the request/ | contrast to the ckuann message this approach follows the request/ | |||
response model. | response model. | |||
GenMsg: {id-it 18}, < absent > | The EE SHOULD reference its current trust anchor in a TrustAnchor | |||
GenRep: {id-it 18}, RootCaKeyUpdateContent | < absent > | structure in the request body, giving the root CA certificate if | |||
available, otherwise the public key value of the trust anchor. | ||||
RootCaKeyUpdateValue ::= RootCaKeyUpdateContent | GenMsg: {id-it 20}, OldTrustAnchor | < absent > | |||
GenRep: {id-it 18}, TrustAnchorUpdate | < absent > | ||||
RootCaKeyUpdateContent ::= SEQUENCE { | OldTrustAnchor ::= CHOICE { | |||
certificate CMPCertificate, | ||||
publicKey BIT STRING } | ||||
TrustAnchorUpdate ::= SEQUENCE { | ||||
newWithNew CMPCertificate, | newWithNew CMPCertificate, | |||
newWithOld [0] CMPCertificate OPTIONAL, | newWithOld [0] CMPCertificate OPTIONAL, | |||
oldWithNew [1] CMPCertificate OPTIONAL | oldWithNew [1] CMPCertificate OPTIONAL } | |||
} | ||||
< TBD: Rename OIDs | ||||
id-it-rootCaCert --> id-it-oldTrustAnchor | ||||
id-it-rootCaKeyUpdate --> id-it-trustAnchorUpdate | ||||
The authors would prefer re-ordering the newly requested OIDs, | ||||
if possible. See also IANA Consideration. | ||||
+---------+-------------------------+------------+ | ||||
| 18 | id-it-oldTrustAnchor | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 19 | id-it-trustAnchorUpdate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
Note: In contrast to CAKeyUpdAnnContent, this type offers omitting | Note: In contrast to CAKeyUpdAnnContent, this type offers omitting | |||
newWithOld and oldWithNew in the GenRep message, depending on the | newWithOld and oldWithNew in the GenRep message, depending on the | |||
needs of the EE. | needs of the EE. | |||
2.16. New Section 5.3.19.16 - Certificate Request Template | 2.15. New Section 5.3.19.16 - Certificate Request Template | |||
The following subsection introduces the PKI general message using id- | The following subsection introduces the PKI general message using id- | |||
it-certReqTemplate. Details are specified in the Lightweight CMP | it-certReqTemplate. Details are specified in the Lightweight CMP | |||
Profile [I-D.ietf-lamps-lightweight-cmp-profile] Section 4.4. | Profile Section 4.3 [I-D.ietf-lamps-lightweight-cmp-profile]. | |||
Insert this section after new Section 5.3.19.15: | Insert this section after new Section 5.3.19.15: | |||
5.3.19.16. Certificate Request Template | 5.3.19.16. Certificate Request Template | |||
This MAY be used by the client to get a template containing | This MAY be used by the client to get a template containing | |||
requirements for certificate request attributes and extensions. The | requirements for certificate request attributes and extensions. The | |||
controls id-regCtrl-algId and id-regCtrl-rsaKeyLen MAY contain | controls id-regCtrl-algId and id-regCtrl-rsaKeyLen MAY contain | |||
details on the types of subject public keys the CA is willing to | details on the types of subject public keys the CA is willing to | |||
certify. | certify. | |||
skipping to change at page 15, line 34 ¶ | skipping to change at page 16, line 24 ¶ | |||
rsaEncryption and SHALL contain the intended modulus bit length of | rsaEncryption and SHALL contain the intended modulus bit length of | |||
the RSA key. | the RSA key. | |||
GenMsg: {id-it 19}, < absent > | GenMsg: {id-it 19}, < absent > | |||
GenRep: {id-it 19}, CertReqTemplateContent | < absent > | GenRep: {id-it 19}, CertReqTemplateContent | < absent > | |||
CertReqTemplateValue ::= CertReqTemplateContent | CertReqTemplateValue ::= CertReqTemplateContent | |||
CertReqTemplateContent ::= SEQUENCE { | CertReqTemplateContent ::= SEQUENCE { | |||
certTemplate CertTemplate, | certTemplate CertTemplate, | |||
keySpec Controls OPTIONAL | keySpec Controls OPTIONAL } | |||
} | ||||
Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue | |||
id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1) | id-regCtrl-algId OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) security(5) | identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 } | mechanisms(5) pkix(7) pkip(5) regCtrl(1) 11 } | |||
AlgIdCtrl ::= AlgorithmIdentifier{ALGORITHM, {...}} | AlgIdCtrl ::= AlgorithmIdentifier{ALGORITHM, {...}} | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1) | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { iso(1) | |||
identified-organization(3) dod(6) internet(1) security(5) | identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 } | mechanisms(5) pkix(7) pkip(5) regCtrl(1) 12 } | |||
RsaKeyLenCtrl ::= INTEGER | ||||
RsaKeyLenCtrl ::= INTEGER (1..MAX) | ||||
< TBD: The authors would prefer re-ordering the newly requested OIDs, | ||||
if possible. See also IANA Consideration. | ||||
+---------+-------------------------+------------+ | ||||
| 21 | id-it-certReqTemplate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
The CertReqTemplateValue contains the prefilled certTemplate to be | The CertReqTemplateValue contains the prefilled certTemplate to be | |||
used for a future certificate request. The publicKey field in the | used for a future certificate request. The publicKey field in the | |||
certTemplate MUST NOT be used. In case the PKI management entity | certTemplate MUST NOT be used. In case the PKI management entity | |||
wishes to specify supported public-key algorithms, the keySpec field | wishes to specify supported public-key algorithms, the keySpec field | |||
MUST be used. One AttributeTypeAndValue per supported algorithm or | MUST be used. One AttributeTypeAndValue per supported algorithm or | |||
RSA key length MUST be used. | RSA key length MUST be used. | |||
Note: The Controls ASN.1 type is defined in CRMF Section 6 [RFC4211] | Note: The Controls ASN.1 type is defined in CRMF Section 6 [RFC4211] | |||
2.17. Update Section 5.3.22 - Polling Request and Response | 2.16. New Section 5.3.19.17 - CRL update retrieval | |||
The following subsection introduces the PKI general message using id- | ||||
it-crlStatusList and id-it-crls. Details are specified in the | ||||
Lightweight CMP Profile Section 4.3 | ||||
[I-D.ietf-lamps-lightweight-cmp-profile]. Insert this section after | ||||
new Section 5.3.19.16: | ||||
5.3.19.17. CRL update retrieval | ||||
This MAY be used by the client to get new CRLs, specifying the source | ||||
of the CRLs and the thisUpdate value of the latest CRL it already | ||||
has, if available. A CRL source is given either by a | ||||
DistributionPointName or the GeneralNames of the issuing CA. The | ||||
server shall provide only those CRLs that are more recent than the | ||||
ones indicated by the client. | ||||
GenMsg: {id-it TBD1}, SEQUENCE SIZE (1..MAX) OF CRLStatus | ||||
GenRep: {id-it TBD2}, SEQUENCE SIZE (1..MAX) OF | ||||
CertificateList | < absent > | ||||
CRLSource ::= CHOICE { | ||||
dpn [0] DistributionPointName, | ||||
issuer [1] GeneralNames } | ||||
CRLStatus ::= SEQUENCE { | ||||
source CRLSource, | ||||
thisUpdate Time OPTIONAL } | ||||
< TBD: Request OID for id-it-crlStatusList (TBD1) and id-it-crls | ||||
(TBD2). > | ||||
2.17. Update Section 5.3.21 - Error Message Content | ||||
Section 5.3.21 of RFC 4210 [RFC4210] describes the regular use of | ||||
error messages. This document adds a use by a PKI management entity | ||||
to initiate delayed delivery in response to certConf, rr, and genm | ||||
requests and to error messages. | ||||
Replace the first sentence of the first paragraph with the following | ||||
one: | ||||
This data structure MAY be used by EE, CA, or RA to convey error info | ||||
and by a PKI management entity to initiate delayed delivery of | ||||
responses. | ||||
Replace the second paragraph with the following text: | ||||
This message MAY be generated at any time during a PKI transaction. | ||||
If the client sends this request, the server MUST respond with a | ||||
PKIConfirm response, or another ErrorMsg if any part of the header is | ||||
not valid. In case a PKI management entity sends an error message to | ||||
the EE with the pKIStatusInfo field containing the status "waiting", | ||||
the EE will initiate polling as described in Section 5.3.22. | ||||
Otherwise, both sides MUST treat this message as the end of the | ||||
transaction (if a transaction is in progress). | ||||
2.18. Replace Section 5.3.22 - Polling Request and Response | ||||
Section 5.3.22 of RFC 4210 [RFC4210] describes when and how polling | Section 5.3.22 of RFC 4210 [RFC4210] describes when and how polling | |||
messages are used. This document adds the polling mechanism also for | messages are used for ir, cr, and kur messages. This document | |||
outstanding responses to a p10cr. | extends the polling mechanism for outstanding responses to any kind | |||
of request message. This update also fixes the inconsistent use of | ||||
the terms 'rReq' vs. 'pollReq' and 'pRep' vs. 'pollRep'. | ||||
Replace in the first paragraph the word 'cr' by 'cr, p10cr' and add | Replace Section 5.3.22 with following text: | |||
just before the state machine diagram the following text: | ||||
A p10cr message contains exactly one CertificationRequestInfo data | This pair of messages is intended to handle scenarios in which the | |||
structure as specified in PKCS#10 [RFC2986] but no certificate | client needs to poll the server to determine the status of an | |||
request identifier. Therefore, the certReqId MUST be set to 0 in all | outstanding response (i.e., when the "waiting" PKIStatus has been | |||
subsequent messages of this transaction. | received). | |||
2.18. Update Section 7 - Version Negotiation | PollReqContent ::= SEQUENCE OF SEQUENCE { | |||
certReqId INTEGER } | ||||
PollRepContent ::= SEQUENCE OF SEQUENCE { | ||||
certReqId INTEGER, | ||||
checkAfter INTEGER, -- time in seconds | ||||
reason PKIFreeText OPTIONAL } | ||||
In response to an ir, cr, p10cr, or kur request message, polling is | ||||
initiated with an ip, cp, or kup response message containing status | ||||
"waiting". For any type of request message, polling can be initiated | ||||
with an error response messages with status "waiting". The following | ||||
clauses describe how polling messages are used. It is assumed that | ||||
multiple certConf messages can be sent during transactions. There | ||||
will be one sent in response to each ip, cp, or kup that contains a | ||||
CertStatus for an issued certificate. | ||||
1 In response to an ip, cp, or kup message, an EE will send a | ||||
certConf for all issued certificates and expect a PKIconf for each | ||||
certConf. An EE will send a pollReq message in response to each | ||||
CertResponse element of an ip, cp, or kup message with status | ||||
"waiting" and in response to an error message with status | ||||
"waiting". Its certReqId MUST be either the index of a | ||||
CertResponse data structure with status "waiting" or -1 referring | ||||
to the complete response. | ||||
2 In response to a pollReq, a CA/RA will return an ip, cp, or kup if | ||||
one or more of still pending requested certificates are ready or | ||||
the final response to some other type of request is available; | ||||
otherwise, it will return a pollRep. | ||||
3 If the EE receives a pollRep, it will wait for at least the number | ||||
of seconds given in the checkAfter field before sending another | ||||
pollReq.. | ||||
4 If the EE receives an ip, cp, or kup, then it will be treated in | ||||
the same way as the initial response; if it receives any other | ||||
response, then this will be treated as the final response to the | ||||
original request. | ||||
The following client-side state machine describes polling for | ||||
individual CertResponse elements. | ||||
START | ||||
| | ||||
v | ||||
Send ir | ||||
| ip | ||||
v | ||||
Check status | ||||
of returned <------------------------+ | ||||
certs | | ||||
| | | ||||
+------------------------>|<------------------+ | | ||||
| | | | | ||||
| (issued) v (waiting) | | | ||||
Add to <----------- Check CertResponse ------> Add to | | ||||
conf list for each certificate pending list | | ||||
/ | | ||||
/ | | ||||
(conf list) / (empty conf list) | | ||||
/ ip | | ||||
/ +-----------------+ | ||||
(empty pending list) / | pollRep | ||||
END <---- Send certConf Send pollReq---------->Wait | ||||
| ^ ^ | | ||||
| | | | | ||||
+-----------------+ +---------------+ | ||||
(pending list) | ||||
In the following exchange, the end entity is enrolling for two | ||||
certificates in one request. | ||||
Step End Entity PKI | ||||
-------------------------------------------------------------------- | ||||
1 Format ir | ||||
2 -> ir -> | ||||
3 Handle ir | ||||
4 Manual intervention is | ||||
required for both certs. | ||||
5 <- ip <- | ||||
6 Process ip | ||||
7 Format pollReq | ||||
8 -> pollReq -> | ||||
9 Check status of cert requests | ||||
10 Certificates not ready | ||||
11 Format pollRep | ||||
12 <- pollRep <- | ||||
13 Wait | ||||
14 Format pollReq | ||||
15 -> pollReq -> | ||||
16 Check status of cert requests | ||||
17 One certificate is ready | ||||
18 Format ip | ||||
19 <- ip <- | ||||
20 Handle ip | ||||
21 Format certConf | ||||
22 -> certConf -> | ||||
23 Handle certConf | ||||
24 Format ack | ||||
25 <- pkiConf <- | ||||
26 Format pollReq | ||||
27 -> pollReq -> | ||||
28 Check status of certificate | ||||
29 Certificate is ready | ||||
30 Format ip | ||||
31 <- ip <- | ||||
31 Handle ip | ||||
32 Format certConf | ||||
33 -> certConf -> | ||||
34 Handle certConf | ||||
35 Format ack | ||||
36 <- pkiConf <- | ||||
The following client-side state machine describes polling for a | ||||
complete response message. | ||||
Start | ||||
| | ||||
| Send request | ||||
| | ||||
+----------- Receive response ------------+ | ||||
| | | ||||
| ip/cp/kup/error with | other | ||||
| status "waiting" | response | ||||
| | | ||||
v | | ||||
+------> Polling | | ||||
| | | | ||||
| | Send pollReq | | ||||
| | Receive response | | ||||
| | | | ||||
| pollRep | other response | | ||||
+-----------+------------------->+<-------------------+ | ||||
| | ||||
v | ||||
Handle response | ||||
| | ||||
v | ||||
End | ||||
In the following exchange, the end-entity is sending a general | ||||
message request, and the response is delayed by the server. | ||||
Step End Entity PKI | ||||
-------------------------------------------------------------------- | ||||
1 Format genm | ||||
2 -> genm -> | ||||
3 Handle genm | ||||
4 delay in response is necessary | ||||
5 Format error message "waiting" | ||||
with certReqId set to -1 | ||||
6 <- error <- | ||||
7 Process error | ||||
8 Format pollReq | ||||
9 -> pollReq -> | ||||
10 Check status of original request | ||||
general message response not ready | ||||
11 Format pollRep | ||||
12 <- pollRep <- | ||||
13 Wait | ||||
14 Format pollReq | ||||
15 -> pollReq -> | ||||
16 Check status of original request | ||||
general message response is ready | ||||
17 Format genp | ||||
18 <- genp <- | ||||
19 Handle genp | ||||
2.19. Update Section 7 - Version Negotiation | ||||
Section 7 of RFC 4210 [RFC4210] describes the use of CMP protocol | Section 7 of RFC 4210 [RFC4210] describes the use of CMP protocol | |||
versions. This document describes the handling of the additional CMP | versions. This document describes the handling of the additional CMP | |||
version cmp2021 introduced to indicate support of EnvelopedData and | version cmp2021 introduced to indicate support of EnvelopedData and | |||
hashAlg. | hashAlg. | |||
Replace the text of the first two paragraphs with the following text: | Replace the text of the first three paragraphs with the following | |||
text: | ||||
This section defines the version negotiation between client and | This section defines the version negotiation between client and | |||
server used to choose among cmp1999 (specified in RFC 2510 | server used to choose among cmp1999 (specified in RFC 2510 | |||
[RFC2510]), cmp2000 (specified in RFC 4210 [RFC4210]), and cmp2021 | [RFC2510]), cmp2000 (specified in RFC 4210 [RFC4210]), and cmp2021 | |||
(specified in this document). The only difference between protocol | (specified in this document). The only difference between protocol | |||
versions cmp2021 and cmp2000 is that EnvelopedData replaces | versions cmp2021 and cmp2000 is that EnvelopedData replaces | |||
EncryptedValue and the optional hashAlg field is added to CertStatus. | EncryptedValue and the optional hashAlg field is added to CertStatus. | |||
If a client does not support cmp2021 it chooses the versions for a | If a client does not support cmp2021 it chooses the versions for a | |||
request as follows: | request as follows: | |||
skipping to change at page 17, line 7 ¶ | skipping to change at page 24, line 16 ¶ | |||
server (e.g., from a previous PKIMessage exchange or via some out- | server (e.g., from a previous PKIMessage exchange or via some out- | |||
of-band means), then it MUST send a PKIMessage with the highest | of-band means), then it MUST send a PKIMessage with the highest | |||
version supported by both itself and the server. | version supported by both itself and the server. | |||
* If the client does not know what version(s) the server supports, | * If the client does not know what version(s) the server supports, | |||
then it MUST send a PKIMessage using the highest version it | then it MUST send a PKIMessage using the highest version it | |||
supports. | supports. | |||
If a client supports cmp2021 and encrypted values are supposed to be | If a client supports cmp2021 and encrypted values are supposed to be | |||
transferred in the PKI management operation the client MUST choose | transferred in the PKI management operation the client MUST choose | |||
the version for a request as follows: | the version for a request message containing the CertReqMessages data | |||
structure as follows: | ||||
* If the client supports EnvelopedData, but not EncryptedValue, then | * If the client accepts EnvelopedData, but not EncryptedValue, then | |||
it MUST send a PKIMessage using cmp2021. | it MUST use cmp2021. | |||
* If the client does not support EnvelopedData, but EncryptedValue, | * If the client does not accept EnvelopedData, but EncryptedValue, | |||
then it MUST send a PKIMessage using cmp2000. | then it MUST use cmp2000. | |||
* If the client supports both EnvelopedData and EncryptedValue: | * If the client accepts both EnvelopedData and EncryptedValue: | |||
- If the client knows the protocol version(s) supported by the | - If the client knows that the Server supports EnvelopedData | |||
server (e.g., from a previous PKIMessage exchange or via some | (e.g., from a previous PKIMessage exchange or via some out-of- | |||
out-of-band means), then it MUST send a PKIMessage with the | band means), then it MUST use cmp2021. | |||
highest version supported the server. | ||||
- If the client does not know what version(s) the server | - If the client knows that the server supports only | |||
supports, then it MUST send a PKIMessage using cmp2021. | EncryptedValue, then it MUST use cmp2000. | |||
If a client is supposed to send a certConf message containing the | - If the client does not know whether the server supports | |||
hashAlg field the client MUST choose the version for a request as | EnvelopedData or EncryptedValue, then it MUST send the request | |||
follows: | message using cmp2021. | |||
* If the client supports cmp2021 it MUST use cmp2021 in the certConf | If a client sends a certConf message and the signatureAlgorithm of | |||
the certificate to be confirmed does not specify a hash algorithm | ||||
(neither in its OID nor in its parameters) there are two cases: | ||||
* A client supporting cmp2021 MUST use cmp2021 in the certConf | ||||
message. | message. | |||
* If the client does not support cmp2021 it MUST reject the | * A client not supporting cmp2021 will not be able to handle this | |||
certificate. | situation and will fail or reject the certificate. | |||
2.19. Update Section 7.1.1. - Clients Talking to RFC 2510 Servers | If a server receives a message with version cmp1999 and supports it, | |||
then the version of the response message MUST also be cmp1999. If a | ||||
server receives a message with a version higher or lower than it | ||||
supports, then it MUST send back an ErrorMsg with the | ||||
unsupportedVersion bit set (in the failureInfo field of the | ||||
pKIStatusInfo). If the received version is higher than the highest | ||||
supported version for this request message, then the version in the | ||||
error message MUST be the highest version the server supports for | ||||
this message type; if the received version is lower than the lowest | ||||
supported version for this request message then the version in the | ||||
error message MUST be the lowest version the server supports for this | ||||
message type. | ||||
2.20. Update Section 7.1.1. - Clients Talking to RFC 2510 Servers | ||||
Section 7.1.1 of RFC 4210 [RFC4210] describes the behavior of a | Section 7.1.1 of RFC 4210 [RFC4210] describes the behavior of a | |||
client sending a cmp2000 message talking to a cmp1999 server. This | client sending a cmp2000 message talking to a cmp1999 server. This | |||
document extends the section to clients with any higher version than | document extends the section to clients with any higher version than | |||
cmp1999. | cmp1999. | |||
Replace the first sentence of Section 7.1.1 with the following text: | Replace the first sentence of Section 7.1.1 with the following text: | |||
If, after sending a message with a protocol version number higher | If, after sending a message with a protocol version number higher | |||
than cmp1999, a client receives an ErrorMsgContent with a version of | than cmp1999, a client receives an ErrorMsgContent with a version of | |||
cmp1999, then it MUST abort the current transaction. | cmp1999, then it MUST abort the current transaction. | |||
2.20. Update Section 9 - IANA Considerations | 2.21. Add Section 8.4 - Private keys for certificate signing and CMP | |||
message protection | ||||
The following subsection addresses the risk arising from reusing the | ||||
CA private key for CMP message protection. | ||||
Insert this section after Section 8.3: | ||||
8.4. Private keys for certificate signing and CMP message protection | ||||
When a CA acts as a CMP endpoint, it should not use the same private | ||||
key for issuing certificates and for protecting CMP responses, to | ||||
reduce the number of usages of the key to the minimum required. | ||||
2.22. Add Section 8.5 - Entropy of random numbers, key pairs, and | ||||
shared secret information | ||||
The following subsection addresses the risk arising from low entropy | ||||
of random numbers, asymmetric keys, and shared secret information. | ||||
8.5. Entropy of random numbers, key pairs, and shared secret | ||||
information | ||||
For requirements regarding proper random number and key generation | ||||
please refer to [RFC4086]. | ||||
For the case of centrally generated key pairs, the entropy of the | ||||
shared secret information SHALL not be less than the security | ||||
strength of the centrally generated key pair; if the shared secret | ||||
information is re-used for different key pairs, the entropy and the | ||||
security of the underlying cryptographic mechanisms SHOULD exceed the | ||||
security strength of the key pairs. | ||||
For the case of a PKI management operation that delivers a new trust | ||||
anchor (e.g., a root CA certificate) using caPubs, (a) that is not | ||||
concluded in a timely manner or (b) where the shared secret | ||||
information is re-used for several key management operations, the | ||||
entropy of the shared secret information SHALL not be less than the | ||||
security strength of the key material being managed by the operation. | ||||
For other cases it is recommended to (a) either use a shared secret | ||||
information of possibly low entropy (e.g., a password) only for a | ||||
single PKI management operation or (b) use a shared secret | ||||
information with an entropy that matches the security strength of the | ||||
key material being managed by the operation. | ||||
2.23. Add Section 8.6 - Trust anchor provisioning using caPubs | ||||
The following subsection addresses the risk arising from provisioning | ||||
a new trust anchor in-band in a CMP management operation. | ||||
Insert this section after new Section 8.5: | ||||
8.6. Trust anchor provisioning using caPubs | ||||
In case an EE receives a CA certificate in the caPubs field for | ||||
installation as a new trust anchor, it is advised to properly | ||||
authenticate the message and authorize the sender as trusted source | ||||
of the new trust anchor. This authorization is typically indicated | ||||
using shared secret information for protecting an initialization | ||||
response (ir) message. Authorization can also be signature-based | ||||
using a certificate issued by another PKI that is explicitly | ||||
authorized for this purpose. A certificate received in caPubs MUST | ||||
NOT be accepted as trust anchor if the CMP message was protected | ||||
using a certificate issued by this same CA or one of its subordinate | ||||
CAs. | ||||
2.24. Update Section 9 - IANA Considerations | ||||
Section 9 of RFC 4210 [RFC4210] contains the IANA Considerations of | Section 9 of RFC 4210 [RFC4210] contains the IANA Considerations of | |||
that document. As this document defines a new Extended Key Usage, | that document. As this document defines a new Extended Key Usage, | |||
the IANA Considerations need to be updated accordingly. | the IANA Considerations need to be updated accordingly. | |||
Add the following paragraphs after the third paragraph of the | Add the following paragraphs after the third paragraph of the | |||
section: | section: | |||
In the SMI-numbers registry "SMI Security for PKIX Extended Key | In the SMI-numbers registry "SMI Security for PKIX Extended Key | |||
Purpose Identifiers (1.3.6.1.5.5.7.3)" (see | Purpose Identifiers (1.3.6.1.5.5.7.3)" (see | |||
skipping to change at page 18, line 33 ¶ | skipping to change at page 27, line 30 ¶ | |||
Extended Key Purpose Identifiers | Extended Key Purpose Identifiers | |||
registry | registry | |||
In the SMI-numbers registry "SMI Security for PKIX CMP Information | In the SMI-numbers registry "SMI Security for PKIX CMP Information | |||
Types (1.3.6.1.5.5.7.4)" (see https://www.iana.org/assignments/smi- | Types (1.3.6.1.5.5.7.4)" (see https://www.iana.org/assignments/smi- | |||
numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.4) as defined in | numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.4) as defined in | |||
RFC 7299 [RFC7299] fife additions have been performed. | RFC 7299 [RFC7299] fife additions have been performed. | |||
Fife new entries have been added: | Fife new entries have been added: | |||
+=========+=======================+============+ | +=========+=========================+============+ | |||
| Decimal | Description | References | | | Decimal | Description | References | | |||
+=========+=======================+============+ | +=========+=========================+============+ | |||
| 17 | id-it-caCerts | [thisRFC] | | | 17 | id-it-caCerts | [thisRFC] | | |||
+---------+-----------------------+------------+ | +---------+-------------------------+------------+ | |||
| 18 | id-it-rootCaKeyUpdate | [thisRFC] | | | 18 | id-it-trustAnchorUpdate | [thisRFC] | | |||
+---------+-----------------------+------------+ | +---------+-------------------------+------------+ | |||
| 19 | id-it-certReqTemplate | [thisRFC] | | | 19 | id-it-certReqTemplate | [thisRFC] | | |||
+---------+-----------------------+------------+ | +---------+-------------------------+------------+ | |||
| 20 | id-it-rootCaCert | [thisRFC] | | | 20 | id-it-oldTrustAnchor | [thisRFC] | | |||
+---------+-----------------------+------------+ | +---------+-------------------------+------------+ | |||
| 21 | id-it-certProfile | [thisRFC] | | | 21 | id-it-certProfile | [thisRFC] | | |||
+---------+-----------------------+------------+ | +---------+-------------------------+------------+ | |||
| TBD1 | id-it-crlStatusList | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| TBD2 | id-it-crls | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
Table 2: Addition to the PKIX CMP | Table 2: Addition to the PKIX CMP Information | |||
Information Types registry | Types registry | |||
< TBD: Request OID for id-it-crlStatusList (TBD1) and id-it-crls | ||||
(TBD2). | ||||
Preferred ordering, if possible: | ||||
+=========+=========================+============+ | ||||
| Decimal | Description | References | | ||||
+=========+=========================+============+ | ||||
| 17 | id-it-caCerts | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 18 | id-it-oldTrustAnchor | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 19 | id-it-trustAnchorUpdate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 20 | id-it-certProfile | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| 21 | id-it-certReqTemplate | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| TBD1 | id-it-crlStatusList | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
| TBD2 | id-it-crls | [thisRFC] | | ||||
+---------+-------------------------+------------+ | ||||
> | ||||
In the SMI-numbers registry " SMI Security for PKIX CRMF Registration | In the SMI-numbers registry " SMI Security for PKIX CRMF Registration | |||
Controls (1.3.6.1.5.5.7.5.1)" (see https://www.iana.org/assignments/ | Controls (1.3.6.1.5.5.7.5.1)" (see https://www.iana.org/assignments/ | |||
smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.5.1) as | smi-numbers/smi-numbers.xhtml#smi-numbers-1.3.6.1.5.5.7.5.1) as | |||
defined in RFC 7299 [RFC7299] two additions have been performed. | defined in RFC 7299 [RFC7299] two additions have been performed. | |||
Two new entries have been added: | Two new entries have been added: | |||
+=========+======================+============+ | +=========+======================+============+ | |||
| Decimal | Description | References | | | Decimal | Description | References | | |||
+=========+======================+============+ | +=========+======================+============+ | |||
| 11 | id-regCtrl-algId | [thisRFC] | | | 11 | id-regCtrl-algId | [thisRFC] | | |||
+---------+----------------------+------------+ | +---------+----------------------+------------+ | |||
| 12 | id-regCtrl-rsaKeyLen | [thisRFC] | | | 12 | id-regCtrl-rsaKeyLen | [thisRFC] | | |||
+---------+----------------------+------------+ | +---------+----------------------+------------+ | |||
Table 3: Addition to the PKIX CRMF | Table 3: Addition to the PKIX CRMF | |||
Registration Controls registry | Registration Controls registry | |||
2.21. Update Appendix B - The Use of Revocation Passphrase | 2.25. Update Appendix B - The Use of Revocation Passphrase | |||
Appendix B of RFC 4210 [RFC4210] describes the use of the revocation | Appendix B of RFC 4210 [RFC4210] describes the use of the revocation | |||
passphrase. As this document updates RFC 4210 [RFC4210] to utilize | passphrase. As this document updates RFC 4210 [RFC4210] to utilize | |||
the parent structure EncryptedKey instead of EncryptedValue as | the parent structure EncryptedKey instead of EncryptedValue as | |||
described in Section 2.8 above, the description is updated | described in Section 2.7 above, the description is updated | |||
accordingly. | accordingly. | |||
Replace the first bullet point of this section with the following | Replace the first bullet point of this section with the following | |||
text: | text: | |||
* The OID and value specified in Section 5.3.19.9 MAY be sent in a | * The OID and value specified in Section 5.3.19.9 MAY be sent in a | |||
GenMsg message at any time, or MAY be sent in the generalInfo | GenMsg message at any time, or MAY be sent in the generalInfo | |||
field of the PKIHeader of any PKIMessage at any time. (In | field of the PKIHeader of any PKIMessage at any time. (In | |||
particular, the EncryptedKey structure as described in section | particular, the EncryptedKey structure as described in section | |||
5.2.2 may be sent in the header of the certConf message that | 5.2.2 may be sent in the header of the certConf message that | |||
skipping to change at page 20, line 12 ¶ | skipping to change at page 29, line 32 ¶ | |||
Replace the third bullet point of this section with the following | Replace the third bullet point of this section with the following | |||
text: | text: | |||
* When using EnvelopedData the localKeyId attribute as specified in | * When using EnvelopedData the localKeyId attribute as specified in | |||
RFC 2985 [RFC2985] and when using EncryptedValue the valueHint | RFC 2985 [RFC2985] and when using EncryptedValue the valueHint | |||
field MAY contain a key identifier (chosen by the entity, along | field MAY contain a key identifier (chosen by the entity, along | |||
with the passphrase itself) to assist in later retrieval of the | with the passphrase itself) to assist in later retrieval of the | |||
correct passphrase (e.g., when the revocation request is | correct passphrase (e.g., when the revocation request is | |||
constructed by the entity and received by the CA/RA). | constructed by the entity and received by the CA/RA). | |||
2.22. Update Appendix C - Request Message Behavioral Clarifications | 2.26. Update Appendix C - Request Message Behavioral Clarifications | |||
Appendix C of RFC 4210 [RFC4210] provides clarifications to the | Appendix C of RFC 4210 [RFC4210] provides clarifications to the | |||
request message behavior. As this document updates RFC 4210 | request message behavior. As this document updates RFC 4210 | |||
[RFC4210] to utilize the parent structure EncryptedKey instead of | [RFC4210] to utilize the parent structure EncryptedKey instead of | |||
EncryptedValue as described in Section 2.8 above, the description is | EncryptedValue as described in Section 2.7 above, the description is | |||
updated accordingly. | updated accordingly. | |||
Replace the comment within the ASN.1 syntax coming after the | Replace the comment within the ASN.1 syntax coming after the | |||
definition of POPOSigningKey with the following text (Note: This | ||||
fixes Errata ID 2615): | ||||
-- ********** | ||||
-- * For the purposes of this specification, the ASN.1 comment | ||||
-- * given in [CRMF] pertains not only to certTemplate, but | ||||
-- * also to the altCertTemplate control. | ||||
-- ********** | ||||
-- * The signature (using "algorithmIdentifier") is on the | ||||
-- * DER-encoded value of poposkInput (i.e., the "value" OCTETs | ||||
-- * of the POPOSigningKeyInput DER). NOTE: If CertReqMsg | ||||
-- * certReq certTemplate (or the altCertTemplate control) | ||||
-- * contains the subject and publicKey values, then poposkInput | ||||
-- * MUST be omitted and the signature MUST be computed on the | ||||
-- * DER-encoded value of CertReqMsg certReq (or the DER- | ||||
-- * encoded value of AltCertTemplate). If | ||||
-- * certTemplate/altCertTemplate does not contain both the | ||||
-- * subject and public key values (i.e., if it contains only | ||||
-- * one of these, or neither), then poposkInput MUST be present | ||||
-- * and MUST be signed. | ||||
-- ********** | ||||
Replace the comment within the ASN.1 syntax coming after the | ||||
definition of POPOPrivKey with the following text: | definition of POPOPrivKey with the following text: | |||
-- ********** | -- ********** | |||
-- * the type of "thisMessage" is given as BIT STRING in RFC 4211 | -- * the type of "thisMessage" is given as BIT STRING in RFC 4211 | |||
-- * [RFC4211]; it should be "EncryptedKey" (in accordance with | -- * [RFC4211]; it should be "EncryptedKey" (in accordance with | |||
-- * Section 5.2.2 of this specification). Therefore, this | -- * Section 5.2.2 of this specification). Therefore, this | |||
-- * document makes the behavioral clarification of specifying | -- * document makes the behavioral clarification of specifying | |||
-- * that the contents of "thisMessage" MUST be encoded either as | -- * that the contents of "thisMessage" MUST be encoded either as | |||
-- * "EnvelopedData" or "EncryptedValue" (only for backward | -- * "EnvelopedData" or "EncryptedValue" (only for backward | |||
-- * compatibility) and then wrapped in a BIT STRING. This | -- * compatibility) and then wrapped in a BIT STRING. This | |||
-- * allows the necessary conveyance and protection of the | -- * allows the necessary conveyance and protection of the | |||
-- * private key while maintaining bits-on-the-wire compatibility | -- * private key while maintaining bits-on-the-wire compatibility | |||
-- * with RFC 4211 [RFC4211]. | -- * with RFC 4211 [RFC4211]. | |||
-- ********** | -- ********** | |||
2.23. Update Appendix D.1. - General Rules for Interpretation of These | 2.27. Update Appendix D.1. - General Rules for Interpretation of These | |||
Profiles | Profiles | |||
Appendix D.1 of RFC 4210 [RFC4210] provides general rules for | Appendix D.1 of RFC 4210 [RFC4210] provides general rules for | |||
interpretation of the PKI management messages profiles specified in | interpretation of the PKI management messages profiles specified in | |||
Appendix D and Appendix E of RFC 4210 [RFC4210]. This document | Appendix D and Appendix E of RFC 4210 [RFC4210]. This document | |||
updates a sentence regarding the new protocol version cmp2021. | updates a sentence regarding the new protocol version cmp2021. | |||
Replace the last sentence of the first paragraph of the section with | Replace the last sentence of the first paragraph of the section with | |||
the following text: | the following text: | |||
Mandatory fields are not mentioned if they have an obvious value | Mandatory fields are not mentioned if they have an obvious value | |||
(e.g., in this version of these profiles, pvno is always cmp2000). | (e.g., in this version of these profiles, pvno is always cmp2000). | |||
2.24. Update Appendix D.2. - Algorithm Use Profile | 2.28. Update Appendix D.2. - Algorithm Use Profile | |||
Appendix D.2 of RFC 4210 [RFC4210] provides a list of algorithms that | Appendix D.2 of RFC 4210 [RFC4210] provides a list of algorithms that | |||
implementations must support when claiming conformance with PKI | implementations must support when claiming conformance with PKI | |||
Management Message Profiles as specified in CMP Appendix D.2 | Management Message Profiles as specified in CMP Appendix D.2 | |||
[RFC4210]. This document redirects to the new algorithm profile as | [RFC4210]. This document redirects to the new algorithm profile as | |||
specified in Appendix A.1 of CMP Algorithms | specified in Appendix A.1 of CMP Algorithms | |||
[I-D.ietf-lamps-cmp-algorithms]. | [I-D.ietf-lamps-cmp-algorithms]. | |||
Replace the text of the section with the following text: | Replace the text of the section with the following text: | |||
D.2. Algorithm Use Profile | D.2. Algorithm Use Profile | |||
For specifications of algorithm identifiers and respective | For specifications of algorithm identifiers and respective | |||
conventions for conforming implementations, please refer to CMP | conventions for conforming implementations, please refer to CMP | |||
Algorithms Appendix A.1 [I-D.ietf-lamps-cmp-algorithms]. | Algorithms Appendix A.1 [I-D.ietf-lamps-cmp-algorithms]. | |||
2.25. Update Appendix D.4. - Initial Registration/Certification (Basic | 2.29. Update Appendix D.4. - Initial Registration/Certification (Basic | |||
Authenticated Scheme) | Authenticated Scheme) | |||
Appendix D.4 of RFC 4210 [RFC4210] provides the initial registration/ | Appendix D.4 of RFC 4210 [RFC4210] provides the initial registration/ | |||
certification scheme. This scheme shall continue using | certification scheme. This scheme shall continue using | |||
EncryptedValue for backward compatibility reasons. | EncryptedValue for backward compatibility reasons. | |||
Replace the line specifying protectionAlg of the Initialization | ||||
Response message with the following text (Note: This fixes Errata ID | ||||
5201): | ||||
protectionAlg MSG_MAC_ALG | ||||
Replace the comment after the privateKey field of | Replace the comment after the privateKey field of | |||
crc[1].certifiedKeyPair in the syntax of the Initialization Response | crc[1].certifiedKeyPair in the syntax of the Initialization Response | |||
message with the following text: | message with the following text: | |||
-- see Appendix C, Request Message Behavioral Clarifications | -- see Appendix C, Request Message Behavioral Clarifications | |||
-- for backward compatibility reasons, use EncryptedValue | -- for backward compatibility reasons, use EncryptedValue | |||
3. Updates to RFC 6712 - HTTP Transfer for the Certificate Management | 3. Updates to RFC 6712 - HTTP Transfer for the Certificate Management | |||
Protocol (CMP) | Protocol (CMP) | |||
3.1. New Section 1.1. - Changes since RFC 6712 | 3.1. Update Section 1. - Introduction | |||
To indicate and explain why delayed delivery of all kinds of | ||||
PKIMessages may be handled at transfer level and/or at CMP level, the | ||||
introduction of RFC 6712 [RFC6712] is updated. | ||||
Replace the third paragraph of this section with the following text: | ||||
In addition to reliable transport, CMP requires connection and error | ||||
handling from the transfer protocol, which is all covered by HTTP. | ||||
Moreover, delayed delivery of CMP response messages may be handled at | ||||
transfer level regardless of the message contents. Since CMP Updates | ||||
[I-D.ietf-lamps-cmp-updates] extends the polling mechanism specified | ||||
in the second version of CMP [RFC4210] to cover all types of PKI | ||||
management transactions, delays detected at application level may | ||||
also be handled within CMP, using pollReq and pollReq messages. | ||||
3.2. New Section 1.1. - Changes since RFC 6712 | ||||
The following subsection describes feature updates to RFC 6712 | The following subsection describes feature updates to RFC 6712 | |||
[RFC6712]. They are related to the base specification. Hence | [RFC6712]. They are related to the base specification. Hence | |||
references to the original sections in RFC 6712 [RFC6712] are used | references to the original sections in RFC 6712 [RFC6712] are used | |||
whenever possible. | whenever possible. | |||
Insert this section at the end of the current Section 1: | Insert this section at the end of the current Section 1: | |||
1.1 Changes since RFC 6712 | 1.1 Changes since RFC 6712 | |||
The following updates are made in [thisRFC]: | The following updates are made in [thisRFC]: | |||
* Introduce the HTTP path '/.well-known/cmp'. | * Introduce the HTTP path '/.well-known/cmp'. | |||
* Extend the URI structure. | * Extend the URI structure. | |||
3.2. Replace Section 3.6. - HTTP Request-URI | 3.3. Replace Section 3.6. - HTTP Request-URI | |||
Section 3.6 of RFC 6712 [RFC6712] specifies the used HTTP URIs. This | Section 3.6 of RFC 6712 [RFC6712] specifies the used HTTP URIs. This | |||
document introduces the HTTP path '/.well-known/cmp' and extends the | document introduces the HTTP path '/.well-known/cmp' and extends the | |||
URIs. | URIs. | |||
Replace the text of the section with the following text: | Replace the text of the section with the following text: | |||
3.6. HTTP Request-URI | 3.6. HTTP Request-URI | |||
Each CMP server on a PKI management entity supporting HTTP or HTTPS | Each CMP server on a PKI management entity supporting HTTP or HTTPS | |||
transport MUST support the use of the path prefix '/.well-known/' as | transfer MUST support the use of the path prefix '/.well-known/' as | |||
defined in RFC 8615 [RFC8615] and the registered name 'cmp' to ease | defined in RFC 8615 [RFC8615] and the registered name 'cmp' to ease | |||
interworking in a multi-vendor environment. | interworking in a multi-vendor environment. | |||
The CMP client needs to be configured with sufficient information to | The CMP client needs to be configured with sufficient information to | |||
form the CMP server URI. This is at least the authority portion of | form the CMP server URI. This is at least the authority portion of | |||
the URI, e.g., 'www.example.com:80', or the full operation path | the URI, e.g., 'www.example.com:80', or the full operation path | |||
segment of the PKI management entity. Additionally, OPTIONAL path | segment of the PKI management entity. Additionally, OPTIONAL path | |||
segments MAY be added after the registered application name as part | segments MAY be added after the registered application name as part | |||
of the full operation path to provide further distinction. A path | of the full operation path to provide further distinction. A path | |||
segment could for example support the differentiation of specific | segment could for example support the differentiation of specific | |||
CAs, certificate profiles, or PKI management operations. A valid | CAs, certificate profiles, or PKI management operations. A valid | |||
full operation path segment can look like this: | full CMP path can look like this: | |||
http://www.example.com/.well-known/cmp | http://www.example.com/.well-known/cmp | |||
http://www.example.com/.well-known/cmp/operationLabel | http://www.example.com/.well-known/cmp/operationLabel | |||
http://www.example.com/.well-known/cmp/profileLabel | http://www.example.com/.well-known/cmp/profileLabel | |||
http://www.example.com/.well-known/cmp/profileLabel/operationLabel | http://www.example.com/.well-known/cmp/profileLabel/operationLabel | |||
3.3. Update Section 6. - IANA Considerations | 3.4. Update Section 6. - IANA Considerations | |||
Section 6 of RFC 6712 [RFC6712] contains the IANA Considerations of | Section 6 of RFC 6712 [RFC6712] contains the IANA Considerations of | |||
that document. As this document defines a new '.well-known' URI | that document. As this document defines a new '.well-known' URI | |||
prefix, the IANA Considerations need to be updated accordingly. | prefix, the IANA Considerations need to be updated accordingly. | |||
Add the following text between the first and second paragraph of the | Add the following text between the first and second paragraph of the | |||
section: | section: | |||
In the registry of well-known URIs (see | In the registry of well-known URIs (see | |||
https://www.iana.org/assignments/well-known-uris/well-known- | https://www.iana.org/assignments/well-known-uris/well-known- | |||
skipping to change at page 23, line 13 ¶ | skipping to change at page 33, line 34 ¶ | |||
following change has been performed. | following change has been performed. | |||
One new name entry has been added: | One new name entry has been added: | |||
+============+===================+============+ | +============+===================+============+ | |||
| URI suffix | Change controller | References | | | URI suffix | Change controller | References | | |||
+============+===================+============+ | +============+===================+============+ | |||
| cmp | IETF | [thisRFC] | | | cmp | IETF | [thisRFC] | | |||
+------------+-------------------+------------+ | +------------+-------------------+------------+ | |||
Table 4 | Table 4: Addition to the well-known URI | |||
registry | ||||
4. IANA Considerations | 4. IANA Considerations | |||
This document contains an update to the IANA Consideration sections | This document contains an update to the IANA Consideration sections | |||
to be added to [RFC4210] and [RFC6712]. | to be added to [RFC4210] and [RFC6712]. | |||
This document updates the ASN.1 modules of RFC 4210 Appendix F | This document updates the ASN.1 modules of RFC 4210 Appendix F | |||
[RFC4210] and RFC 5912 Section 9 [RFC5912]. The OIDs 99 (id-mod- | [RFC4210] and RFC 5912 Section 9 [RFC5912]. The OIDs 99 (id-mod- | |||
cmp2021-88) and 100 (id-mod-cmp2021-02) were registered in the SMI | cmp2021-88) and 100 (id-mod-cmp2021-02) were registered in the SMI | |||
Security for PKIX Module Identifier registry to identify the updated | Security for PKIX Module Identifier registry to identify the updated | |||
ASN.1 modules. | ASN.1 modules. | |||
< TBD: The temporary registration of cmp URI suffix expires | < TBD: The temporary registration of cmp URI suffix expires | |||
2022-05-20. The registration must be extended in time or update from | 2022-05-20. The registration must be extended in time or update from | |||
provisional to permanent. > | provisional to permanent. > | |||
5. Security Considerations | 5. Security Considerations | |||
No changes are made to the existing security considerations of | The security considerations of RFC 4210 [RFC4210] are extended in | |||
RFC 4210 [RFC4210] and RFC 6712 [RFC6712]. | Section 2.21 to Section 2.23. No changes are made to the existing | |||
security considerations of RFC 6712 [RFC6712]. | ||||
6. Acknowledgements | 6. Acknowledgements | |||
Special thank goes to Jim Schaad for his guidance and the inspiration | Special thank goes to Jim Schaad for his guidance and the inspiration | |||
on structuring and writing this document we got from [RFC6402] which | on structuring and writing this document we got from [RFC6402] which | |||
updates CMC. Special thank also goes also to Russ Housley and Tomas | updates CMC. Special thank also goes also to Russ Housley, Lijun | |||
Gustavsson for reviewing and providing valuable suggestions on | Liao, Martin Peylo, and Tomas Gustavsson for reviewing and providing | |||
improving this document. | valuable suggestions on improving this document. | |||
We also thank all reviewers of this document for their valuable | We also thank all reviewers of this document for their valuable | |||
feedback. | feedback. | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[I-D.ietf-lamps-cmp-algorithms] | [I-D.ietf-lamps-cmp-algorithms] | |||
Brockhaus, H., Aschauer, H., Ounsworth, M., and J. Gray, | Brockhaus, H., Aschauer, H., Ounsworth, M., and J. Gray, | |||
"Certificate Management Protocol (CMP) Algorithms", Work | "Certificate Management Protocol (CMP) Algorithms", Work | |||
in Progress, Internet-Draft, draft-ietf-lamps-cmp- | in Progress, Internet-Draft, draft-ietf-lamps-cmp- | |||
algorithms-05, 7 May 2021, | algorithms-07, 22 August 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | <https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | |||
cmp-algorithms-05>. | cmp-algorithms-07>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2510] Adams, C. and S. Farrell, "Internet X.509 Public Key | [RFC2510] Adams, C. and S. Farrell, "Internet X.509 Public Key | |||
Infrastructure Certificate Management Protocols", | Infrastructure Certificate Management Protocols", | |||
RFC 2510, DOI 10.17487/RFC2510, March 1999, | RFC 2510, DOI 10.17487/RFC2510, March 1999, | |||
<https://www.rfc-editor.org/info/rfc2510>. | <https://www.rfc-editor.org/info/rfc2510>. | |||
skipping to change at page 24, line 29 ¶ | skipping to change at page 35, line 5 ¶ | |||
[RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object | [RFC2985] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object | |||
Classes and Attribute Types Version 2.0", RFC 2985, | Classes and Attribute Types Version 2.0", RFC 2985, | |||
DOI 10.17487/RFC2985, November 2000, | DOI 10.17487/RFC2985, November 2000, | |||
<https://www.rfc-editor.org/info/rfc2985>. | <https://www.rfc-editor.org/info/rfc2985>. | |||
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification | [RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification | |||
Request Syntax Specification Version 1.7", RFC 2986, | Request Syntax Specification Version 1.7", RFC 2986, | |||
DOI 10.17487/RFC2986, November 2000, | DOI 10.17487/RFC2986, November 2000, | |||
<https://www.rfc-editor.org/info/rfc2986>. | <https://www.rfc-editor.org/info/rfc2986>. | |||
[RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | ||||
"Randomness Requirements for Security", BCP 106, RFC 4086, | ||||
DOI 10.17487/RFC4086, June 2005, | ||||
<https://www.rfc-editor.org/info/rfc4086>. | ||||
[RFC4210] Adams, C., Farrell, S., Kause, T., and T. Mononen, | [RFC4210] Adams, C., Farrell, S., Kause, T., and T. Mononen, | |||
"Internet X.509 Public Key Infrastructure Certificate | "Internet X.509 Public Key Infrastructure Certificate | |||
Management Protocol (CMP)", RFC 4210, | Management Protocol (CMP)", RFC 4210, | |||
DOI 10.17487/RFC4210, September 2005, | DOI 10.17487/RFC4210, September 2005, | |||
<https://www.rfc-editor.org/info/rfc4210>. | <https://www.rfc-editor.org/info/rfc4210>. | |||
[RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure | [RFC4211] Schaad, J., "Internet X.509 Public Key Infrastructure | |||
Certificate Request Message Format (CRMF)", RFC 4211, | Certificate Request Message Format (CRMF)", RFC 4211, | |||
DOI 10.17487/RFC4211, September 2005, | DOI 10.17487/RFC4211, September 2005, | |||
<https://www.rfc-editor.org/info/rfc4211>. | <https://www.rfc-editor.org/info/rfc4211>. | |||
skipping to change at page 25, line 40 ¶ | skipping to change at page 36, line 23 ¶ | |||
<https://www.rfc-editor.org/info/rfc7299>. | <https://www.rfc-editor.org/info/rfc7299>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers | [RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers | |||
(URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, | (URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8615>. | <https://www.rfc-editor.org/info/rfc8615>. | |||
[RFC8933] Housley, R., "Update to the Cryptographic Message Syntax | ||||
(CMS) for Algorithm Identifier Protection", RFC 8933, | ||||
DOI 10.17487/RFC8933, October 2020, | ||||
<https://www.rfc-editor.org/info/rfc8933>. | ||||
[RFC9045] Housley, R., "Algorithm Requirements Update to the | [RFC9045] Housley, R., "Algorithm Requirements Update to the | |||
Internet X.509 Public Key Infrastructure Certificate | Internet X.509 Public Key Infrastructure Certificate | |||
Request Message Format (CRMF)", RFC 9045, | Request Message Format (CRMF)", RFC 9045, | |||
DOI 10.17487/RFC9045, June 2021, | DOI 10.17487/RFC9045, June 2021, | |||
<https://www.rfc-editor.org/info/rfc9045>. | <https://www.rfc-editor.org/info/rfc9045>. | |||
7.2. Informative References | 7.2. Informative References | |||
[I-D.ietf-lamps-lightweight-cmp-profile] | [I-D.ietf-lamps-lightweight-cmp-profile] | |||
Brockhaus, H., Fries, S., and D. V. Oheimb, "Lightweight | Brockhaus, H., Fries, S., and D. V. Oheimb, "Lightweight | |||
Certificate Management Protocol (CMP) Profile", Work in | Certificate Management Protocol (CMP) Profile", Work in | |||
Progress, Internet-Draft, draft-ietf-lamps-lightweight- | Progress, Internet-Draft, draft-ietf-lamps-lightweight- | |||
cmp-profile-05, 22 February 2021, | cmp-profile-06, 9 July 2021, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | <https://datatracker.ietf.org/doc/html/draft-ietf-lamps- | |||
lightweight-cmp-profile-05>. | lightweight-cmp-profile-06>. | |||
[IEEE.802.1AR_2018] | [IEEE.802.1AR_2018] | |||
IEEE, "IEEE Standard for Local and metropolitan area | IEEE, "IEEE Standard for Local and metropolitan area | |||
networks - Secure Device Identity", IEEE 802.1AR-2018, | networks - Secure Device Identity", IEEE 802.1AR-2018, | |||
DOI 10.1109/IEEESTD.2018.8423794, 2 August 2018, | DOI 10.1109/IEEESTD.2018.8423794, 2 August 2018, | |||
<https://ieeexplore.ieee.org/document/8423794>. | <https://ieeexplore.ieee.org/document/8423794>. | |||
Appendix A. ASN.1 Modules | Appendix A. ASN.1 Modules | |||
A.1. 1988 ASN.1 Module | A.1. 1988 ASN.1 Module | |||
skipping to change at page 26, line 41 ¶ | skipping to change at page 37, line 27 ¶ | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
BEGIN | BEGIN | |||
-- EXPORTS ALL -- | -- EXPORTS ALL -- | |||
IMPORTS | IMPORTS | |||
Certificate, CertificateList, Extensions, Name, | Certificate, CertificateList, Extensions, Name, | |||
AlgorithmIdentifier, UTF8String, | AlgorithmIdentifier, id-kp | |||
id-kp -- if required; otherwise, comment out | --, UTF8String -- -- if required; otherwise, comment out | |||
FROM PKIX1Explicit88 {iso(1) identified-organization(3) | FROM PKIX1Explicit88 {iso(1) identified-organization(3) | |||
dod(6) internet(1) security(5) mechanisms(5) pkix(7) | dod(6) internet(1) security(5) mechanisms(5) pkix(7) | |||
id-mod(0) id-pkix1-explicit-88(18)} | id-mod(0) id-pkix1-explicit-88(18)} | |||
-- The import of Name is added to define CertificationRequest | -- The import of Name is added to define CertificationRequest | |||
-- instead of importing it from PKCS#10 [RFC2986] | -- instead of importing it from PKCS#10 [RFC2986] | |||
GeneralName, KeyIdentifier | GeneralName, KeyIdentifier | |||
FROM PKIX1Implicit88 {iso(1) identified-organization(3) | FROM PKIX1Implicit88 {iso(1) identified-organization(3) | |||
dod(6) internet(1) security(5) mechanisms(5) pkix(7) | dod(6) internet(1) security(5) mechanisms(5) pkix(7) | |||
id-mod(0) id-pkix1-implicit-88(19)} | id-mod(0) id-pkix1-implicit-88(19)} | |||
CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | |||
CertReqMessages, Controls, id-regCtrl | CertReqMessages, Controls, AttributeTypeAndValue, id-regCtrl | |||
FROM PKIXCRMF-2005 {iso(1) identified-organization(3) | FROM PKIXCRMF-2005 {iso(1) identified-organization(3) | |||
dod(6) internet(1) security(5) mechanisms(5) pkix(7) | dod(6) internet(1) security(5) mechanisms(5) pkix(7) | |||
id-mod(0) id-mod-crmf2005(36)} | id-mod(0) id-mod-crmf2005(36)} | |||
-- The import of EncryptedKey is added due to the updates made | -- The import of EncryptedKey is added due to the updates made | |||
-- in CMP Updates [thisRFC]]. EncryptedValue does not need to | -- in CMP Updates [thisRFC]]. EncryptedValue does not need to | |||
-- be imported anymore and is therefore removed here. | -- be imported anymore and is therefore removed here. | |||
-- see also the behavioral clarifications to CRMF codified in | -- see also the behavioral clarifications to CRMF codified in | |||
-- Appendix C of this specification | -- Appendix C of this specification | |||
skipping to change at page 28, line 47 ¶ | skipping to change at page 39, line 34 ¶ | |||
freeText [7] PKIFreeText OPTIONAL, | freeText [7] PKIFreeText OPTIONAL, | |||
-- this may be used to indicate context-specific instructions | -- this may be used to indicate context-specific instructions | |||
-- (this field is intended for human consumption) | -- (this field is intended for human consumption) | |||
generalInfo [8] SEQUENCE SIZE (1..MAX) OF | generalInfo [8] SEQUENCE SIZE (1..MAX) OF | |||
InfoTypeAndValue OPTIONAL | InfoTypeAndValue OPTIONAL | |||
-- this may be used to convey context-specific information | -- this may be used to convey context-specific information | |||
-- (this field not primarily intended for human consumption) | -- (this field not primarily intended for human consumption) | |||
} | } | |||
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String | |||
-- text encoded as UTF-8 String [RFC3629] (note: each | -- text encoded as UTF-8 String [RFC3629] (note: Each | |||
-- UTF8String MAY include an [RFC3066] language tag | -- UTF8String MAY include an [RFC3066] language tag | |||
-- to indicate the language of the contained text | -- to indicate the language of the contained text | |||
-- see [RFC2482] for details) | -- see [RFC2482] for details) | |||
PKIBody ::= CHOICE { -- message-specific body elements | PKIBody ::= CHOICE { -- message-specific body elements | |||
ir [0] CertReqMessages, --Initialization Request | ir [0] CertReqMessages, --Initialization Request | |||
ip [1] CertRepMessage, --Initialization Response | ip [1] CertRepMessage, --Initialization Response | |||
cr [2] CertReqMessages, --Certification Request | cr [2] CertReqMessages, --Certification Request | |||
cp [3] CertRepMessage, --Certification Response | cp [3] CertRepMessage, --Certification Response | |||
p10cr [4] CertificationRequest, --imported from [PKCS10] | p10cr [4] CertificationRequest, --imported from [PKCS10] | |||
skipping to change at page 33, line 40 ¶ | skipping to change at page 44, line 26 ¶ | |||
algorithm AlgorithmIdentifier, | algorithm AlgorithmIdentifier, | |||
subjectPublicKey BIT STRING }, | subjectPublicKey BIT STRING }, | |||
attributes [0] IMPLICIT SET OF Attribute }, | attributes [0] IMPLICIT SET OF Attribute }, | |||
signatureAlgorithm AlgorithmIdentifier, | signatureAlgorithm AlgorithmIdentifier, | |||
signature BIT STRING | signature BIT STRING | |||
} | } | |||
CertResponse ::= SEQUENCE { | CertResponse ::= SEQUENCE { | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this response with corresponding request (a value | -- to match this response with corresponding request (a value | |||
-- of 0 is to be used if certReqId is not specified in the | -- of -1 is to be used if certReqId is not specified in the | |||
-- corresponding request, which can only be a p10cr) | -- corresponding request, which can only be a p10cr) | |||
status PKIStatusInfo, | status PKIStatusInfo, | |||
certifiedKeyPair CertifiedKeyPair OPTIONAL, | certifiedKeyPair CertifiedKeyPair OPTIONAL, | |||
rspInfo OCTET STRING OPTIONAL | rspInfo OCTET STRING OPTIONAL | |||
-- analogous to the id-regInfo-utf8Pairs string defined | -- analogous to the id-regInfo-utf8Pairs string defined | |||
-- for regInfo in CertReqMsg [CRMF] | -- for regInfo in CertReqMsg [CRMF] | |||
} | } | |||
CertifiedKeyPair ::= SEQUENCE { | CertifiedKeyPair ::= SEQUENCE { | |||
certOrEncCert CertOrEncCert, | certOrEncCert CertOrEncCert, | |||
skipping to change at page 35, line 30 ¶ | skipping to change at page 46, line 14 ¶ | |||
badSinceDate GeneralizedTime, | badSinceDate GeneralizedTime, | |||
crlDetails Extensions OPTIONAL | crlDetails Extensions OPTIONAL | |||
-- extra CRL details (e.g., crl number, reason, location, etc.) | -- extra CRL details (e.g., crl number, reason, location, etc.) | |||
} | } | |||
CRLAnnContent ::= SEQUENCE OF CertificateList | CRLAnnContent ::= SEQUENCE OF CertificateList | |||
CertConfirmContent ::= SEQUENCE OF CertStatus | CertConfirmContent ::= SEQUENCE OF CertStatus | |||
CertStatus ::= SEQUENCE { | CertStatus ::= SEQUENCE { | |||
hashAlg [0] AlgorithmIdentifier OPTIONAL, | ||||
-- the hash algorithm to use for calculating certHash | ||||
-- SHOULD NOT be used in all cases where the AlgorithmIdentifier | ||||
-- of the certificate signature specifies a hash algorithm | ||||
certHash OCTET STRING, | certHash OCTET STRING, | |||
-- the hash of the certificate, using the same hash algorithm | -- the hash of the certificate, using the same hash algorithm | |||
-- as is used to create and verify the certificate signature | -- as is used to create and verify the certificate signature | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this confirmation with the corresponding req/rep | -- to match this confirmation with the corresponding req/rep | |||
statusInfo PKIStatusInfo OPTIONAL | statusInfo PKIStatusInfo OPTIONAL, | |||
hashAlg [0] AlgorithmIdentifier OPTIONAL | ||||
-- the hash algorithm to use for calculating certHash | ||||
-- SHOULD NOT be used in all cases where the AlgorithmIdentifier | ||||
-- of the certificate signature specifies a hash algorithm | ||||
} | } | |||
PKIConfirmContent ::= NULL | PKIConfirmContent ::= NULL | |||
-- Added in CMP Updates [thisRFC] | -- CertReqTemplateContent, id-regCtrl-algId, id-regCtrl-algId, and | |||
-- id-regCtrl-rsaKeyLen were added in CMP Updates [thisRFC] | ||||
RootCaKeyUpdateContent ::= SEQUENCE { | ||||
newWithNew CMPCertificate, | ||||
-- new root CA certificate | ||||
newWithOld [0] CMPCertificate OPTIONAL, | ||||
-- X.509 certificate containing the new public root CA key | ||||
-- signed with the old private root CA key | ||||
oldWithNew [1] CMPCertificate OPTIONAL | ||||
-- X.509 certificate containing the old public root CA key | ||||
-- signed with the new private root CA key | ||||
} | ||||
-- Added in CMP Updates [thisRFC] | ||||
CertReqTemplateContent ::= SEQUENCE { | CertReqTemplateContent ::= SEQUENCE { | |||
certTemplate CertTemplate, | certTemplate CertTemplate, | |||
-- prefilled certTemplate structure elements | -- prefilled certTemplate structure elements | |||
-- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | -- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | |||
-- be used. | -- be used. | |||
keySpec Controls OPTIONAL | keySpec Controls OPTIONAL | |||
-- MAY be used to specify supported algorithms. | -- MAY be used to specify supported algorithms. | |||
-- Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | -- Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue | |||
-- as specified in CRMF (RFC4211) | -- as specified in CRMF (RFC4211) | |||
} | } | |||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl 11 } | id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= { id-regCtrl 7 } | |||
AltCertTemplate ::= AttributeTypeAndValue | ||||
-- specifies a template for a certificate other than an X.509v3 | ||||
-- public-key certificate | ||||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl 11 } | ||||
AlgIdCtrl ::= AlgorithmIdentifier | AlgIdCtrl ::= AlgorithmIdentifier | |||
-- SHALL be used to specify suported algorithms other than RSA | -- SHALL be used to specify supported algorithms other than RSA | |||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | |||
RsaKeyLenCtrl ::= INTEGER | RsaKeyLenCtrl ::= INTEGER (1..MAX) | |||
-- SHALL be used to specify suported RSA key lengths | -- SHALL be used to specify supported RSA key lengths | |||
-- OldTrustAnchor, TrustAnchorUpdateContent, CRLSource, and | ||||
-- CRLStatus were added in CMP Updates [thisRFC] | ||||
OldTrustAnchor ::= CHOICE { | ||||
certificate CMPCertificate, | ||||
publicKey BIT STRING | ||||
} | ||||
TrustAnchorUpdate ::= SEQUENCE { | ||||
newWithNew CMPCertificate, | ||||
-- new root CA certificate | ||||
newWithOld [0] CMPCertificate OPTIONAL, | ||||
-- X.509 certificate containing the new public root CA key | ||||
-- signed with the old private root CA key | ||||
oldWithNew [1] CMPCertificate OPTIONAL | ||||
-- X.509 certificate containing the old public root CA key | ||||
-- signed with the new private root CA key | ||||
} | ||||
CRLSource ::= CHOICE { | ||||
dpn [0] DistributionPointName, | ||||
issuer [1] GeneralNames } | ||||
CRLStatus ::= SEQUENCE { | ||||
source CRLSource, | ||||
thisUpdate Time OPTIONAL } | ||||
InfoTypeAndValue ::= SEQUENCE { | InfoTypeAndValue ::= SEQUENCE { | |||
infoType OBJECT IDENTIFIER, | infoType OBJECT IDENTIFIER, | |||
infoValue ANY DEFINED BY infoType OPTIONAL | infoValue ANY DEFINED BY infoType OPTIONAL | |||
} | } | |||
-- Example InfoTypeAndValue contents include, but are not limited | -- Example InfoTypeAndValue contents include, but are not limited | |||
-- to, the following (un-comment in this ASN.1 module and use as | -- to, the following (un-comment in this ASN.1 module and use as | |||
-- appropriate for a given environment): | -- appropriate for a given environment): | |||
-- | -- | |||
-- id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} | -- id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} | |||
-- CAProtEncCertValue ::= CMPCertificate | -- CAProtEncCertValue ::= CMPCertificate | |||
-- id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} | -- id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} | |||
-- SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier | -- SignKeyPairTypesValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- AlgorithmIdentifier | ||||
-- id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} | -- id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} | |||
-- EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier | -- EncKeyPairTypesValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- AlgorithmIdentifier | ||||
-- id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} | -- id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} | |||
-- PreferredSymmAlgValue ::= AlgorithmIdentifier | -- PreferredSymmAlgValue ::= AlgorithmIdentifier | |||
-- id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} | -- id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} | |||
-- CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent | -- CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent | |||
-- id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} | -- id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} | |||
-- CurrentCRLValue ::= CertificateList | -- CurrentCRLValue ::= CertificateList | |||
-- id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} | -- id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} | |||
-- UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER | -- UnsupportedOIDsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- OBJECT IDENTIFIER | ||||
-- id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} | -- id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} | |||
-- KeyPairParamReqValue ::= OBJECT IDENTIFIER | -- KeyPairParamReqValue ::= OBJECT IDENTIFIER | |||
-- id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} | -- id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} | |||
-- KeyPairParamRepValue ::= AlgorithmIdentifer | -- KeyPairParamRepValue ::= AlgorithmIdentifier | |||
-- id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} | -- id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} | |||
-- RevPassphraseValue ::= EncryptedKey | -- RevPassphraseValue ::= EncryptedKey | |||
-- - Changed from Encrypted Value to EncryptedKey as a CHOICE | -- - Changed from Encrypted Value to EncryptedKey as a CHOICE | |||
-- - of EncryptedValue and EnvelopedData due to the changes | -- - of EncryptedValue and EnvelopedData due to the changes | |||
-- - made in CMP Updates [thisRFC] | -- - made in CMP Updates [thisRFC] | |||
-- - Using the choice EncryptedValue is bit-compatible to the | -- - Using the choice EncryptedValue is bit-compatible to the | |||
-- - syntax without this change | -- - syntax without this change | |||
-- id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} | -- id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} | |||
-- ImplicitConfirmValue ::= NULL | -- ImplicitConfirmValue ::= NULL | |||
-- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | -- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | |||
-- ConfirmWaitTimeValue ::= GeneralizedTime | -- ConfirmWaitTimeValue ::= GeneralizedTime | |||
-- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | -- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | |||
-- OrigPKIMessageValue ::= PKIMessages | -- OrigPKIMessageValue ::= PKIMessages | |||
-- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | -- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | |||
-- SuppLangTagsValue ::= SEQUENCE OF UTF8String | -- SuppLangTagsValue ::= SEQUENCE OF UTF8String | |||
-- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | -- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | |||
-- CaCertsValue ::= SEQUENCE OF CMPCertificate | -- CaCertsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- CMPCertificate | ||||
-- - id-it-caCerts added in CMP Updates [thisRFC] | -- - id-it-caCerts added in CMP Updates [thisRFC] | |||
-- id-it-rootCaKeyUpdate OBJECT IDENTIFIER ::= {id-it 18} | -- id-it-trustAnchorUpdate OBJECT IDENTIFIER ::= {id-it 18} | |||
-- RootCaKeyUpdateValue ::= RootCaKeyUpdateContent | -- TrustAnchorUpdateValue ::= TrustAnchorUpdate | |||
-- - id-it-rootCaKeyUpdate added in CMP Updates [thisRFC] | -- - id-it-trustAnchorUpdate added in CMP Updates [thisRFC] | |||
-- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | -- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | |||
-- CertReqTemplateValue ::= CertReqTemplateContent | -- CertReqTemplateValue ::= CertReqTemplateContent | |||
-- - id-it-certReqTemplate added in CMP Updates [thisRFC] | -- - id-it-certReqTemplate added in CMP Updates [thisRFC] | |||
-- id-it-rootCaCert OBJECT IDENTIFIER ::= {id-it 20} | -- id-it-oldTrustAnchor OBJECT IDENTIFIER ::= {id-it 20} | |||
-- RootCaCertValue ::= CMPCertificate | -- OldTrustAnchorValue ::= OldTrustAnchor | |||
-- - id-it-rootCaCert added in CMP Updates [thisRFC] | -- - id-it-oldTrustAnchor added in CMP Updates [thisRFC] | |||
-- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | -- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | |||
-- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF UTF8String | -- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- - id-it-certProfile added in CMP Updates [thisRFC] | -- UTF8String | |||
-- - id-it-certProfile added in CMP Updates [thisRFC] | ||||
-- id-it-crlStatusList OBJECT IDENTIFIER ::= {id-it TBD1} | ||||
-- CRLStatusListValue ::= SEQUENCE SIZE (1..MAX) OF | ||||
-- CRLStatus | ||||
-- - id-it-crlStatusList added in CMP Updates [thisRFC] | ||||
-- id-it-crls OBJECT IDENTIFIER ::= {id-it TBD2} | ||||
-- CRLsValue ::= SEQUENCE SIZE (1..MAX) OF | ||||
-- CertificateList | ||||
-- - id-it-crls added in CMP Updates [thisRFC] | ||||
-- | -- | |||
-- where | -- where | |||
-- | -- | |||
-- id-pkix OBJECT IDENTIFIER ::= { | -- id-pkix OBJECT IDENTIFIER ::= { | |||
-- iso(1) identified-organization(3) | -- iso(1) identified-organization(3) | |||
-- dod(6) internet(1) security(5) mechanisms(5) pkix(7)} | -- dod(6) internet(1) security(5) mechanisms(5) pkix(7)} | |||
-- and | -- and | |||
-- id-it OBJECT IDENTIFIER ::= {id-pkix 4} | -- id-it OBJECT IDENTIFIER ::= {id-pkix 4} | |||
-- | -- | |||
-- | -- | |||
skipping to change at page 39, line 29 ¶ | skipping to change at page 50, line 49 ¶ | |||
standard done in [RFC5912] as well as changes made in this document. | standard done in [RFC5912] as well as changes made in this document. | |||
PKIXCMP-2021 | PKIXCMP-2021 | |||
{ iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
id-mod-cmp2021-02(100) } | id-mod-cmp2021-02(100) } | |||
DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
BEGIN | BEGIN | |||
IMPORTS | IMPORTS | |||
AttributeSet{}, Extensions{}, EXTENSION, ATTRIBUTE | AttributeSet{}, SingleAttribute{}, Extensions{}, EXTENSION, ATTRIBUTE | |||
FROM PKIX-CommonTypes-2009 | FROM PKIX-CommonTypes-2009 | |||
{iso(1) identified-organization(3) dod(6) internet(1) security(5) | {iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} | mechanisms(5) pkix(7) id-mod(0) id-mod-pkixCommon-02(57)} | |||
AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, ALGORITHM, | AlgorithmIdentifier{}, SIGNATURE-ALGORITHM, ALGORITHM, | |||
DIGEST-ALGORITHM, MAC-ALGORITHM | DIGEST-ALGORITHM, MAC-ALGORITHM | |||
FROM AlgorithmInformation-2009 | FROM AlgorithmInformation-2009 | |||
{iso(1) identified-organization(3) dod(6) internet(1) security(5) | {iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) id-mod(0) | mechanisms(5) pkix(7) id-mod(0) | |||
id-mod-algorithmInformation-02(58)} | id-mod-algorithmInformation-02(58)} | |||
skipping to change at page 40, line 4 ¶ | skipping to change at page 51, line 23 ¶ | |||
FROM PKIX1Explicit-2009 | FROM PKIX1Explicit-2009 | |||
{iso(1) identified-organization(3) dod(6) internet(1) security(5) | {iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} | mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51)} | |||
GeneralName, KeyIdentifier | GeneralName, KeyIdentifier | |||
FROM PKIX1Implicit-2009 | FROM PKIX1Implicit-2009 | |||
{iso(1) identified-organization(3) dod(6) internet(1) security(5) | {iso(1) identified-organization(3) dod(6) internet(1) security(5) | |||
mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} | mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-implicit-02(59)} | |||
CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | CertTemplate, PKIPublicationInfo, EncryptedKey, CertId, | |||
CertReqMessages, Controls, id-regCtrl | CertReqMessages, Controls, RegControlSet, id-regCtrl | |||
FROM PKIXCRMF-2009 | FROM PKIXCRMF-2009 | |||
{ iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
id-mod-crmf2005-02(55) } | id-mod-crmf2005-02(55) } | |||
-- The import of EncryptedKey is added due to the updates made | -- The import of EncryptedKey is added due to the updates made | |||
-- in CMP Updates [thisRFC]. EncryptedValue does not need to | -- in CMP Updates [thisRFC]. EncryptedValue does not need to | |||
-- be imported anymore and is therefore removed here. | -- be imported anymore and is therefore removed here. | |||
-- see also the behavioral clarifications to CRMF codified in | -- see also the behavioral clarifications to CRMF codified in | |||
-- Appendix C of this specification | -- Appendix C of this specification | |||
skipping to change at page 46, line 37 ¶ | skipping to change at page 58, line 8 ¶ | |||
-- corresponding Challenge. | -- corresponding Challenge. | |||
CertRepMessage ::= SEQUENCE { | CertRepMessage ::= SEQUENCE { | |||
caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate | |||
OPTIONAL, | OPTIONAL, | |||
response SEQUENCE OF CertResponse } | response SEQUENCE OF CertResponse } | |||
CertResponse ::= SEQUENCE { | CertResponse ::= SEQUENCE { | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this response with the corresponding request (a value | -- to match this response with the corresponding request (a value | |||
-- of 0 is to be used if certReqId is not specified in the | -- of -1 is to be used if certReqId is not specified in the | |||
-- corresponding request, which can only be a p10cr) | -- corresponding request, which can only be a p10cr) | |||
status PKIStatusInfo, | status PKIStatusInfo, | |||
certifiedKeyPair CertifiedKeyPair OPTIONAL, | certifiedKeyPair CertifiedKeyPair OPTIONAL, | |||
rspInfo OCTET STRING OPTIONAL | rspInfo OCTET STRING OPTIONAL | |||
-- analogous to the id-regInfo-utf8Pairs string defined | -- analogous to the id-regInfo-utf8Pairs string defined | |||
-- for regInfo in CertReqMsg [RFC4211] | -- for regInfo in CertReqMsg [RFC4211] | |||
} | } | |||
CertifiedKeyPair ::= SEQUENCE { | CertifiedKeyPair ::= SEQUENCE { | |||
certOrEncCert CertOrEncCert, | certOrEncCert CertOrEncCert, | |||
skipping to change at page 48, line 23 ¶ | skipping to change at page 59, line 40 ¶ | |||
badSinceDate GeneralizedTime, | badSinceDate GeneralizedTime, | |||
crlDetails Extensions{{...}} OPTIONAL | crlDetails Extensions{{...}} OPTIONAL | |||
-- extra CRL details (e.g., crl number, reason, location, etc.) | -- extra CRL details (e.g., crl number, reason, location, etc.) | |||
} | } | |||
CRLAnnContent ::= SEQUENCE OF CertificateList | CRLAnnContent ::= SEQUENCE OF CertificateList | |||
PKIConfirmContent ::= NULL | PKIConfirmContent ::= NULL | |||
NestedMessageContent ::= PKIMessages | NestedMessageContent ::= PKIMessages | |||
-- Added in CMP Updates [thisRFC] | -- CertReqTemplateContent, AttributeTypeAndValue, | |||
-- ExpandedRegControlSet, id-regCtrl-altCertTemplate, | ||||
RootCaKeyUpdateContent ::= SEQUENCE { | -- AltCertTemplate, regCtrl-algId, id-regCtrl-algId, AlgIdCtrl, | |||
newWithNew CMPCertificate, | -- regCtrl-rsaKeyLen, id-regCtrl-rsaKeyLen, and RsaKeyLenCtrl | |||
-- new root CA certificate | -- were added in CMP Updates [thisRFC] | |||
newWithOld [0] CMPCertificate OPTIONAL, | ||||
-- X.509 certificate containing the new public root CA key | ||||
-- signed with the old private root CA key | ||||
oldWithNew [1] CMPCertificate OPTIONAL | ||||
-- X.509 certificate containing the old public root CA key | ||||
-- signed with the new private root CA key | ||||
} | ||||
-- Added in CMP Updates [thisRFC] | ||||
CertReqTemplateContent ::= SEQUENCE { | CertReqTemplateContent ::= SEQUENCE { | |||
certTemplate CertTemplate, | certTemplate CertTemplate, | |||
-- prefilled certTemplate structure elements | -- prefilled certTemplate structure elements | |||
-- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | -- The SubjectPublicKeyInfo field in the certTemplate MUST NOT | |||
-- be used. | -- be used. | |||
keySpec Controls OPTIONAL | keySpec Controls OPTIONAL | |||
-- MAY be used to specify supported algorithms. | -- MAY be used to specify supported algorithms. | |||
-- Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue | -- Controls ::= SEQUENCE SIZE (1..MAX) OF AttributeTypeAndValue | |||
-- as specified in CRMF (RFC4211) | -- as specified in CRMF (RFC4211) | |||
} | } | |||
AttributeTypeAndValue ::= SingleAttribute{{ ... }} | ||||
ExpandedRegControlSet ATTRIBUTE ::= { RegControlSet | | ||||
regCtrl-altCertTemplate | regCtrl-algId | regCtrl-rsaKeyLen, ... } | ||||
regCtrl-altCertTemplate ATTRIBUTE ::= | ||||
{ TYPE AltCertTemplate IDENTIFIED BY id-regCtrl-altCertTemplate } | ||||
id-regCtrl-altCertTemplate OBJECT IDENTIFIER ::= { id-regCtrl 7 } | ||||
AltCertTemplate ::= AttributeTypeAndValue | ||||
-- specifies a template for a certificate other than an X.509v3 | ||||
-- public-key certificate | ||||
regCtrl-algId ATTRIBUTE ::= | ||||
{ TYPE AlgIdCtrl IDENTIFIED BY id-regCtrl-algId } | ||||
id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl 11 } | id-regCtrl-algId OBJECT IDENTIFIER ::= { id-regCtrl 11 } | |||
AlgIdCtrl ::= AlgorithmIdentifier{ALGORITHM, {...}} | ||||
-- SHALL be used to specify suported algorithms other than RSA | AlgIdCtrl ::= AlgorithmIdentifier{ALGORITHM, {...}} | |||
-- SHALL be used to specify supported algorithms other than RSA | ||||
regCtrl-rsaKeyLen ATTRIBUTE ::= | ||||
{ TYPE RsaKeyLenCtrl IDENTIFIED BY id-regCtrl-rsaKeyLen } | ||||
id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | id-regCtrl-rsaKeyLen OBJECT IDENTIFIER ::= { id-regCtrl 12 } | |||
RsaKeyLenCtrl ::= INTEGER | ||||
-- SHALL be used to specify suported RSA key lengths | RsaKeyLenCtrl ::= INTEGER (1..MAX) | |||
-- SHALL be used to specify supported RSA key lengths | ||||
-- OldTrustAnchor, TrustAnchorUpdateContent, CRLSource, and CRLStatus | ||||
-- were added in CMP Updates [thisRFC] | ||||
OldTrustAnchor ::= CHOICE { | ||||
certificate CMPCertificate, | ||||
publicKey BIT STRING | ||||
} | ||||
TrustAnchorUpdate ::= SEQUENCE { | ||||
newWithNew CMPCertificate, | ||||
-- new root CA certificate | ||||
newWithOld [0] CMPCertificate OPTIONAL, | ||||
-- X.509 certificate containing the new public root CA key | ||||
-- signed with the old private root CA key | ||||
oldWithNew [1] CMPCertificate OPTIONAL | ||||
-- X.509 certificate containing the old public root CA key | ||||
-- signed with the new private root CA key | ||||
} | ||||
CRLSource ::= CHOICE { | ||||
dpn [0] DistributionPointName, | ||||
issuer [1] GeneralNames } | ||||
CRLStatus ::= SEQUENCE { | ||||
source CRLSource, | ||||
thisUpdate Time OPTIONAL } | ||||
INFO-TYPE-AND-VALUE ::= TYPE-IDENTIFIER | INFO-TYPE-AND-VALUE ::= TYPE-IDENTIFIER | |||
InfoTypeAndValue ::= SEQUENCE { | InfoTypeAndValue ::= SEQUENCE { | |||
infoType INFO-TYPE-AND-VALUE. | infoType INFO-TYPE-AND-VALUE. | |||
&id({SupportedInfoSet}), | &id({SupportedInfoSet}), | |||
infoValue INFO-TYPE-AND-VALUE. | infoValue INFO-TYPE-AND-VALUE. | |||
&Type({SupportedInfoSet}{@infoType}) } | &Type({SupportedInfoSet}{@infoType}) } | |||
SupportedInfoSet INFO-TYPE-AND-VALUE ::= { ... } | SupportedInfoSet INFO-TYPE-AND-VALUE ::= { ... } | |||
-- Example InfoTypeAndValue contents include, but are not limited | -- Example InfoTypeAndValue contents include, but are not limited | |||
-- to, the following (uncomment in this ASN.1 module and use as | -- to, the following (uncomment in this ASN.1 module and use as | |||
-- appropriate for a given environment): | -- appropriate for a given environment): | |||
-- | -- | |||
-- id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} | -- id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1} | |||
-- CAProtEncCertValue ::= CMPCertificate | -- CAProtEncCertValue ::= CMPCertificate | |||
-- id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} | -- id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2} | |||
-- SignKeyPairTypesValue ::= SEQUENCE OF | -- SignKeyPairTypesValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- AlgorithmIdentifier{{...}} | -- AlgorithmIdentifier{{...}} | |||
-- id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} | -- id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3} | |||
-- EncKeyPairTypesValue ::= SEQUENCE OF | -- EncKeyPairTypesValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- AlgorithmIdentifier{{...}} | -- AlgorithmIdentifier{{...}} | |||
-- id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} | -- id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4} | |||
-- PreferredSymmAlgValue ::= AlgorithmIdentifier{{...}} | -- PreferredSymmAlgValue ::= AlgorithmIdentifier{{...}} | |||
-- id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} | -- id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5} | |||
-- CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent | -- CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent | |||
-- id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} | -- id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6} | |||
-- CurrentCRLValue ::= CertificateList | -- CurrentCRLValue ::= CertificateList | |||
-- id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} | -- id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7} | |||
-- UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER | -- UnsupportedOIDsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- OBJECT IDENTIFIER | ||||
-- id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} | -- id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10} | |||
-- KeyPairParamReqValue ::= OBJECT IDENTIFIER | -- KeyPairParamReqValue ::= OBJECT IDENTIFIER | |||
-- id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} | -- id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11} | |||
-- KeyPairParamRepValue ::= AlgorithmIdentifer | -- KeyPairParamRepValue ::= AlgorithmIdentifier{{...}} | |||
-- id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} | -- id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12} | |||
-- RevPassphraseValue ::= EncryptedKey | -- RevPassphraseValue ::= EncryptedKey | |||
-- - Changed from Encrypted Value to EncryptedKey as a CHOICE | -- - Changed from Encrypted Value to EncryptedKey as a CHOICE | |||
-- - of EncryptedValue and EnvelopedData due to the changes | -- - of EncryptedValue and EnvelopedData due to the changes | |||
-- - made in CMP Updates [thisRFC] | -- - made in CMP Updates [thisRFC] | |||
-- - Using the choice EncryptedValue is bit-compatible to | -- - Using the choice EncryptedValue is bit-compatible to | |||
-- - the syntax without this change | -- - the syntax without this change | |||
-- id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} | -- id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13} | |||
-- ImplicitConfirmValue ::= NULL | -- ImplicitConfirmValue ::= NULL | |||
-- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | -- id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14} | |||
-- ConfirmWaitTimeValue ::= GeneralizedTime | -- ConfirmWaitTimeValue ::= GeneralizedTime | |||
-- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | -- id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15} | |||
-- OrigPKIMessageValue ::= PKIMessages | -- OrigPKIMessageValue ::= PKIMessages | |||
-- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | -- id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16} | |||
-- SuppLangTagsValue ::= SEQUENCE OF UTF8String | -- SuppLangTagsValue ::= SEQUENCE OF UTF8String | |||
-- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | -- id-it-caCerts OBJECT IDENTIFIER ::= {id-it 17} | |||
-- CaCertsValue ::= SEQUENCE OF CMPCertificate | -- CaCertsValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- CMPCertificate | ||||
-- - id-it-caCerts added in CMP Updates [thisRFC] | -- - id-it-caCerts added in CMP Updates [thisRFC] | |||
-- id-it-rootCaKeyUpdate OBJECT IDENTIFIER ::= {id-it 18} | -- id-it-trustAnchorUpdate OBJECT IDENTIFIER ::= {id-it 18} | |||
-- RootCaKeyUpdateValue ::= RootCaKeyUpdateContent | -- TrustAnchorUpdateValue ::= TrustAnchorUpdate | |||
-- - id-it-rootCaKeyUpdate added in CMP Updates [thisRFC] | -- - id-it-trustAnchorUpdate added in CMP Updates [thisRFC] | |||
-- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | -- id-it-certReqTemplate OBJECT IDENTIFIER ::= {id-it 19} | |||
-- CertReqTemplateValue ::= CertReqTemplateContent | -- CertReqTemplateValue ::= CertReqTemplateContent | |||
-- - id-it-certReqTemplate added in CMP Updates [thisRFC] | -- - id-it-certReqTemplate added in CMP Updates [thisRFC] | |||
-- id-it-rootCaCert OBJECT IDENTIFIER ::= {id-it 20} | -- id-it-oldTrustAnchor OBJECT IDENTIFIER ::= {id-it 20} | |||
-- RootCaCertValue ::= CMPCertificate | -- OldTrustAnchorValue ::= OldTrustAnchor | |||
-- - id-it-rootCaCert added in CMP Updates [thisRFC] | -- - id-it-oldTrustAnchor added in CMP Updates [thisRFC] | |||
-- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | -- id-it-certProfile OBJECT IDENTIFIER ::= {id-it 21} | |||
-- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF UTF8String | -- CertProfileValue ::= SEQUENCE SIZE (1..MAX) OF | |||
-- - id-it-certProfile added in CMP Updates [thisRFC] | -- UTF8String | |||
-- - id-it-certProfile added in CMP Updates [thisRFC] | ||||
-- id-it-crlStatusList OBJECT IDENTIFIER ::= {id-it TBD1} | ||||
-- CRLStatusListValue ::= SEQUENCE SIZE (1..MAX) OF | ||||
-- CRLStatus | ||||
-- - id-it-crlStatusList added in CMP Updates [thisRFC] | ||||
-- id-it-crls OBJECT IDENTIFIER ::= {id-it TBD2} | ||||
-- CRLsValue ::= SEQUENCE SIZE (1..MAX) OF | ||||
-- CertificateList | ||||
-- - id-it-crls added in CMP Updates [thisRFC] | ||||
-- | -- | |||
-- where | -- where | |||
-- | -- | |||
-- id-pkix OBJECT IDENTIFIER ::= { | -- id-pkix OBJECT IDENTIFIER ::= { | |||
-- iso(1) identified-organization(3) | -- iso(1) identified-organization(3) | |||
-- dod(6) internet(1) security(5) mechanisms(5) pkix(7)} | -- dod(6) internet(1) security(5) mechanisms(5) pkix(7)} | |||
-- and | -- and | |||
-- id-it OBJECT IDENTIFIER ::= {id-pkix 4} | -- id-it OBJECT IDENTIFIER ::= {id-pkix 4} | |||
-- | -- | |||
-- | -- | |||
skipping to change at page 51, line 16 ¶ | skipping to change at page 63, line 37 ¶ | |||
pKIStatusInfo PKIStatusInfo, | pKIStatusInfo PKIStatusInfo, | |||
errorCode INTEGER OPTIONAL, | errorCode INTEGER OPTIONAL, | |||
-- implementation-specific error codes | -- implementation-specific error codes | |||
errorDetails PKIFreeText OPTIONAL | errorDetails PKIFreeText OPTIONAL | |||
-- implementation-specific error details | -- implementation-specific error details | |||
} | } | |||
CertConfirmContent ::= SEQUENCE OF CertStatus | CertConfirmContent ::= SEQUENCE OF CertStatus | |||
CertStatus ::= SEQUENCE { | CertStatus ::= SEQUENCE { | |||
hashAlg [0] AlgorithmIdentifier OPTIONAL, | ||||
-- the hash algorithm to use for calculating certHash | ||||
-- SHOULD NOT be used in all cases where the AlgorithmIdentifier | ||||
-- of the certificate signature specifies a hash algorithm | ||||
certHash OCTET STRING, | certHash OCTET STRING, | |||
-- the hash of the certificate, using the same hash algorithm | -- the hash of the certificate, using the same hash algorithm | |||
-- as is used to create and verify the certificate signature | -- as is used to create and verify the certificate signature | |||
certReqId INTEGER, | certReqId INTEGER, | |||
-- to match this confirmation with the corresponding req/rep | -- to match this confirmation with the corresponding req/rep | |||
statusInfo PKIStatusInfo OPTIONAL } | statusInfo PKIStatusInfo OPTIONAL, | |||
hashAlg [0] AlgorithmIdentifier OPTIONAL | ||||
-- the hash algorithm to use for calculating certHash | ||||
-- SHOULD NOT be used in all cases where the AlgorithmIdentifier | ||||
-- of the certificate signature specifies a hash algorithm | ||||
} | ||||
PollReqContent ::= SEQUENCE OF SEQUENCE { | PollReqContent ::= SEQUENCE OF SEQUENCE { | |||
certReqId INTEGER } | certReqId INTEGER } | |||
PollRepContent ::= SEQUENCE OF SEQUENCE { | PollRepContent ::= SEQUENCE OF SEQUENCE { | |||
certReqId INTEGER, | certReqId INTEGER, | |||
checkAfter INTEGER, -- time in seconds | checkAfter INTEGER, -- time in seconds | |||
reason PKIFreeText OPTIONAL } | reason PKIFreeText OPTIONAL } | |||
-- | -- | |||
skipping to change at page 52, line 5 ¶ | skipping to change at page 64, line 29 ¶ | |||
-- id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | -- id-kp-cmcRA OBJECT IDENTIFIER ::= { id-kp 28 } | |||
id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | id-kp-cmKGA OBJECT IDENTIFIER ::= { id-kp 32 } | |||
END | END | |||
Appendix B. History of changes | Appendix B. History of changes | |||
Note: This appendix will be deleted in the final version of the | Note: This appendix will be deleted in the final version of the | |||
document. | document. | |||
From version 12 -> 13: | ||||
* Added John Gray to the list of authors due to fruitful discussion | ||||
and important proposals | ||||
* Fixed errata no. 2615, 2616, 3949, 4078, and 5201 on RFC 4210 | ||||
* Added reference on RFC 8933 regarding CMS signedAttrs to | ||||
Section 2.7 | ||||
* Updated Section 2.9 and the ASN.1 modules moving the position of | ||||
the hashAlg field (see thread "[CMP Updates] position of hashAlg | ||||
in certStatus") | ||||
* Changed "rootCaCert" from generalInfo to genm body and generalized | ||||
to "oldTrustAnchor", renaming "rootCaKeyUpdate" to | ||||
"trustAnchorUpdate" in Sections 2.14, A.1, and A.2, removing | ||||
former Section 2.4 | ||||
* Added genm use case "CRL update retrieval" in Section 2.16, A.1, | ||||
and A.2. (see thread "[CMP Updates] Requesting a current CRL") | ||||
* Updated Section 2.18 and 2.17 to support polling for all kinds of | ||||
CMP request messages initiated by an error message with status | ||||
"waiting" as initially discussed at IETF 111 | ||||
* Updated Sections 2.19 and 2.20 regarding version handling | ||||
* Added further OIDs and a TBD regarding reordering of the OIDs | ||||
* Added Sections 2.21 to 2.23 with new security considerations and | ||||
updated Section 5 accordingly | ||||
* Added a ToDo regarding OID registration, renaming, and re-ordering | ||||
* Added Section 3.1 updating the introduction of RFC 6712 | ||||
* Fixed some nits in the ASN.1 modules (see thread "draft-ietf- | ||||
lamps-cmp-updates-12: Comments on A.1. 1988 ASN.1 Module" and | ||||
"draft-ietf-lamps-cmp-updates-12: Comments on A.2. 2002 ASN.1 | ||||
Module") | ||||
* Replaced the term "transport" by "transfer" where appropriate to | ||||
prevent confusion | ||||
* Minor editorial changes | ||||
From version 11 -> 12: | From version 11 -> 12: | |||
* Extended Section 2.5 and the ASN.1 modules in Appendix A to allow | * Extended Section 2.5 and the ASN.1 modules in Appendix A to allow | |||
a sequence of certificate profiles in CertProfileValue (see thread | a sequence of certificate profiles in CertProfileValue (see thread | |||
"id-it-CertProfile in draft-ietf-lamps-cmp-updates") | "id-it-CertProfile in draft-ietf-lamps-cmp-updates") | |||
From version 10 -> 11: | From version 10 -> 11: | |||
* Add Section 2.10 to add an additional hashAlg field to the | * Add Section 2.10 to add an additional hashAlg field to the | |||
CertStatus type to support certificates signed with a signature | CertStatus type to support certificates signed with a signature | |||
skipping to change at page 52, line 34 ¶ | skipping to change at page 65, line 42 ¶ | |||
From version 9 -> 10: | From version 9 -> 10: | |||
* Added 1988 ASN.1 syntax for localKeyId attribute to Appendix A.1 | * Added 1988 ASN.1 syntax for localKeyId attribute to Appendix A.1 | |||
From version 08 -> 09: | From version 08 -> 09: | |||
* Deleted specific definition of CMP CA and CMP RA in Section 2.2 | * Deleted specific definition of CMP CA and CMP RA in Section 2.2 | |||
and only reference RFC 6402 for definition of id-kp-cmcCA and id- | and only reference RFC 6402 for definition of id-kp-cmcCA and id- | |||
kp-cmcRA to resolve the ToDo below based on feedback of Tomas | kp-cmcRA to resolve the ToDo below based on feedback of Tomas | |||
Gustavesson | Gustavsson | |||
* Added Section 2.4. and 2.5 to define id-it-rootCaCert and id-it- | * Added Section 2.4. and 2.5 to define id-it-rootCaCert and id-it- | |||
certProfile to be used in Section 2.14 and 2.15 | certProfile to be used in Section 2.14 and 2.15 | |||
* Added reference to CMP Algorithms in Section 2.8 | * Added reference to CMP Algorithms in Section 2.8 | |||
* Extended Section 2.14 to explicitly indicate the root CA an update | * Extended Section 2.14 to explicitly indicate the root CA an update | |||
is requested for by using id-it-rootCaCert and changing the ASN.1 | is requested for by using id-it-rootCaCert and changing the ASN.1 | |||
syntax to require providing the newWithOld certificate in the | syntax to require providing the newWithOld certificate in the | |||
response message | response message | |||
* Extended Section 2.15 to explicitly indicate the certificate | * Extended Section 2.15 to explicitly indicate the certificate | |||
request template by using id-it-certProfile and on further details | request template by using id-it-certProfile and on further details | |||
of the newly introduced controls | of the newly introduced controls | |||
* Deleted the table on id-kp-cmcCA and id-kp-cmcRA and adding id-it- | * Deleted the table on id-kp-cmcCA and id-kp-cmcRA and adding id-it- | |||
rootCaCert and id-it-certProfile in Section 2.19 | rootCaCert and id-it-certProfile in Section 2.19 | |||
* Adding the definition of id-it-rootCaCert and id-it-certProfile in | * Adding the definition of id-it-rootCaCert and id-it-certProfile in | |||
both ASN.1 modules in Appendix A | both ASN.1 modules in Appendix A | |||
* Minor editorial changes reflecting the above changes | * Minor editorial changes reflecting the above changes | |||
From version 07 -> 08: | From version 07 -> 08: | |||
skipping to change at page 53, line 49 ¶ | skipping to change at page 67, line 13 ¶ | |||
From version 05 -> 06: | From version 05 -> 06: | |||
* Added the update of Appendix D.2 with the reference to the new CMP | * Added the update of Appendix D.2 with the reference to the new CMP | |||
Algorithms document as decided in IETF 108 | Algorithms document as decided in IETF 108 | |||
* Updated the IANA considerations to register new OIDs for id- | * Updated the IANA considerations to register new OIDs for id- | |||
regCtrl-algId and d-regCtrl-rsaKeyLen. | regCtrl-algId and d-regCtrl-rsaKeyLen. | |||
* Minor changes and corrections | * Minor changes and corrections | |||
From version 04 -> 05: | From version 04 -> 05: | |||
* Added Section 2.11 and Section 2.12 to clarify the usage of these | * Added Section 2.10 and Section 2.11 to clarify the usage of these | |||
general messages types with EC curves (see thread | general messages types with EC curves (see thread | |||
"AlgorithmIdentifier parameters NULL value - Re: InfoTypeAndValue | "AlgorithmIdentifier parameters NULL value - Re: InfoTypeAndValue | |||
in CMP headers") | in CMP headers") | |||
* Split former section 2.7 on adding 'CA Certificates', 'Root CA | * Split former section 2.7 on adding 'CA Certificates', 'Root CA | |||
Certificates Update', and 'Certificate Request Template' in three | Certificates Update', and 'Certificate Request Template' in three | |||
separate sections for easier readability | separate sections for easier readability | |||
* Changed in Section 2.15 the ASN.1 syntax of CertReqTemplateValue | * Changed in Section 2.14 the ASN.1 syntax of CertReqTemplateValue | |||
from using reaKeyLen to usage of controls as specified in CRMF | from using rsaKeyLen to usage of controls as specified in CRMF | |||
Section 6 [RFC4211] (see thread "dtaft-ietf-lamps-cmp-updates and | Section 6 [RFC4211] (see thread "dtaft-ietf-lamps-cmp-updates and | |||
rsaKeyLen") | rsaKeyLen") | |||
* Updated the IANA considerations in Section 2.20 to introduce new | * Updated the IANA considerations in Section 2.24 to introduce new | |||
OID for id-regCtrl-algId and id-regCtrl-rsaKeyLen (see thread | OID for id-regCtrl-algId and id-regCtrl-rsaKeyLen (see thread | |||
"dtaft-ietf-lamps-cmp-updates and rsaKeyLen") | "dtaft-ietf-lamps-cmp-updates and rsaKeyLen") | |||
* Updated the IANA Considerations in and the Appendixes to introduce | * Updated the IANA Considerations in and the Appendixes to introduce | |||
new OID for the updates ASN.1 modules (see thread "I-D Action: | new OID for the updates ASN.1 modules (see thread "I-D Action: | |||
draft-ietf-lamps-cmp-updates-04.txt") | draft-ietf-lamps-cmp-updates-04.txt") | |||
* Removed EncryptedValue from and added Controls to the list of | * Removed EncryptedValue from and added Controls to the list of | |||
types imported from CRMF [RFC4211] in ASN.1 modules (see thread | types imported from CRMF [RFC4211] in ASN.1 modules (see thread | |||
"draft-ietf-lamps-cmp-updates and the ASN.1 modules") | "draft-ietf-lamps-cmp-updates and the ASN.1 modules") | |||
* Moved declaration of Rand out of the comment in ASN.1 modules (see | * Moved declaration of Rand out of the comment in ASN.1 modules (see | |||
thread "draft-ietf-lamps-cmp-updates and the ASN.1 modules") | thread "draft-ietf-lamps-cmp-updates and the ASN.1 modules") | |||
* Minor changes and corrections | * Minor changes and corrections | |||
From version 03 -> 04: | From version 03 -> 04: | |||
* Added Section 2.7 to introduce three new id-it IDs for uses in | * Added Section 2.7 to introduce three new id-it IDs for uses in | |||
general messages as discussed (see thread "draft-ietf-lamps-cmp- | general messages as discussed (see thread "draft-ietf-lamps-cmp- | |||
updates add section to introduce id-it-caCerts, id-it- | updates add section to introduce id-it-caCerts, id-it- | |||
rootCaKeyUpdate, and id-it-certReqTemplate") | rootCaKeyUpdate, and id-it-certReqTemplate") | |||
* Added the new id-it IDs and the /.well-known/cmp to the IANA | * Added the new id-it IDs and the /.well-known/cmp to the IANA | |||
Considerations of [RFC4210] in Section 2.9 | Considerations of [RFC4210] in Section 2.9 | |||
* Updated the IANA Considerations of [RFC4210] in Section 2.21 | * Updated the IANA Considerations of [RFC4210] in Section 2.25 | |||
* Some changes in wording on Section 3 due to review comments from | * Some changes in wording on Section 3 due to review comments from | |||
Martin Peylo | Martin Peylo | |||
From version 02 -> 03: | From version 02 -> 03: | |||
* Added a ToDo on aligning with the CMP Algorithms draft that will | * Added a ToDo on aligning with the CMP Algorithms draft that will | |||
be set up as decided in IETF 108 | be set up as decided in IETF 108 | |||
* Updated section on Encrypted Values in Section 2.8 to add the | ||||
* Updated section on Encrypted Values in Section 2.7 to add the | ||||
AsymmetricKey Package structure to transport a newly generated | AsymmetricKey Package structure to transport a newly generated | |||
private key as decided in IETF 108 | private key as decided in IETF 108 | |||
* Updated the IANA Considerations of [RFC4210] in Section 2.21 | * Updated the IANA Considerations of [RFC4210] in Section 2.25 | |||
* Added the pre-registered OID in Section 2.21 and the ASN.1 module | * Added the pre-registered OID in Section 2.25 and the ASN.1 module | |||
* Added Section 3 to document the changes to RFC 6712 [RFC6712] | * Added Section 3 to document the changes to RFC 6712 [RFC6712] | |||
regarding URI discovery and using the path-prefix of '/.well- | regarding URI discovery and using the path-prefix of '/.well- | |||
known/' as discussed in IETF 108 | known/' as discussed in IETF 108 | |||
* Updated the IANA Considerations section | * Updated the IANA Considerations section | |||
* Added a complete updated ASN.1 module in 1988 syntax to update | * Added a complete updated ASN.1 module in 1988 syntax to update | |||
Appendix F of [RFC4210] and a complete updated ASN.1 module in | Appendix F of [RFC4210] and a complete updated ASN.1 module in | |||
2002 syntax to update Section 9 of [RFC5912] | 2002 syntax to update Section 9 of [RFC5912] | |||
* Minor changes in wording | * Minor changes in wording | |||
From version 01 -> 02: | From version 01 -> 02: | |||
* Updated section on EKU OIDs in Section 2.2 as decided in IETF 107 | * Updated section on EKU OIDs in Section 2.2 as decided in IETF 107 | |||
* Changed from symmetric key-encryption to password-based key | * Changed from symmetric key-encryption to password-based key | |||
management technique in Section 2.8 as discussed with Russ and Jim | management technique in Section 2.7 as discussed with Russ and Jim | |||
on the mailing list | on the mailing list | |||
* Defined the attribute containing the key identifier for the | * Defined the attribute containing the key identifier for the | |||
revocation passphrase in Section 2.21 | revocation passphrase in Section 2.25 | |||
* Moved the change history to the Appendix | * Moved the change history to the Appendix | |||
From version 00 -> 01: | From version 00 -> 01: | |||
* Minor changes in wording | * Minor changes in wording | |||
From draft-brockhaus-lamps-cmp-updates-03 -> draft-ietf-lamps-cmp- | From draft-brockhaus-lamps-cmp-updates-03 -> draft-ietf-lamps-cmp- | |||
updates-00: | updates-00: | |||
* Changes required to reflect WG adoption | * Changes required to reflect WG adoption | |||
skipping to change at page 56, line 4 ¶ | skipping to change at page 69, line 15 ¶ | |||
* Added a section describing the new extended key usages | * Added a section describing the new extended key usages | |||
* Completed the section on changes to the specification of encrypted | * Completed the section on changes to the specification of encrypted | |||
values | values | |||
* Added a section on clarification to Appendix D.4 | * Added a section on clarification to Appendix D.4 | |||
* Minor generalization in RFC 4210 [RFC4210] Sections 5.1.3.4 and | * Minor generalization in RFC 4210 [RFC4210] Sections 5.1.3.4 and | |||
5.3.22 | 5.3.22 | |||
* Minor changes in wording | * Minor changes in wording | |||
Authors' Addresses | Authors' Addresses | |||
Hendrik Brockhaus | ||||
Hendrik Brockhaus (editor) | ||||
Siemens AG | Siemens AG | |||
Email: hendrik.brockhaus@siemens.com | Email: hendrik.brockhaus@siemens.com | |||
David von Oheimb | David von Oheimb | |||
Siemens AG | Siemens AG | |||
Email: david.von.oheimb@siemens.com | Email: david.von.oheimb@siemens.com | |||
John Gray | ||||
Entrust | ||||
Email: john.gray@entrust.com | ||||
End of changes. 144 change blocks. | ||||
289 lines changed or deleted | 854 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |