draft-ietf-cose-cbor-encoded-cert-01.txt | draft-ietf-cose-cbor-encoded-cert-02.txt | |||
---|---|---|---|---|
Network Working Group S. Raza | Network Working Group J. Preuss Mattsson | |||
Internet-Draft J. Hoeglund | Internet-Draft G. Selander | |||
Intended status: Standards Track RISE AB | Intended status: Standards Track Ericsson AB | |||
Expires: November 26, 2021 G. Selander | Expires: January 13, 2022 S. Raza | |||
J. Preuss Mattsson | J. Hoeglund | |||
Ericsson AB | RISE AB | |||
M. Furuhed | M. Furuhed | |||
Nexus Group | Nexus Group | |||
May 25, 2021 | July 12, 2021 | |||
CBOR Encoded X.509 Certificates (C509 Certificates) | CBOR Encoded X.509 Certificates (C509 Certificates) | |||
draft-ietf-cose-cbor-encoded-cert-01 | draft-ietf-cose-cbor-encoded-cert-02 | |||
Abstract | Abstract | |||
This document specifies a CBOR encoding of X.509 certificates. The | This document specifies a CBOR encoding of X.509 certificates. The | |||
resulting certificates are called C509 Certificates. The CBOR | resulting certificates are called C509 Certificates. The CBOR | |||
encoding supports a large subset of RFC 5280 and all certificates | encoding supports a large subset of RFC 5280 and all certificates | |||
compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, and CA/ | compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA | |||
Browser Forum Baseline Requirements profiles. When used to re-encode | eUICC, and CA/Browser Forum Baseline Requirements profiles. When | |||
DER encoded X.509 certificates, the CBOR encoding can in many cases | used to re-encode DER encoded X.509 certificates, the CBOR encoding | |||
reduce the size of RFC 7925 profiled certificates with over 50%. The | can in many cases reduce the size of RFC 7925 profiled certificates | |||
CBOR encoded structure can alternatively be signed directly | with over 50%. The CBOR encoded structure can alternatively be | |||
("natively signed"), which does not require re-encoding for the | signed directly ("natively signed"), which does not require re- | |||
signature to be verified. The document also specifies COSE headers | encoding for the signature to be verified. The document also | |||
as well as a TLS certificate type for C509 certificates. | specifies C509 COSE headers, a C509 TLS certificate type, and a C509 | |||
file format. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 November 26, 2021. | This Internet-Draft will expire on January 13, 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 | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | |||
3. CBOR Encoding . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. C509 Certificate . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Message Fields . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. Message Fields . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Encoding of subjectPublicKey and issuerSingatureValue . . 8 | 3.2. Encoding of subjectPublicKey and issuerSignatureValue . . 8 | |||
3.3. Encoding of Extensions . . . . . . . . . . . . . . . . . 9 | 3.3. Encoding of Extensions . . . . . . . . . . . . . . . . . 9 | |||
4. Compliance Requirements for Constrained IoT . . . . . . . . . 12 | 4. C509 Certificate Signing Request . . . . . . . . . . . . . . 14 | |||
5. Legacy Considerations . . . . . . . . . . . . . . . . . . . . 12 | 5. C509 Certificate Revocation List . . . . . . . . . . . . . . 15 | |||
6. Expected Certificate Sizes . . . . . . . . . . . . . . . . . 12 | 6. C509 Online Certificate Status Protocol . . . . . . . . . . . 16 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 7. C509 Processing and Certificate Issuance . . . . . . . . . . 16 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 8. Legacy Considerations . . . . . . . . . . . . . . . . . . . . 17 | |||
8.1. C509 Certificate Types Registry . . . . . . . . . . . . . 14 | 9. Expected Certificate Sizes . . . . . . . . . . . . . . . . . 17 | |||
8.2. C509 Certificate Attributes Registry . . . . . . . . . . 15 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
8.3. C509 Certificate Extensions Registry . . . . . . . . . . 17 | 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
8.4. C509 Certificate Certificate Policies Registry . . . . . 19 | 11.1. C509 Certificate Types Registry . . . . . . . . . . . . 19 | |||
8.5. C509 Certificate Extended Key Usages Registry . . . . . . 20 | 11.2. C509 Attributes Registry . . . . . . . . . . . . . . . . 20 | |||
8.6. C509 Certificate General Names Registry . . . . . . . . . 21 | 11.3. C509 Extensions Registry . . . . . . . . . . . . . . . . 23 | |||
8.7. C509 Certificate Signature Algorithms Registry . . . . . 22 | 11.4. C509 Certificate Policies Registry . . . . . . . . . . . 26 | |||
8.8. C509 Certificate Public Key Algorithms Registry . . . . . 25 | 11.5. C509 Policies Qualifiers Registry . . . . . . . . . . . 29 | |||
8.9. COSE Header Parameters Registry . . . . . . . . . . . . . 27 | 11.6. C509 Information Access Registry . . . . . . . . . . . . 29 | |||
8.10. TLS Certificate Types Registry . . . . . . . . . . . . . 28 | 11.7. C509 Extended Key Usages Registry . . . . . . . . . . . 32 | |||
8.11. CBOR Tags Registry . . . . . . . . . . . . . . . . . . . 29 | 11.8. C509 General Names Registry . . . . . . . . . . . . . . 33 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 11.9. C509 Signature Algorithms Registry . . . . . . . . . . . 35 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 29 | 11.10. C509 Public Key Algorithms Registry . . . . . . . . . . 38 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 30 | 11.11. COSE Header Parameters Registry . . . . . . . . . . . . 41 | |||
Appendix A. Example C509 Certificates . . . . . . . . . . . . . 32 | 11.12. TLS Certificate Types Registry . . . . . . . . . . . . . 42 | |||
A.1. Example RFC 7925 profiled X.509 Certificate . . . . . . . 32 | 11.13. CBOR Tags Registry . . . . . . . . . . . . . . . . . . . 43 | |||
A.2. Example IEEE 802.1AR profiled X.509 Certificate . . . . . 36 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 | |||
A.3. Example CAB Baseline ECDSA HTTPS X.509 Certificate . . . 36 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 43 | |||
A.4. Example CAB Baseline RSA HTTPS X.509 Certificate . . . . 39 | 12.2. Informative References . . . . . . . . . . . . . . . . . 44 | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 42 | Appendix A. Example C509 Certificates . . . . . . . . . . . . . 47 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 | A.1. Example RFC 7925 profiled X.509 Certificate . . . . . . . 47 | |||
A.2. Example IEEE 802.1AR profiled X.509 Certificate . . . . . 50 | ||||
A.3. Example CAB Baseline ECDSA HTTPS X.509 Certificate . . . 50 | ||||
A.4. Example CAB Baseline RSA HTTPS X.509 Certificate . . . . 54 | ||||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 57 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 57 | ||||
1. Introduction | 1. Introduction | |||
One of the challenges with deploying a Public Key Infrastructure | One of the challenges with deploying a Public Key Infrastructure | |||
(PKI) for the Internet of Things (IoT) is the size and parsing of | (PKI) for the Internet of Things (IoT) is the size and parsing of | |||
X.509 public key certificates [RFC5280], since those are not | X.509 public key certificates [RFC5280], since those are not | |||
optimized for constrained environments [RFC7228]. Large certificate | optimized for constrained environments [RFC7228]. Large certificate | |||
chains are also problematic in non-constrained protocols such as EAP- | chains are also problematic in non-constrained protocols such as EAP- | |||
TLS [I-D.ietf-emu-eap-tls13] [I-D.ietf-emu-eaptlscert] where | TLS [I-D.ietf-emu-eap-tls13] [I-D.ietf-emu-eaptlscert] where | |||
authenticators typically drop an EAP session after only 40 - 50 | authenticators typically drop an EAP session after only 40 - 50 | |||
round-trips and QUIC [I-D.ietf-quic-transport] where the latency | round-trips, QUIC [RFC9000] where the latency increases significantly | |||
increases significantly unless the server sends less than three times | unless the server sends less than three times as many bytes as | |||
as many bytes as received prior to validating the client address. | received prior to validating the client address, and RPKI [RFC6487] | |||
More compact certificate representations are therefore desirable in | where a single certificate can be very large. More compact | |||
many use cases. Due to the current PKI usage of DER encoded X.509 | certificate representations are therefore desirable in many use | |||
cases. Due to the current PKI usage of DER encoded X.509 | ||||
certificates, keeping compatibility with DER encoded X.509 is | certificates, keeping compatibility with DER encoded X.509 is | |||
necessary at least for a transition period. However, the use of a | necessary at least for a transition period. However, the use of a | |||
more compact encoding with the Concise Binary Object Representation | more compact encoding with the Concise Binary Object Representation | |||
(CBOR) [RFC8949] reduces the certificate size significantly which has | (CBOR) [RFC8949] reduces the certificate size significantly which has | |||
known performance benefits in terms of decreased communication | known performance benefits in terms of decreased communication | |||
overhead, power consumption, latency, storage, etc. | overhead, power consumption, latency, storage, etc. | |||
CBOR is a data format designed for small code size and small message | CBOR is a data format designed for small code size and small message | |||
size. CBOR builds on the JSON data model but extends it by e.g. | size. CBOR builds on the JSON data model but extends it by e.g. | |||
encoding binary data directly without base64 conversion. In addition | encoding binary data directly without base64 conversion. In addition | |||
to the binary CBOR encoding, CBOR also has a diagnostic notation that | to the binary CBOR encoding, CBOR also has a diagnostic notation that | |||
is readable and editable by humans. The Concise Data Definition | is readable and editable by humans. The Concise Data Definition | |||
Language (CDDL) [RFC8610] provides a way to express structures for | Language (CDDL) [RFC8610] provides a way to express structures for | |||
protocol messages and APIs that use CBOR. [RFC8610] also extends the | protocol messages and APIs that use CBOR. RFC 8610 also extends the | |||
diagnostic notation. | diagnostic notation. | |||
CBOR data items are encoded to or decoded from byte strings using a | CBOR data items are encoded to or decoded from byte strings using a | |||
type-length-value encoding scheme, where the three highest order bits | type-length-value encoding scheme, where the three highest order bits | |||
of the initial byte contain information about the major type. CBOR | of the initial byte contain information about the major type. CBOR | |||
supports several different types of data items, in addition to | supports several different types of data items, in addition to | |||
integers (int, uint), simple values (e.g. null), byte strings (bstr), | integers (int, uint), simple values (e.g. null), byte strings (bstr), | |||
and text strings (tstr), CBOR also supports arrays [] of data items, | and text strings (tstr), CBOR also supports arrays [] of data items, | |||
maps {} of pairs of data items, and sequences of data items. For a | maps {} of pairs of data items, and sequences of data items. For a | |||
complete specification and examples, see [RFC8949], [RFC8610], and | complete specification and examples, see [RFC8949], [RFC8610], and | |||
[RFC8742]. We recommend implementors to get used to CBOR by using | [RFC8742]. We recommend implementors to get used to CBOR by using | |||
the CBOR playground [CborMe]. | the CBOR playground [CborMe]. | |||
CAB Baseline Requirements [CAB-Baseline], RFC 7925 [RFC7925], IEEE | CAB Baseline Requirements [CAB-TLS], RFC 7925 [RFC7925], IEEE 802.1AR | |||
802.1AR [IEEE-802.1AR], and CNSA [RFC8603] specify certificate | [IEEE-802.1AR], and CNSA [RFC8603] specify certificate profiles which | |||
profiles which can be applied to certificate based authentication | can be applied to certificate based authentication with, e.g., TLS | |||
with, e.g., TLS [RFC8446], QUIC [I-D.ietf-quic-transport], DTLS | [RFC8446], QUIC [RFC9000], DTLS [I-D.ietf-tls-dtls13], COSE | |||
[I-D.ietf-tls-dtls13], COSE [RFC8152], EDHOC [I-D.ietf-lake-edhoc], | [RFC8152], EDHOC [I-D.ietf-lake-edhoc], or Compact TLS 1.3 | |||
or Compact TLS 1.3 [I-D.ietf-tls-ctls]. RFC 7925 [RFC7925], | [I-D.ietf-tls-ctls]. RFC 7925 [RFC7925], RFC7925bis | |||
RFC7925bis [I-D.ietf-uta-tls13-iot-profile], and IEEE 802.1AR | [I-D.ietf-uta-tls13-iot-profile], and IEEE 802.1AR [IEEE-802.1AR] | |||
[IEEE-802.1AR] specifically target Internet of Things deployments. | specifically target Internet of Things deployments. This document | |||
This document specifies a CBOR encoding based on [X.509-IoT], which | specifies a CBOR encoding based on [X.509-IoT], which can support | |||
can support large parts of [RFC5280]. The encoding support all | large parts of RFC 5280. The encoding supports all RFC 7925, IEEE | |||
[RFC7925] and IEEE 802.1AR [IEEE-802.1AR] and CAB Baseline | 802.1AR, CAB Baseline [CAB-TLS], [CAB-Code], RPKI [RFC6487], eUICC | |||
[CAB-Baseline] profiled X.509 certificates. The resulting | [GSMA-eUICC] profiled X.509 certificates. The resulting certificates | |||
certificates are called C509 Certificates. Two variants are defined | are called C509 Certificates. This document does not specify a | |||
using the same CBOR encoding and differing only in what is being | certificate profile. Two variants are defined using the same CBOR | |||
signed: | encoding and differing only in what is being signed: | |||
1. An invertible CBOR re-encoding of DER encoded X.509 certificates | 1. An invertible CBOR re-encoding of DER encoded X.509 certificates | |||
[RFC5280], which can be reversed to obtain the original DER | [RFC5280], which can be reversed to obtain the original DER | |||
encoded X.509 certificate. | encoded X.509 certificate. | |||
2. Natively signed C509 certificates, where the signature is | 2. Natively signed C509 certificates, where the signature is | |||
calculated over the CBOR encoding instead of over the DER | calculated over the CBOR encoding instead of over the DER | |||
encoding as in 1. This removes the need for ASN.1 and DER | encoding as in 1. This removes the need for ASN.1 and DER | |||
parsing and the associated complexity but they are not backwards | parsing and the associated complexity but they are not backwards | |||
compatible with implementations requiring DER encoded X.509. | compatible with implementations requiring DER encoded X.509. | |||
Natively signed C509 certificates can be applied in devices that are | Natively signed C509 certificates can be applied in devices that are | |||
only required to authenticate to natively signed C509 certificate | only required to authenticate to natively signed C509 certificate | |||
compatible servers, which is not a major restriction for many IoT | compatible servers, which is not a major restriction for many IoT | |||
deployments where the parties issuing and verifying certificates can | deployments where the parties issuing and verifying certificates can | |||
be a restricted ecosystem. | be a restricted ecosystem. | |||
This document specifies COSE headers for use of the C509 certificates | This document specifies COSE headers for use of the C509 certificates | |||
with COSE, see Section 8.9. The document also specifies a TLS | with COSE, see Section 11.11. The document also specifies a TLS | |||
certificate type for use of the C509 certificates with TLS and QUIC | certificate type for use of the C509 certificates with TLS and QUIC | |||
(with or without additional TLS certificate compression), see | (with or without additional TLS certificate compression), see | |||
Section 8.10. | Section 11.12. | |||
2. Notational Conventions | 2. Notational Conventions | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
This specification makes use of the terminology in [RFC5280], | This specification makes use of the terminology in [RFC5280], | |||
[RFC7228], [RFC8610], and [RFC8949]. When referring to CBOR, this | [RFC7228], [RFC8610], and [RFC8949]. When referring to CBOR, this | |||
specification always refer to Deterministically Encoded CBOR as | specification always refers to Deterministically Encoded CBOR as | |||
specified in Sections 4.2.1 and 4.2.2 of [RFC8949]. | specified in Sections 4.2.1 and 4.2.2 of [RFC8949]. | |||
3. CBOR Encoding | 3. C509 Certificate | |||
This section specifies the content and encoding for C509 | This section specifies the content and encoding for C509 | |||
certificates, with the overall objective to produce a very compact | certificates, with the overall objective to produce a very compact | |||
representation supporting large parts of [RFC5280], and everything in | representation supporting large parts of [RFC5280], and everything in | |||
[RFC7925], [IEEE-802.1AR], and CAB Baseline [CAB-Baseline]. In the | [RFC7925], [IEEE-802.1AR], RPKI [RFC6487], GSMA eUICC [GSMA-eUICC], | |||
CBOR encoding, static fields are elided, elliptic curve points and | and CAB Baseline [CAB-TLS] [CAB-Code]. In the CBOR encoding, static | |||
time values are compressed, OID are replaced with short integers, and | fields are elided, elliptic curve points and time values are | |||
redundant encoding is removed. Combining these different components | compressed, OID are replaced with short integers, and redundant | |||
reduces the certificate size significantly, which is not possible | encoding is removed. Combining these different components reduces | |||
with general purpose compression algorithms, see Figure 3. | the certificate size significantly, which is not possible with | |||
general purpose compression algorithms, see Figure 5. | ||||
The C509 certificate can be either a CBOR re-encoding of a DER | The C509 certificate can be either a CBOR re-encoding of a DER | |||
encoded X.509 certificate, in which case the signature is calculated | encoded X.509 certificate, in which case the signature is calculated | |||
on the DER encoded ASN.1 data in the X.509 certificate, or a natively | on the DER encoded ASN.1 data in the X.509 certificate, or a natively | |||
signed C509 certificate, in which case the signature is calculated | signed C509 certificate, in which case the signature is calculated | |||
directly on the CBOR encoded data. In both cases the certificate | directly on the CBOR encoded data. In both cases the certificate | |||
content is adhering to the restrictions given by [RFC5280]. The re- | content is adhering to the restrictions given by [RFC5280]. The re- | |||
encoding is known to work with DER encoded certificates but might | encoding is known to work with DER encoded certificates but might | |||
work with other canonical encodings. The re-encoding does not work | work with other canonical encodings. The re-encoding does not work | |||
for BER encoded certificates. | for BER encoded certificates. | |||
skipping to change at page 5, line 44 ¶ | skipping to change at page 5, line 47 ¶ | |||
in the definition of C509 certificates, see Figure 1. | in the definition of C509 certificates, see Figure 1. | |||
C509 certificates are defined in terms of DER encoded [RFC5280] X.509 | C509 certificates are defined in terms of DER encoded [RFC5280] X.509 | |||
certificates: | certificates: | |||
o version. The 'version' field is encoded in the | o version. The 'version' field is encoded in the | |||
'c509CertificateType' CBOR int. The field 'c509CertificateType' | 'c509CertificateType' CBOR int. The field 'c509CertificateType' | |||
also indicates the type of the C509 certificate. Currently, the | also indicates the type of the C509 certificate. Currently, the | |||
type can be a natively signed C509 certificate following X.509 v3 | type can be a natively signed C509 certificate following X.509 v3 | |||
(c509CertificateType = 0) or a CBOR re-encoded X.509 v3 DER | (c509CertificateType = 0) or a CBOR re-encoded X.509 v3 DER | |||
certificate (c509CertificateType = 1), see Section 8.1. | certificate (c509CertificateType = 1), see Section 11.1. | |||
o serialNumber. The 'serialNumber' INTEGER value field is encoded | o serialNumber. The 'serialNumber' INTEGER value field is encoded | |||
as the unwrapped CBOR unsigned bignum (~biguint) | as the unwrapped CBOR unsigned bignum (~biguint) | |||
'certificateSerialNumber'. Any leading 0x00 byte (to indicate | 'certificateSerialNumber'. Any leading 0x00 byte (to indicate | |||
that the number is not negative) is therefore omitted. | that the number is not negative) is therefore omitted. | |||
o signature. The 'signature' field is always the same as the | o signature. The 'signature' field is always the same as the | |||
'signatureAlgorithm' field and therefore omitted from the CBOR | 'signatureAlgorithm' field and therefore omitted from the CBOR | |||
encoding. | encoding. | |||
o issuer. In the general case, the sequence of | o issuer. In the general case, the sequence of | |||
'RelativeDistinguishedName' is encoded as a CBOR array of CBOR | 'RelativeDistinguishedName' is encoded as a CBOR array of CBOR | |||
arrays of Attributes. Typically each RelativeDistinguishedName | arrays of Attributes. Typically, each RelativeDistinguishedName | |||
only contains a single attribute and the sequence is then encoded | only contains a single attribute and the sequence is then encoded | |||
as a CBOR array of Attributes. Each Attribute is encoded as a | as a CBOR array of Attributes. Each Attribute is encoded as a | |||
(CBOR int, CBOR text string) pair or as a (unwrapped CBOR OID, | (CBOR int, CBOR text string) pair or as a (unwrapped CBOR OID, | |||
CBOR bytes) pair. The absolute value of the CBOR int (see | CBOR bytes) pair. The absolute value of the CBOR int (see | |||
Figure 5) encodes the attribute type and the sign is used to | Figure 7) encodes the attribute type and the sign is used to | |||
represent the character string type; positive for Utf8String, | represent the character string type; positive for Utf8String, | |||
negative for PrintableString. In natively signed C509 | negative for PrintableString. The Attribute Email Address is | |||
certificates all text strings are UTF-8 encoded and all attributes | always an IA5String. In natively signed C509 certificates all | |||
SHALL have a positive sign. Text strings SHALL still adhere to | text strings are UTF-8 encoded and all attributeType SHALL have be | |||
any X.509 restrictions, i.e. serialNumber SHALL only contain the | non-negative. Text strings SHALL still adhere to any X.509 | |||
74 character subset of ASCII allowed by PrintableString and | restrictions, i.e., serialNumber SHALL only contain the 74 | |||
character subset of ASCII allowed by PrintableString and | ||||
countryName SHALL have length 2. The string types teletexString, | countryName SHALL have length 2. The string types teletexString, | |||
universalString, and bmpString are not supported. If Name | universalString, and bmpString are not supported. If Name | |||
contains a single Attribute containing an utf8String encoded | contains a single Attribute containing an utf8String encoded | |||
'common name' it is encoded as a CBOR text string. If the text | 'common name' it is encoded as a CBOR text string. If the text | |||
string contains an EUI-64 of the form "HH-HH-HH-HH-HH-HH-HH-HH" | string contains an EUI-64 of the form "HH-HH-HH-HH-HH-HH-HH-HH" | |||
where 'H' is one of the symbol '0'-'9' or 'A'-'F' it is encoded as | where 'H' is one of the symbols '0'-'9' or 'A'-'F' it is encoded | |||
a CBOR byte string of length 8 instead. EUI-64 mapped from a | as a CBOR byte string of length 8 instead. EUI-64 mapped from a | |||
48-bit MAC address (i.e. of the form "HH-HH-HH-FF-FE-HH-HH-HH) is | 48-bit MAC address (i.e., of the form "HH-HH-HH-FF-FE-HH-HH-HH) is | |||
encoded as a CBOR byte string of length 6. | encoded as a CBOR byte string of length 6. | |||
o validity. The 'notBefore' and 'notAfter' fields are encoded as | o validity. The 'notBefore' and 'notAfter' fields are encoded as | |||
unwrapped CBOR epoch-based date/time (~time) where the tag content | unwrapped CBOR epoch-based date/time (~time) where the tag content | |||
is an unsigned integer. In POSIX time, leap seconds are ignored, | is an unsigned integer. In POSIX time, leap seconds are ignored, | |||
with a leap second having the same POSIX time as the second before | with a leap second having the same POSIX time as the second before | |||
it. Compression of X.509 certificates with the time 23:59:60 UTC | it. Compression of X.509 certificates with the time 23:59:60 UTC | |||
is therefore not supported. Note that RFC 5280 mandates encoding | is therefore not supported. Note that RFC 5280 mandates encoding | |||
of dates through the year 2049 as UTCTime, and later dates as | of dates through the year 2049 as UTCTime, and later dates as | |||
GeneralizedTime. The value "99991231235959Z" (no expiration date) | GeneralizedTime. The value "99991231235959Z" (no expiration date) | |||
is encoded as CBOR null. | is encoded as CBOR null. | |||
o subject. The 'subject' is encoded exactly like issuer. | o subject. The 'subject' is encoded exactly like issuer. | |||
o subjectPublicKeyInfo. The 'AlgorithmIdentifier' field including | o subjectPublicKeyInfo. The 'AlgorithmIdentifier' field including | |||
parameters is encoded as the CBOR int 'subjectPublicKeyAlgorithm' | parameters is encoded as the CBOR int 'subjectPublicKeyAlgorithm' | |||
(see Section 8.8) or as an array with an unwrapped CBOR OID tag | (see Section 11.10) or as an array with an unwrapped CBOR OID tag | |||
[I-D.ietf-cbor-tags-oid] optionally followed by the parameters | [I-D.ietf-cbor-tags-oid] optionally followed by the parameters | |||
encoded as a CBOR byte string. In general, the 'subjectPublicKey' | encoded as a CBOR byte string. In general, the 'subjectPublicKey' | |||
BIT STRING value field is encoded as a CBOR byte string. This | BIT STRING value field is encoded as a CBOR byte string. This | |||
specification assumes the BIT STRING has zero unused bits and the | specification assumes the BIT STRING has zero unused bits and the | |||
unused bits byte is omitted. For rsaEncryption and id- | unused bits byte is omitted. For rsaEncryption and id- | |||
ecPublicKey, the encoding of subjectPublicKey is further optimized | ecPublicKey, the encoding of subjectPublicKey is further optimized | |||
as described in Section 3.2. | as described in Section 3.2. | |||
o issuerUniqueID. Not supported. | o issuerUniqueID. Not supported. | |||
o subjectUniqueID. Not supported. | o subjectUniqueID. Not supported. | |||
o extensions. The 'extensions' field is encoded as a CBOR array | o extensions. The 'extensions' field is encoded as a CBOR array | |||
where each extension is encoded as either a CBOR int (see | where each extension is encoded as either a CBOR int (see | |||
Section 8.3) followed by an optional CBOR item of any type or an | Section 11.3) followed by an optional CBOR item of any type or an | |||
unwrapped CBOR OID tag [I-D.ietf-cbor-tags-oid] followed by a CBOR | unwrapped CBOR OID tag [I-D.ietf-cbor-tags-oid] followed by a CBOR | |||
bool encoding 'critical' and the DER encoded value of the | bool encoding 'critical' and the DER encoded value of the | |||
'extnValue' encoded as a CBOR byte string. If the array contains | 'extnValue' encoded as a CBOR byte string. If the array contains | |||
exactly two ints and the absolute value of the first int is 2, the | exactly two ints and the absolute value of the first int is 2 | |||
array is omitted and the extensions is encoded as a single CBOR | (corresponding to keyUsage), the array is omitted and the | |||
int with the absolute value of the second int and the sign of the | extensions is encoded as a single CBOR int with the absolute value | |||
first int. Extensions are encoded as specified in Section 3.3. | of the second int and the sign of the first int. Extensions are | |||
The extensions mandated to be supported by [RFC7925] and | encoded as specified in Section 3.3. The extensions mandated to | |||
[IEEE-802.1AR] are given special treatment. An omitted | be supported by [RFC7925] and [IEEE-802.1AR] are given special | |||
'extensions' field is encoded as an empty CBOR array. | treatment. An omitted 'extensions' field is encoded as an empty | |||
CBOR array. | ||||
o signatureAlgorithm. The 'signatureAlgorithm' field including | o signatureAlgorithm. The 'signatureAlgorithm' field including | |||
parameters is encoded as a CBOR int (see Section 8.7) or as an | parameters is encoded as a CBOR int (see Section 11.9) or as an | |||
array with an unwrapped CBOR OID tag [I-D.ietf-cbor-tags-oid] | array with an unwrapped CBOR OID tag [I-D.ietf-cbor-tags-oid] | |||
optionally followed by the parameters encoded as a CBOR byte | optionally followed by the parameters encoded as a CBOR byte | |||
string. | string. | |||
o signatureValue. In general, the 'signatureValue' BIT STRING value | o signatureValue. In general, the 'signatureValue' BIT STRING value | |||
field is encoded as the CBOR byte string issuerSignatureValue. | field is encoded as the CBOR byte string issuerSignatureValue. | |||
This specification assumes the BIT STRING has zero unused bits and | This specification assumes the BIT STRING has zero unused bits and | |||
the unused bits byte is omitted. For natively signed C509 | the unused bits byte is omitted. For natively signed C509 | |||
certificates the signatureValue is calculated over the CBOR | certificates the signatureValue is calculated over the CBOR | |||
sequence TBSCertificate. For ECDSA, the encoding of | sequence TBSCertificate. For ECDSA, the encoding of | |||
issuerSignatureValue is further optimized as described in | issuerSignatureValue is further optimized as described in | |||
Section 3.2 | Section 3.2 | |||
The following Concise Data Definition Language (CDDL) defines the | The following Concise Data Definition Language (CDDL) defines the | |||
CBOR array C509Certificate and the CBOR sequence [RFC8742] | CBOR array C509Certificate and the CBOR sequence [RFC8742] | |||
TBSCertificate. The member names therefore only have documentary | TBSCertificate. The member names therefore only have documentary | |||
value. Applications not requiring a CBOR item MAY represent C509 | value. Applications not requiring a CBOR item MAY represent C509 | |||
certificates with the CBOR sequence ~C509Certificate (unwrapped | certificates with the CBOR sequence ~C509Certificate (unwrapped | |||
C509Certificate). | C509Certificate). | |||
C509Certificate = [ | C509Certificate = [ | |||
TBSCertificate, | TBSCertificate, | |||
issuerSignatureValue : any, | issuerSignatureValue : any, | |||
] | ] | |||
; The elements of the following group are to be used in a CBOR Sequence: | ; The elements of the following group are used in a CBOR Sequence: | |||
TBSCertificate = ( | TBSCertificate = ( | |||
c509CertificateType: int, | c509CertificateType: int, | |||
certificateSerialNumber: CertificateSerialNumber, | certificateSerialNumber: CertificateSerialNumber, | |||
issuer: Name, | issuer: Name, | |||
validityNotBefore: Time, | validityNotBefore: Time, | |||
validityNotAfter: Time, | validityNotAfter: Time, | |||
subject: Name, | subject: Name, | |||
subjectPublicKeyAlgorithm: AlgorithmIdentifier, | subjectPublicKeyAlgorithm: AlgorithmIdentifier, | |||
subjectPublicKey: any, | subjectPublicKey: any, | |||
extensions: Extensions, | extensions: Extensions, | |||
issuerSignatureAlgorithm: AlgorithmIdentifier, | issuerSignatureAlgorithm: AlgorithmIdentifier, | |||
) | ) | |||
CertificateSerialNumber = ~biguint | CertificateSerialNumber = ~biguint | |||
Name = [ * RelativeDistinguishedName ] / text / bytes | Name = [ * RelativeDistinguishedName ] / text / bytes | |||
RelativeDistinguishedName = Attribute / [ 2* Attribute ] | RelativeDistinguishedName = Attribute / [ 2* Attribute ] | |||
Attribute = ( attributeType: int, attributeValue: text ) // | Attribute = ( attributeType: int, attributeValue: text ) // | |||
( attributeType: ~oid, attributeValue: bytes ) | ( attributeType: ~oid, attributeValue: bytes ) | |||
Time = ~time / null | Time = ~time / null | |||
AlgorithmIdentifier = int / ~oid / [ algorithm: ~oid, parameters: bytes ] | AlgorithmIdentifier = int / ~oid / | |||
[ algorithm: ~oid, parameters: bytes ] | ||||
Extensions = [ * Extension ] / int | Extensions = [ * Extension ] / int | |||
Extension = ( extensionID: int, extensionValue: any ) // | Extension = ( extensionID: int, extensionValue: any ) // | |||
( extensionID: ~oid, ? critical: true, extensionValue: bytes ) | ( extensionID: ~oid, ? critical: true, | |||
extensionValue: bytes ) | ||||
Figure 1: CDDL for C509Certificate. | Figure 1: CDDL for C509Certificate. | |||
3.2. Encoding of subjectPublicKey and issuerSingatureValue | 3.2. Encoding of subjectPublicKey and issuerSignatureValue | |||
3.2.1. Encoding of subjectPublicKey | 3.2.1. Encoding of subjectPublicKey | |||
For RSA public keys (rsaEncryption), the SEQUENCE and INTEGER type | For RSA public keys (rsaEncryption), the SEQUENCE and INTEGER type | |||
and length fields are omitted and the two INTEGER value fields | and length fields are omitted and the two INTEGER value fields | |||
(modulus, exponent) are encoded as an array of two unwrapped CBOR | (modulus, exponent) are encoded as an array of two unwrapped CBOR | |||
unsigned bignum (~biguint), i.e. [ modulus : ~biguint, exponent : | unsigned bignum (~biguint), i.e. [ modulus : ~biguint, exponent : | |||
~biguint ]. If the exponent is 65537, the array and the exponent is | ~biguint ]. If the exponent is 65537, the array and the exponent is | |||
omitted and subjectPublicKey consist of only the modulus encoded as | omitted and subjectPublicKey consist of only the modulus encoded as | |||
an unwrapped CBOR unsigned bignum (~biguint). | an unwrapped CBOR unsigned bignum (~biguint). | |||
For elliptic curve public keys in Weierstrass form (id-ecPublicKey), | For elliptic curve public keys in Weierstrass form (id-ecPublicKey), | |||
uncompressed keys are point compressed as defined in Section 2.3.3 of | uncompressed keys are point compressed as defined in Section 2.3.3 of | |||
[SECG]. If a DER encoded certificate with a point compressed public | [SECG]. If a DER encoded certificate with a point compressed public | |||
key of type id-ecPublicKey is CBOR encoded, the octets 0xfe and 0xfd | key of type id-ecPublicKey is CBOR encoded, the octets 0xfe and 0xfd | |||
are used instead of 0x02 and 0x03 in the CBOR encoding to represent | are used instead of 0x02 and 0x03 in the CBOR encoding to represent | |||
even and odd y-coordinate, respectively. | even and odd y-coordinate, respectively. | |||
3.2.2. Encoding of issuerSingatureValue | 3.2.2. Encoding of issuerSignatureValue | |||
For ECDSA signatures, the SEQUENCE and INTEGER type and length fields | For ECDSA signatures, the SEQUENCE and INTEGER type and length fields | |||
as well as the any leading 0x00 byte (to indicate that the number is | as well as the any leading 0x00 byte (to indicate that the number is | |||
not negative) are omitted. If the two INTEGER value fields have | not negative) are omitted. If the two INTEGER value fields have | |||
different lengths, the shortest INTEGER value field is padded with | different lengths, the shortest INTEGER value field is padded with | |||
zeroes so that the two fields have the same length. The resulting | zeroes so that the two fields have the same length. The resulting | |||
byte string is encoded as a CBOR byte string. | byte string is encoded as a CBOR byte string. | |||
3.3. Encoding of Extensions | 3.3. Encoding of Extensions | |||
This section details the encoding of the 'extensions' field. The | This section details the encoding of the 'extensions' field. The | |||
'extensions' field is encoded as a CBOR array where each extensionID | 'extensions' field is encoded as a CBOR array where each extensionID | |||
is encoded as either a CBOR int or an unwrapped CBOR OID tag. If | is encoded as either a CBOR int or an unwrapped CBOR OID tag. If | |||
'extensionID' is encoded an int (see Section 8.3), the sign is used | 'extensionID' is encoded an int (see Section 11.3), the sign is used | |||
to encode if the extension is critical and the 'critical' field is | to encode if the extension is critical and the 'critical' field is | |||
omitted. Critical extensions are encoded with a negative sign and | omitted. Critical extensions are encoded with a negative sign and | |||
non-critical extensions are encoded with a positive sign. | non-critical extensions are encoded with a positive sign. | |||
The 'extnValue' OCTET STREAM value field is encoded as the CBOR byte | The 'extnValue' OCTET STRING value field is encoded as the CBOR byte | |||
string 'extensionValue' except for the extensions mandated to be | string 'extensionValue' except for the extensions specified below. | |||
supported by [RFC7925], [IEEE-802.1AR], and [CAB-Baseline] which are | For some extensions, only commonly used parts are supported by the | |||
encoded as specified below. For some extensions, only commonly used | CBOR encoding. If unsupported parts are used, the CBOR encoding | |||
parts are supported by the CBOR encoding. If unsupported parts are | cannot be used. | |||
used, the CBOR encoding cannot be used. | ||||
CBOR encoding of the following extension values are fully supported: | CBOR encoding of the following extension values are fully supported: | |||
o subjectKeyIdentifier. extensionValue is the value of the | o Subject Key Identifier (subjectKeyIdentifier). The extensionValue | |||
'keyIdentifier' field encoded as a CBOR byte string. | is encoded as follows: | |||
o keyUsage. The 'KeyUsage' BIT STRING is interpreted as an unsigned | KeyIdentifier = bytes | |||
integer in network byte order and encoded as a CBOR int. | SubjectKeyIdentifier = KeyIdentifier | |||
o basicConstraints. If 'cA' = false then extensionValue = -2, if | o Key Usage (keyUsage). The 'KeyUsage' BIT STRING is interpreted as | |||
'cA' = true and 'pathLenConstraint' is not present then | an unsigned integer in network byte order and encoded as a CBOR | |||
extensionValue = -1, and if 'cA' = true and 'pathLenConstraint' is | int. See Section 3.1 for special encoding in case keyUsage is the | |||
present then extensionValue = pathLenConstraint. | only extension present. | |||
o extKeyUsage. extensionValue is encoded as an array of CBOR ints | KeyUsage = int | |||
(see Section 8.5) or unwrapped CBOR OID tags | ||||
o Policy Mappings (policyMappings). extensionValue is encoded as | ||||
follows: | ||||
PolicyMappings = [ | ||||
+ (issuerDomainPolicy: ~oid, subjectDomainPolicy: ~oid) | ||||
] | ||||
o Basic Constraints (basicConstraints). If 'cA' = false then | ||||
extensionValue = -2, if 'cA' = true and 'pathLenConstraint' is not | ||||
present then extensionValue = -1, and if 'cA' = true and | ||||
'pathLenConstraint' is present then extensionValue = | ||||
pathLenConstraint. | ||||
BasicConstraints = int | ||||
o Policy Constraints (policyConstraints). extensionValue is encoded | ||||
as follows: | ||||
PolicyConstraints = [ | ||||
requireExplicitPolicy: uint / null, | ||||
inhibitPolicyMapping: uint / null, | ||||
] | ||||
o Extended Key Usage (extKeyUsage). extensionValue is encoded as an | ||||
array of CBOR ints (see Section 11.7 or unwrapped CBOR OID tags | ||||
[I-D.ietf-cbor-tags-oid] where each int or OID tag encodes a key | [I-D.ietf-cbor-tags-oid] where each int or OID tag encodes a key | |||
usage purpose. If the array contains a single int, the array is | usage purpose. If the array contains a single KeyPurposeId, the | |||
omitted. | array is omitted. | |||
ExtValueEKU = [ + int / ~oid ] / int | KeyPurposeId = int / ~oid | |||
ExtKeyUsageSyntax = [ 2* KeyPurposeId ] / KeyPurposeId | ||||
o Inhibit anyPolicy (inhibitAnyPolicy). extensionValue is encoded as | ||||
follows: | ||||
InhibitAnyPolicy = uint | ||||
CBOR encoding of the following extension values are partly supported: | CBOR encoding of the following extension values are partly supported: | |||
o subjectAltName. If the subject alternatice name only contains | o Subject Alternative Name (subjectAltName). If the subject | |||
general names registered in Section 8.6 the extension value can be | alternative name only contains general names registered in | |||
CBOR encoded. extensionValue is encoded as an array of (int, any) | Section 11.8 the extension value can be CBOR encoded. | |||
pairs where each pair encodes a general name (see Section 8.6). | extensionValue is encoded as an array of (int, any) pairs where | |||
If subjectAltName contains exactly one dNSName, the array and the | each pair encodes a general name (see Section 11.8). If | |||
int are omitted and extensionValue is the dNSName encoded as a | subjectAltName contains exactly one dNSName, the array and the int | |||
CBOR text string. In addition to the general names defined in | are omitted and extensionValue is the dNSName encoded as a CBOR | |||
text string. In addition to the general names defined in | ||||
[RFC5280], the hardwareModuleName type of otherName has been given | [RFC5280], the hardwareModuleName type of otherName has been given | |||
its own int due to its mandatory use in IEEE 802.1AR. When | its own int due to its mandatory use in IEEE 802.1AR. When | |||
'otherName + hardwareModuleName' is used, then [ oid, bytes ] is | 'otherName + hardwareModuleName' is used, then [ oid, bytes ] is | |||
used to identify the pair ( hwType, hwSerialEntries ) directly as | used to identify the pair ( hwType, hwSerialEntries ) directly as | |||
specified in [RFC4108]. Only the general names in Section 8.6 are | specified in [RFC4108]. Only the general names in Section 11.8 | |||
supported. | are supported. | |||
ExtValueSAN = [ + GeneralName ] / text | ||||
GeneralName = ( GeneralNameType : int, GeneralNameValue : any ) | GeneralName = ( GeneralNameType : int, GeneralNameValue : any ) | |||
GeneralNames = [ + GeneralName ] | ||||
SubjectAltName = GeneralNames / text | ||||
o cRLDistributionPoints. If the CRL Distribution Points is a | o Issuer Alternative Name (issuerAltName). extensionValue is encoded | |||
sequence of DistributionPointName, where each | exactly like subjectAltName. | |||
DistributionPointName contains a single uniformResourceIdentifier, | ||||
the extension value can be CBOR encoded. The extensionValue is | ||||
encoded as an array of CBOR text strings where each CBOR text | ||||
string encodes a uniformResourceIdentifier. If the array contains | ||||
exactly one text string, the array is omitted. | ||||
ExtValueCDP = [ 2* text ] / text | IssuerAltName = GeneralNames / text | |||
o certificatePolicies. If each PolicyInformation contains at most | o CRL Distribution Points (cRLDistributionPoints). If the CRL | |||
one PolicyQualifierInfo, where all present policyQualifierId are | Distribution Points is a sequence of DistributionPointName, where | |||
of type id-qt-cps and all present qualifiers are of type cPSuri, | each DistributionPointName only contains | |||
the extension value can be CBOR encoded. OIDs registered in | uniformResourceIdentifiers, the extension value can be CBOR | |||
Section 8.4 are encoded as an int. | encoded. extensionValue is encoded as follows: | |||
ExtValueCP = [ + ( CertPolicyId: oid / int, ? CPSuri: text ) ] | DistributionPointName = [ 2* text ] / text | |||
CRLDistributionPoints = [ + DistributionPointName ] | ||||
o authorityKeyIdentifier. If the authority key identifier contains | o Freshest CRL (freshestCRL). extensionValue is encoded exactly like | |||
all of keyIdentifier, certIssuer, and certSerialNumberm or if only | cRLDistributionPoints. | |||
keyIdentifier is present the extension value can be CBOR encoded. | ||||
If all three are present a CBOR array is used, if only | FreshestCRL = CRLDistributionPoints | |||
keyIdentifier is present a CBOR byte string is used. | ||||
ExtValueAKI = [ keyIdentifier: bytes, | o Authority Information Access (authorityInfoAccess). If all the | |||
certIssuer: GeneralNames, | GeneralNames in authorityInfoAccess are of type | |||
certSerialNumber: CertificateSerialNumber ] | uniformResourceIdentifier, the extension value can be CBOR | |||
/ bytes | encoded. Each accessMethod is encoded as an CBOR ints (see | |||
Section 11.6) or unwrapped CBOR OID tags [I-D.ietf-cbor-tags-oid]. | ||||
The uniformResourceIdentifiers are encoded as CBOR text strings. | ||||
o authorityInfoAccess. If all the GeneralNames in | AccessDescription = ( accessMethod: int / ~oid , uri: text ) | |||
authorityInfoAccess are of type uniformResourceIdentifier, the | AuthorityInfoAccessSyntax = [ + AccessDescription ] | |||
extension value can be CBOR encoded. The accessMethod is encoded | ||||
as an CBOR int (1 for ocsp and 2 for caIssuers). The | ||||
uniformResourceIdentifiers are encoded as CBOR text strings. | ||||
ExtValueAIA = [ + ( accessMethod : 1 / 2 , uri : text ) ] | o Subject Information Access (subjectInfoAccess). Encoded exactly | |||
like authorityInfoAccess. | ||||
o signedCertificateTimestamp. If all the SCTs are version 1, and | SubjectInfoAccessSyntax = AuthorityInfoAccessSyntax | |||
o Authority Key Identifier (authorityKeyIdentifier). If the | ||||
authority key identifier contains all of keyIdentifier, | ||||
certIssuer, and certSerialNumberm or if only keyIdentifier is | ||||
present the extension value can be CBOR encoded. If all three are | ||||
present a CBOR array is used, if only keyIdentifier is present, | ||||
the array is omitted: | ||||
KeyIdentifierArray = [ | ||||
keyIdentifier: KeyIdentifier, | ||||
authorityCertIssuer: GeneralNames, | ||||
authorityCertSerialNumber: CertificateSerialNumber | ||||
] | ||||
AuthorityKeyIdentifier = KeyIdentifierArray / KeyIdentifier | ||||
o Certificate Policies (certificatePolicies). If noticeRef is not | ||||
used and any explicitText are encoded as UTF8String, the extension | ||||
value can be CBOR encoded. OIDs registered in Section 11.4 are | ||||
encoded as an int. The policyQualifierId is encoded as an CBOR | ||||
int (see Section 11.5) or an unwrapped CBOR OID tag | ||||
[I-D.ietf-cbor-tags-oid]. | ||||
PolicyIdentifier = int / ~oid | ||||
PolicyQualifierInfo = ( | ||||
policyQualifierId: int / ~oid, | ||||
qualifier: text, | ||||
) | ||||
CertificatePolicies = [ | ||||
+ ( PolicyIdentifier, ? [ + PolicyQualifierInfo ] ) | ||||
] | ||||
o Name Constraints (nameConstraints). If the name constraints only | ||||
contains general names registered in Section 11.8 the extension | ||||
value can be CBOR encoded. | ||||
GeneralSubtree = [ GeneralName, minimum: uint, ? maximum: uint ] | ||||
NameConstraints = [ | ||||
permittedSubtrees: GeneralSubtree, | ||||
excludedSubtrees: GeneralSubtree, | ||||
] | ||||
o Subject Directory Attributes (subjectDirectoryAttributes). | ||||
Encoded as attributes in issuer and subject with the difference | ||||
that there can be more than one attributeValue. | ||||
Attributes = ( attributeType: int, attributeValue: [+text] ) // | ||||
( attributeType: ~oid, attributeValue: [+bytes] ) | ||||
SubjectDirectoryAttributes = Attributes | ||||
o AS Resources (autonomousSysIds). If rdi is not present, the | ||||
extension value can be CBOR encoded. Each ASId is encoded as an | ||||
uint. With the exception of the first ASId, the ASid is encoded | ||||
as the difference to the previous ASid. | ||||
AsIdsOrRanges = uint / [uint, uint] | ||||
ASIdentifiers = [ + AsIdsOrRanges ] / null | ||||
o AS Resources v2 (id-pe-ipAddrBlocks-v2). Encoded exactly like | ||||
autonomousSysIds. | ||||
o IP Resources (id-pe-ipAddrBlocks). If rdi and SAFI is not | ||||
present, the extension value can be CBOR encoded. Each | ||||
AddressPrefix is encoded as a CBOR bytes string (without the | ||||
unused bits octet) followed by the number of unused bits encoded | ||||
as a CBOR uint. Each AddressRange is encoded as an array of two | ||||
CBOR byte strings. The unused bits for min and max are omitted, | ||||
but the unused bits in max IPAddress is set to ones. With the | ||||
exception of the first Address, if the byte string has the same | ||||
length as the previous ASid, the Addess is encoded as an uint with | ||||
the the difference to the previous Addess. | ||||
Address = bytes / uint, | ||||
AddressPrefix = (Address, unusedBits: uint) | ||||
AddressRange = [Address, Address] | ||||
IPAddressOrRange = AddressPrefix / AddressRange | ||||
IPAddressChoice = [ + IPAddressOrRange ] / null | ||||
IPAddrBlocks = [ AFI: uint, IPAddressChoice ] | ||||
o IP Resources v2 (id-pe-ipAddrBlocks-v2). Encoded exactly like id- | ||||
pe-ipAddrBlocks. | ||||
o Signed Certificate Timestamp. If all the SCTs are version 1, and | ||||
there are no SCT extensions, the extension value can be CBOR | there are no SCT extensions, the extension value can be CBOR | |||
encoded. LogIDs are encoded as CBOR byte strings, the timestamp | encoded. LogIDs are encoded as CBOR byte strings, the timestamp | |||
is encoded as and CBOR int (milliseconds since validityNotBefore), | is encoded as and CBOR int (milliseconds since validityNotBefore), | |||
and the signature is encoded with an (AlgorithmIdentifier, any) | and the signature is encoded with an (AlgorithmIdentifier, any) | |||
pair in the same way as issuerSignatureAlgorithm and | pair in the same way as issuerSignatureAlgorithm and | |||
issuerSignatureValue. | issuerSignatureValue. | |||
ExtValueSCT = [ + ( LogID : bstr, timestamp : int, | SignedCerticateTimestamp = ( | |||
alg : AlgorithmIdentifier, signature : any ) ] | logID: bytes, | |||
timestamp: int, | ||||
sigAlg: AlgorithmIdentifier, | ||||
sigValue: any, | ||||
) | ||||
SignedCertificateTimestamps = [ + SignedCerticateTimestamp ] | ||||
3.3.1. Example Encoding of Extensions | 3.3.1. Example Encoding of Extensions | |||
The examples below use values from Section 8.3, Section 8.5, and | The examples below use values from Section 11.3, Section 11.7, and | |||
Section 8.6: | Section 11.8: | |||
o A critical basicConstraints ('cA' = true) without | o A critical basicConstraints ('cA' = true) without | |||
pathLenConstraint is encoded as the two CBOR ints -4, -1. | pathLenConstraint is encoded as the two CBOR ints -4, -1. | |||
o A non-critical keyUsage with digitalSignature and keyAgreement | o A non-critical keyUsage with digitalSignature and keyAgreement | |||
asserted is encoded as the two CBOR ints 2, 17 (2^0 + 2^4 = 17). | asserted is encoded as the two CBOR ints 2, 17 (2^0 + 2^4 = 17). | |||
o A non-critical extKeyUsage containing id-kp-codeSigning and id-kp- | o A non-critical extKeyUsage containing id-kp-codeSigning and id-kp- | |||
OCSPSigning is encoded as the CBOR int 8 followed by the CBOR | OCSPSigning is encoded as the CBOR int 8 followed by the CBOR | |||
array [ 3, 6 ]. | array [ 3, 6 ]. | |||
o A non-critical subjectAltName containing only the dNSName | o A non-critical subjectAltName containing only the dNSName | |||
example.com is encoded as the CBOR int 3 followed by the CBOR text | example.com is encoded as the CBOR int 3 followed by the CBOR text | |||
string "example.com". | string "example.com". | |||
Thus, the extension field of a certificate containing all of the | Thus, the extension field of a certificate containing all of the | |||
above extensions in the given order would be encoded as the CBOR | above extensions in the given order would be encoded as the CBOR | |||
array [ -4, -1, 2, 17, 8, [ 3, 6 ], 3, "example.com" ]. | array [ -4, -1, 2, 17, 8, [ 3, 6 ], 3, "example.com" ]. | |||
4. Compliance Requirements for Constrained IoT | 4. C509 Certificate Signing Request | |||
For general purpose applications, the normative requirements of | The section defines the C509 Certificate Signing Request (CSR) format | |||
[RFC5280] applies. This section describes the mandatory to implement | based on and compatible with RFC 2986 [RFC2986] reusing the | |||
algorithms and OIDs for constrained IoT application; the values of | formatting for C509 certificates defined in Section 3. There are | |||
the OIDs including certificate fields and extensions, time format, | currently two c509CertificateSigningRequestType values defined, | |||
attributes in distinguished names, etc. | c509CertificateSigningRequestType = 0 requests a c509CertificateType | |||
= 0 and c509CertificateSigningRequestType = 1 requests a | ||||
c509CertificateType = 1 . subjectProofOfPossessionAlgorithm can be a | ||||
C509 signature algorithm or a non-signature Proof-of-Possession | ||||
Algorithm as defined in e.g. RFC 6955. CSR attributes other than | ||||
extensionRequest are not supported. | ||||
TODO: Write this section | C509CertificateSigningRequest = [ | |||
TBSCertificateSigningRequest, | ||||
subjectProofOfPossessionValue: any, | ||||
] | ||||
5. Legacy Considerations | ; The elements of the following group are used in a CBOR Sequence: | |||
TBSCertificateSigningRequest = ( | ||||
c509CertificateSigningRequestType: int, | ||||
subject: Name, | ||||
subjectPublicKeyAlgorithm: AlgorithmIdentifier, | ||||
subjectPublicKey: any, | ||||
extensionsRequest : Extensions, | ||||
subjectProofOfPossessionAlgorithm: AlgorithmIdentifier, | ||||
) | ||||
Figure 2: CDDL for C509CertificateSigningRequest. | ||||
After verifying the subjectProofOfPossessionValue, the CA MAY | ||||
transform the C509CertificateSigningRequest into a RFC 2985 | ||||
CertificationRequestInfo for compatibility with existing procedures | ||||
and code. | ||||
5. C509 Certificate Revocation List | ||||
The section defines the C509 Certificate Revocation List (CRL) format | ||||
based on and compatible with [RFC5280] reusing the formatting for | ||||
C509 certificates defined in Section 3. | ||||
C509CertificateRevocationList = [ | ||||
TBSCertificateRevocationList, | ||||
issuerSignatureValue : any, | ||||
] | ||||
; The elements of the following group are used in a CBOR Sequence: | ||||
TBSCertificateSigningRequest = ( | ||||
C509CertificateRevocationListType: int, | ||||
issuer: Name, | ||||
thisUpdate: Time, | ||||
nextUpdate: Time, | ||||
revokedCertificates: RevokedCertificates, | ||||
crlExtensions: Extensions, | ||||
issuerSignatureAlgorithm: AlgorithmIdentifier, | ||||
) | ||||
RevokedCertificates = [ | ||||
userCertificate: CertificateSerialNumber, | ||||
revocationDate: Time, | ||||
crlEntryExtensions: Extensions, | ||||
] | ||||
Figure 3: CDDL for C509CertificateRevocationList. | ||||
6. C509 Online Certificate Status Protocol | ||||
TODO | ||||
7. C509 Processing and Certificate Issuance | ||||
It is straightforward to integrate the C509 format into legacy X.509 | ||||
processing during certificate issuance. C509 processing can be | ||||
performed as an isolated function of the CA, or as a separate | ||||
function trusted by the CA. | ||||
The CSR format defined in Section 4 follows the PKCS#10 format to | ||||
enable a direct mapping to the certification request information, see | ||||
Section 4.1 of [RFC2986]. | ||||
When a certificate request is received the CA, or function trusted by | ||||
the CA, needs to perform some limited C509 processing and verify the | ||||
proof of possession of the public key, before normal certificate | ||||
generation can take place. | ||||
In the reverse direction, in case c509CertificateType = 1 was | ||||
requested, a separate C509 processing function can perform the | ||||
conversion from a generated X.509 certificate to C509 as a bump-in- | ||||
the-wire. In case c509CertificateType = 0 was requested, the C509 | ||||
processing needs to be performed before signing the certificate, in | ||||
which case a tighter integration with CA may be needed. | ||||
8. Legacy Considerations | ||||
C509 certificates can be deployed with legacy X.509 certificates and | C509 certificates can be deployed with legacy X.509 certificates and | |||
CA infrastructure. In order to verify the signature, the C509 | CA infrastructure. In order to verify the signature, the C509 | |||
certificate is used to recreate the original X.509 data structure to | certificate is used to recreate the original X.509 data structure to | |||
be able to verify the signature. | be able to verify the signature. | |||
For protocols like TLS/DTLS 1.2, where the handshake is sent | For protocols like TLS/DTLS 1.2, where the handshake is sent | |||
unencrypted, the actual encoding and compression can be done at | unencrypted, the actual encoding and compression can be done at | |||
different locations depending on the deployment setting. For | different locations depending on the deployment setting. For | |||
example, the mapping between C509 certificate and standard X.509 | example, the mapping between C509 certificate and standard X.509 | |||
skipping to change at page 12, line 48 ¶ | skipping to change at page 17, line 36 ¶ | |||
authentication, the server only needs to be provisioned with the C509 | authentication, the server only needs to be provisioned with the C509 | |||
certificate and does not perform the conversion to X.509. This | certificate and does not perform the conversion to X.509. This | |||
option is viable when client authentication can be asserted by other | option is viable when client authentication can be asserted by other | |||
means. | means. | |||
For protocols like IKEv2, TLS/DTLS 1.3, and EDHOC, where certificates | For protocols like IKEv2, TLS/DTLS 1.3, and EDHOC, where certificates | |||
are encrypted, the proposed encoding needs to be done fully end-to- | are encrypted, the proposed encoding needs to be done fully end-to- | |||
end, through adding the encoding/decoding functionality to the | end, through adding the encoding/decoding functionality to the | |||
server. | server. | |||
6. Expected Certificate Sizes | 9. Expected Certificate Sizes | |||
The CBOR encoding of the sample certificate chains given in | The CBOR encoding of the sample certificate chains given in | |||
Appendix A results in the numbers shown in Figure 2 and Figure 3. | Appendix A results in the numbers shown in Figure 4 and Figure 5. | |||
After [RFC7925] profiling, most duplicated information has been | COSE_X509 is defined in [I-D.ietf-cose-x509] and COSE_C509 is defined | |||
removed, and the remaining text strings are minimal in size. | in Section 11.11. After RFC 7925 profiling, most duplicated | |||
Therefore, the further size reduction reached with general | information has been removed, and the remaining text strings are | |||
compression mechanisms such as Brotli will be small, mainly | minimal in size. Therefore, the further size reduction reached with | |||
general compression mechanisms such as Brotli will be small, mainly | ||||
corresponding to making the ASN.1 encoding more compact. CBOR | corresponding to making the ASN.1 encoding more compact. CBOR | |||
encoding can however significantly compress RFC 7925 profiled | encoding can however significantly compress RFC 7925 profiled | |||
certificates. For the example HTTPS certificate chains (www.ietf.org | certificates. For the example HTTPS certificate chains (www.ietf.org | |||
and tools.ietf.org) both C509 and Brotli perform well complementing | and tools.ietf.org) both C509 and Brotli perform well complementing | |||
each other. C509 use dedicated information to compress individual | each other. C509 use dedicated information to compress individual | |||
certificates, while Brotli can compress duplicate information in the | certificates, while Brotli can compress duplicate information in the | |||
entire chain. For Brotli [RFC7932], the Rust crate Brotli 3.3.0 was | entire chain. Note that C509 certificates of type 0 and 1 have the | |||
same size. For Brotli [RFC7932], the Rust crate Brotli 3.3.0 was | ||||
used with compression level 11 and window size 22. | used with compression level 11 and window size 22. | |||
+---------------------------------------+-----------+-----------+ | +---------------------------------------+-----------+-----------+ | |||
| | COSE_X509 | COSE_C509 | | | | COSE_X509 | COSE_C509 | | |||
+---------------------------------------+-----------+-----------+ | +---------------------------------------+-----------+-----------+ | |||
| RFC 7925 profiled IoT Certificate | 317 | 139 | | | RFC 7925 profiled IoT Certificate (1) | 317 | 139 | | |||
+---------------------------------------+-----------+-----------+ | +---------------------------------------+-----------+-----------+ | |||
| ECDSA HTTPS Certificate Chain | 2193 | 1394 | | | ECDSA HTTPS Certificate Chain (2) | 2193 | 1394 | | |||
+---------------------------------------+-----------+-----------+ | +---------------------------------------+-----------+-----------+ | |||
| RSA HTTPS Certificate Chain | 5175 | 3934 | | | RSA HTTPS Certificate Chain (4) | 5175 | 3934 | | |||
+---------------------------------------+-----------+-----------+ | +---------------------------------------+-----------+-----------+ | |||
Figure 2: Comparing Sizes of Certificate Chains in COSE (bytes) | Figure 4: Comparing Sizes of Certificate Chains in COSE. Number of | |||
bytes (length of certificate chain). | ||||
+-------------------+------+---------------+------+---------------+ | +-------------------+-------+---------------+------+---------------+ | |||
| | X509 | X509 + Brotli | C509 | C509 + Brotli | | | | X509 | X509 + Brotli | C509 | C509 + Brotli | | |||
+-------------------+------+---------------+------+---------------+ | +-------------------+-------+---------------+------+---------------+ | |||
| RFC 7925 Cert | 327 | 324 | 151 | 167 | | | RFC 7925 Cert (1) | 327 | 324 | 151 | 167 | | |||
+-------------------+------+---------------+------+---------------+ | +-------------------+-------+---------------+------+---------------+ | |||
| ECDSA HTTPS Chain | 2204 | 1455 | 1409 | 1058 | | | RPKI Cert (1) | 20991 | 9134 | 8660 | 5668 | | |||
+-------------------+------+---------------+------+---------------+ | +-------------------+-------+---------------+------+---------------+ | |||
| RSA HTTPS Chain | 5190 | 3244 | 3957 | 2841 | | | HTTPS Chain (2) | 2204 | 1455 | 1414 | 1063 | | |||
+-------------------+------+---------------+------+---------------+ | +-------------------+-------+---------------+------+---------------+ | |||
| HTTPS Chain (4) | 5190 | 3244 | 3958 | 2845 | | ||||
+-------------------+-------+---------------+------+---------------+ | ||||
| HTTPS Bag (8) | 11578 | 3979 | 8882 | 3519 | | ||||
+-------------------+-------+---------------+------+---------------+ | ||||
Figure 3: Comparing Sizes of Certificate Chains TLS (bytes) | Figure 5: Comparing Sizes of Certificate Chains with TLS. Number of | |||
bytes (length of certificate chain). X509 and C509 are Certificate | ||||
messages. X509 + Brotli and C509 + Brotli are CompressedCertificate | ||||
messages. | ||||
7. Security Considerations | 10. Security Considerations | |||
The CBOR profiling of X.509 certificates does not change the security | The CBOR profiling of X.509 certificates does not change the security | |||
assumptions needed when deploying standard X.509 certificates but | assumptions needed when deploying standard X.509 certificates but | |||
decreases the number of fields transmitted, which reduces the risk | decreases the number of fields transmitted, which reduces the risk | |||
for implementation errors. | for implementation errors. | |||
The use of natively signed C509 certificates removes the need for | The use of natively signed C509 certificates removes the need for | |||
ASN.1 encoding, which is a rich source of security vulnerabilities. | ASN.1 encoding, which is a rich source of security vulnerabilities. | |||
Conversion between the certificate formats can be made in constant | Conversion between the certificate formats can be made in constant | |||
time to reduce risk of information leakage through side channels. | time to reduce risk of information leakage through side channels. | |||
The mechanism in this draft does not reveal any additional | The mechanism in this draft does not reveal any additional | |||
information compared to X.509. Because of difference in size, it | information compared to X.509. Because of difference in size, it | |||
will be possible to detect that this profile is used. The gateway | will be possible to detect that this profile is used. The gateway | |||
solution described in Section 5 requires unencrypted certificates and | solution described in Section 8 requires unencrypted certificates and | |||
is not recommended. | is not recommended. | |||
8. IANA Considerations | 11. IANA Considerations | |||
This document creates several new registries under the new heading | This document creates several new registries under the new heading | |||
"C509 Certificate". For all items, the 'Reference' field points to | "C509 Certificate". For all items, the 'Reference' field points to | |||
this document. | this document. | |||
The expert reviewers for the registries defined in this document are | The expert reviewers for the registries defined in this document are | |||
expected to ensure that the usage solves a valid use case that could | expected to ensure that the usage solves a valid use case that could | |||
not be solved better in a different way, that it is not going to | not be solved better in a different way, that it is not going to | |||
duplicate one that is already registered, and that the registered | duplicate one that is already registered, and that the registered | |||
point is likely to be used in deployments. They are furthermore | point is likely to be used in deployments. They are furthermore | |||
expected to check the clarity of purpose and use of the requested | expected to check the clarity of purpose and use of the requested | |||
code points. Experts should take into account the expected usage of | code points. Experts should take into account the expected usage of | |||
entries when approving point assignment, and the length of the | entries when approving point assignment, and the length of the | |||
encoded value should be weighed against the number of code points | encoded value should be weighed against the number of code points | |||
left that encode to that size and how constrained the systems it will | left that encode to that size and how constrained the systems it will | |||
be used on are. Values in the interval [-24, 23] have a 1 byte | be used on are. Values in the interval [-24, 23] have a 1 byte | |||
encodings, other values in the interval [-256, 255] have a 2 byte | encodings, other values in the interval [-256, 255] have a 2 byte | |||
encodings, and the remaining values in the interval [-65536, 65535] | encodings, and the remaining values in the interval [-65536, 65535] | |||
have 3 byte encodings. | have 3 byte encodings. | |||
8.1. C509 Certificate Types Registry | 11.1. C509 Certificate Types Registry | |||
IANA has created a new registry titled "C509 Certificate Types" under | IANA has created a new registry titled "C509 Certificate Types" under | |||
the new heading "C509 Certificate". The columns of the registry are | the new heading "C509 Certificate". The columns of the registry are | |||
Value, Description, and Reference, where Value is an integer, and the | Value, Description, and Reference, where Value is an integer, and the | |||
other columns are text strings. For values in the interval [-24, 23] | other columns are text strings. For values in the interval [-24, 23] | |||
the registration procedure is "IETF Review" and "Expert Review". For | the registration procedure is "IETF Review" and "Expert Review". For | |||
all other values the registration procedure is "Expert Review". The | all other values the registration procedure is "Expert Review". The | |||
initial contents of the registry are: | initial contents of the registry are: | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | Description | | | Value | Description | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| 0 | Natively Signed C509 Certificate following X.509 v3 | | | 0 | Natively Signed C509 Certificate following X.509 v3 | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 1 | CBOR re-encoding of X.509 v3 Certificate | | | 1 | CBOR re-encoding of X.509 v3 Certificate | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
Figure 4: C509 Certificate Types | Figure 6: C509 Certificate Types | |||
8.2. C509 Certificate Attributes Registry | 11.2. C509 Attributes Registry | |||
IANA has created a new registry titled "C509 Certificate Attributes" | IANA has created a new registry titled "C509 Attributes" under the | |||
under the new heading "C509 Certificate". The columns of the | new heading "CBOR Encoded X509 Certificates (C509 Certificates)". | |||
registry are Value, Name, OID, DER, Comments, and Reference, where | The columns of the registry are Value, Name, Identifiers, OID, DER, | |||
Value is an positive integer, and the other columns are text strings. | Comments, and Reference, where Value is an non-negative integer, and | |||
For values in the interval [1, 23] the registration procedure is | the other columns are text strings. For values in the interval [0, | |||
"IETF Review" and "Expert Review". For all other values the | 23] the registration procedure is "IETF Review" and "Expert Review". | |||
registration procedure is "Expert Review". The initial contents of | For all other values the registration procedure is "Expert Review". | |||
the registry are: | The initial contents of the registry are: | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | Attribute | | | Value | Attribute | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| 0 | Name: Email Address | | ||||
| | Identifiers: emailAddress, e-mailAddress | | ||||
| | OID: 1.2.840.113549.1.9.1 | | ||||
| | DER: 06 09 2A 86 48 86 F7 0D 01 09 01 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 1 | Name: Common Name | | | 1 | Name: Common Name | | |||
| | Identifiers: commonName, cn | | ||||
| | OID: 2.5.4.3 | | | | OID: 2.5.4.3 | | |||
| | DER: 06 03 55 04 03 | | | | DER: 06 03 55 04 03 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 2 | Name: Surname | | | 2 | Name: Surname | | |||
| | Identifiers: surname, sn | | ||||
| | OID: 2.5.4.4 | | | | OID: 2.5.4.4 | | |||
| | DER: 06 03 55 04 04 | | | | DER: 06 03 55 04 04 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 3 | Name: Serial Number | | | 3 | Name: Serial Number | | |||
| | Identifiers: serialNumber | | ||||
| | OID: 2.5.4.5 | | | | OID: 2.5.4.5 | | |||
| | DER: 06 03 55 04 05 | | | | DER: 06 03 55 04 05 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 4 | Name: Country | | | 4 | Name: Country | | |||
| | Identifiers: countryName, c | | ||||
| | OID: 2.5.4.6 | | | | OID: 2.5.4.6 | | |||
| | DER: 06 03 55 04 06 | | | | DER: 06 03 55 04 06 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 5 | Name: Locality | | | 5 | Name: Locality | | |||
| | Identifiers: localityName, locality, l | | ||||
| | OID: 2.5.4.7 | | | | OID: 2.5.4.7 | | |||
| | DER: 06 03 55 04 07 | | | | DER: 06 03 55 04 07 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 6 | Name: State or Province | | | 6 | Name: State or Province | | |||
| | Identifiers: stateOrProvinceName, st | | ||||
| | OID: 2.5.4.8 | | | | OID: 2.5.4.8 | | |||
| | DER: 06 03 55 04 08 | | | | DER: 06 03 55 04 08 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 7 | Name: Street Address | | | 7 | Name: Street Address | | |||
| | Identifiers: streetAddress, street | | ||||
| | OID: 2.5.4.9 | | | | OID: 2.5.4.9 | | |||
| | DER: 06 03 55 04 09 | | | | DER: 06 03 55 04 09 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 8 | Name: Organization | | | 8 | Name: Organization | | |||
| | Identifiers: organizationName, o | | ||||
| | OID: 2.5.4.10 | | | | OID: 2.5.4.10 | | |||
| | DER: 06 03 55 04 0A | | | | DER: 06 03 55 04 0A | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 9 | Name: Organizational Unit | | | 9 | Name: Organizational Unit | | |||
| | Identifiers: organizationalUnitName, ou | | ||||
| | OID: 2.5.4.11 | | | | OID: 2.5.4.11 | | |||
| | DER: 06 03 55 04 0B | | | | DER: 06 03 55 04 0B | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 10 | Name: Title | | | 10 | Name: Title | | |||
| | Identifiers: title | | ||||
| | OID: 2.5.4.12 | | | | OID: 2.5.4.12 | | |||
| | DER: 06 03 55 04 0C | | | | DER: 06 03 55 04 0C | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 11 | Name: Postal Code | | | 11 | Name: Business Category | | |||
| | Identifiers: businessCategory | | ||||
| | OID: 2.5.4.15 | | ||||
| | DER: 06 03 55 04 0F | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 12 | Name: Postal Code | | ||||
| | Identifiers: postalCode | | ||||
| | OID: 2.5.4.17 | | | | OID: 2.5.4.17 | | |||
| | DER: 06 03 55 04 11 | | | | DER: 06 03 55 04 11 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 12 | Name: Given Name | | | 13 | Name: Given Name | | |||
| | Identifiers: givenName | | ||||
| | OID: 2.5.4.42 | | | | OID: 2.5.4.42 | | |||
| | DER: 06 03 55 04 2A | | | | DER: 06 03 55 04 2A | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 13 | Name: Initials | | | 14 | Name: Initials | | |||
| | Identifiers: initials | | ||||
| | OID: 2.5.4.43 | | | | OID: 2.5.4.43 | | |||
| | DER: 06 03 55 04 2B | | | | DER: 06 03 55 04 2B | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 14 | Name: Generation Qualifier | | | 15 | Name: Generation Qualifier | | |||
| | Identifiers: generationQualifier | | ||||
| | OID: 2.5.4.44 | | | | OID: 2.5.4.44 | | |||
| | DER: 06 03 55 04 2C | | | | DER: 06 03 55 04 2C | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 15 | Name: DN Qualifier | | | 16 | Name: DN Qualifier | | |||
| | Identifiers: dnQualifier | | ||||
| | OID: 2.5.4.46 | | | | OID: 2.5.4.46 | | |||
| | DER: 06 03 55 04 2E | | | | DER: 06 03 55 04 2E | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 16 | Name: Pseudonym | | | 17 | Name: Pseudonym | | |||
| | Identifiers: pseudonym | | ||||
| | OID: 2.5.4.65 | | | | OID: 2.5.4.65 | | |||
| | DER: 06 03 55 04 41 | | | | DER: 06 03 55 04 41 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 17 | Name: Organization Identifier | | | 18 | Name: Organization Identifier | | |||
| | Identifiers: organizationIdentifier | | ||||
| | OID: 2.5.4.97 | | | | OID: 2.5.4.97 | | |||
| | DER: 06 03 55 04 61 | | | | DER: 06 03 55 04 61 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 19 | Name: Inc. Locality | | ||||
| | Identifiers: jurisdictionOfIncorporationLocalityName | | ||||
| | OID: 1.3.6.1.4.1.311.60.2.1.1 | | ||||
| | DER: 06 0B 2B 06 01 04 01 82 37 3C 02 01 01 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 20 | Name: Inc. State or Province | | ||||
| | Identifiers: jurisdictionOfIncorporation | | ||||
| | StateOrProvinceName | | ||||
| | OID: 1.3.6.1.4.1.311.60.2.1.2 | | ||||
| | DER: 06 0B 2B 06 01 04 01 82 37 3C 02 01 02 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 21 | Name: Inc. Country | | ||||
| | Identifiers: jurisdictionOfIncorporationCountryName | | ||||
| | OID: 1.3.6.1.4.1.311.60.2.1.3 | | ||||
| | DER: 06 0B 2B 06 01 04 01 82 37 3C 02 01 03 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 21 | Name: Domain Component | | ||||
| | Identifiers: domainComponent, dc | | ||||
| | OID: 0.9.2342.19200300.100.1.25 | | ||||
| | DER: 06 0A 09 92 26 89 93 F2 2C 64 01 19 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
Figure 5: C509 Certificate Attributes | Figure 7: C509 Attributes | |||
8.3. C509 Certificate Extensions Registry | 11.3. C509 Extensions Registry | |||
IANA has created a new registry titled "C509 Certificate Extensions" | IANA has created a new registry titled "C509 Extensions Registry" | |||
under the new heading "C509 Certificate". The columns of the | under the new heading "CBOR Encoded X509 Certificates (C509 | |||
registry are Value, Name, OID, DER, Comments, extensionValue, and | Certificates)". The columns of the registry are Value, Name, | |||
Reference, where Value is an positive integer, and the other columns | Identifiers, OID, DER, Comments, extensionValue, and Reference, where | |||
are text strings. For values in the interval [1, 23] the | Value is an positive integer, and the other columns are text strings. | |||
registration procedure is "IETF Review" and "Expert Review". For all | For values in the interval [1, 23] the registration procedure is | |||
other values the registration procedure is "Expert Review". The | "IETF Review" and "Expert Review". For all other values the | |||
initial contents of the registry are: | registration procedure is "Expert Review". The initial contents of | |||
the registry are: | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | Extension | | | Value | Extension | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| 1 | Name: Subject Key Identifier | | | 1 | Name: Subject Key Identifier | | |||
| | OID: 2.5.29.14 | | | | Identifiers: subjectKeyIdentifier | | |||
| | DER: 06 03 55 1D 0E | | | | OID: 2.5.29.14 | | |||
| | Comments: | | | | DER: 06 03 55 1D 0E | | |||
| | extensionValue: bytes | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | | | extensionValue: SubjectKeyIdentifier | | |||
| 2 | Name: Key Usage | | +-------+-----------------------------------------------------------+ | |||
| | OID: 2.5.29.15 | | | 2 | Name: Key Usage | | |||
| | DER: 06 03 55 1D 0F | | | | Identifiers: keyUsage | | |||
| | Comments: | | | | OID: 2.5.29.15 | | |||
| | AttributeValue: int | | | | DER: 06 03 55 1D 0F | | |||
+-------+-----------------------------------------------------------+ | | | Comments: | | |||
| 3 | Name: Subject Alternative Name | | | | AttributeValue: KeyUsage | | |||
| | OID: 2.5.29.17 | | +-------+-----------------------------------------------------------+ | |||
| | DER: 06 03 55 1D 11 | | | 3 | Name: Subject Alternative Name | | |||
| | Comments: | | | | Identifiers: subjectAltName | | |||
| | extensionValue: ExtValueSAN | | | | OID: 2.5.29.17 | | |||
+-------+-----------------------------------------------------------+ | | | DER: 06 03 55 1D 11 | | |||
| 4 | Name: Basic Constraints | | | | Comments: | | |||
| | OID: 2.5.29.19 | | | | extensionValue: SubjectAltName | | |||
| | DER: 06 03 55 1D 13 | | +-------+-----------------------------------------------------------+ | |||
| | Comments: | | | 4 | Name: Basic Constraints | | |||
| | extensionValue: int | | | | Identifiers: basicConstraints | | |||
+-------+------------------------------------------er-----------------+ | | | OID: 2.5.29.19 | | |||
| 5 | Name: CRL Distribution Points | | | | DER: 06 03 55 1D 13 | | |||
| | OID: 2.5.29.31 | | | | Comments: | | |||
| | DER: 06 03 55 1D 1F | | | | extensionValue: BasicConstraints | | |||
| | Comments: | | +-------+-----------------------------------------------------------+ | |||
| | extensionValue: ExtValueCDP | | | 5 | Name: CRL Distribution Points | | |||
+-------+-----------------------------------------------------------+ | | | Identifiers: cRLDistributionPoints | | |||
| 6 | Name: Certificate Policies | | | | OID: 2.5.29.31 | | |||
| | OID: 2.5.29.32 | | | | DER: 06 03 55 1D 1F | | |||
| | DER: 06 03 55 1D 20 | | | | Comments: | | |||
| | Comments: | | | | extensionValue: CRLDistributionPoints | | |||
| | extensionValue: ExtValueCP | | +-------+-----------------------------------------------------------+ | |||
+-------+-----------------------------------------------------------+ | | 6 | Name: Certificate Policies | | |||
| 7 | Name: Authority Key Identifier | | | | Identifiers: certificatePolicies | | |||
| | OID: 2.5.29.35 | | | | OID: 2.5.29.32 | | |||
| | DER: 06 03 55 1D 23 | | | | DER: 06 03 55 1D 20 | | |||
| | Comments: | | | | Comments: | | |||
| | extensionValue: ExtValueAKI | | | | extensionValue: CertificatePolicies | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 8 | Name: Extended Key Usage | | | 7 | Name: Authority Key Identifier | | |||
| | OID: 2.5.29.37 | | | | Identifiers: authorityKeyIdentifier | | |||
| | DER: 06 03 55 1D 25 | | | | OID: 2.5.29.35 | | |||
| | Comments: | | | | DER: 06 03 55 1D 23 | | |||
| | extensionValue: ExtValueEKU | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | | | extensionValue: AuthorityKeyIdentifier | | |||
| 9 | Name: Authority Information Access | | +-------+-----------------------------------------------------------+ | |||
| | OID: 1.3.6.1.5.5.7.1.1 | | | 8 | Name: Extended Key Usage | | |||
| | DER: 06 08 2B 06 01 05 05 07 01 01 | | | | Identifiers: extKeyUsage | | |||
| | Comments: | | | | OID: 2.5.29.37 | | |||
| | extensionValue: ExtValueAIA | | | | DER: 06 03 55 1D 25 | | |||
+-------+-----------------------------------------------------------+ | | | Comments: | | |||
| 10 | Name: Signed Certificate Timestamp List | | | | extensionValue: ExtKeyUsageSyntax | | |||
| | OID: 1.3.6.1.4.1.11129.2.4.2 | | +-------+-----------------------------------------------------------+ | |||
| | DER: 06 0A 2B 06 01 04 01 D6 79 02 04 02 | | | 9 | Name: Authority Information Access | | |||
| | Comments: | | | | Identifiers: authorityInfoAccess | | |||
| | extensionValue: ExtValueSCT | | | | OID: 1.3.6.1.5.5.7.1.1 | | |||
+-------+-----------------------------------------------------------+ | | | DER: 06 08 2B 06 01 05 05 07 01 01 | | |||
| 24 | Name: Subject Directory Attributes | | | | Comments: | | |||
| | OID: 2.5.29.9 | | | | extensionValue: AuthorityInfoAccessSyntax | | |||
| | DER: 06 03 55 1D 09 | | +-------+-----------------------------------------------------------+ | |||
| | Comments: | | | 10 | Name: Signed Certificate Timestamp List | | |||
| | extensionValue: bytes | | | | Identifiers: | | |||
+-------+-----------------------------------------------------------+ | | | OID: 1.3.6.1.4.1.11129.2.4.2 | | |||
| 25 | Name: Issuer Alternative Name | | | | DER: 06 0A 2B 06 01 04 01 D6 79 02 04 02 | | |||
| | OID: 2.5.29.18 | | | | Comments: | | |||
| | DER: 06 03 55 1D 12 | | | | extensionValue: SignedCertificateTimestamps | | |||
| | Comments: | | +-------+-----------------------------------------------------------+ | |||
| | extensionValue: bytes | | | 24 | Name: Subject Directory Attributes | | |||
+-------+-----------------------------------------------------------+ | | | Identifiers: subjectDirectoryAttributes | | |||
| 26 | Name: Name Constraints | | | | OID: 2.5.29.9 | | |||
| | OID: 2.5.29.30 | | | | DER: 06 03 55 1D 09 | | |||
| | DER: 06 03 55 1D 1E | | | | Comments: | | |||
| | Comments: | | | | extensionValue: SubjectDirectoryAttributes | | |||
| | extensionValue: bytes | | +-------+-----------------------------------------------------------+ | |||
+-------+-----------------------------------------------------------+ | | 25 | Name: Issuer Alternative Name | | |||
| 27 | Name: Policy Mappings | | | | Identifiers: issuerAltName | | |||
| | OID: 2.5.29.33 | | | | OID: 2.5.29.18 | | |||
| | DER: 06 03 55 1D 21 | | | | DER: 06 03 55 1D 12 | | |||
| | Comments: | | | | Comments: | | |||
| | extensionValue: bytes | | | | extensionValue: IssuerAltName | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 28 | Name: Policy Constraints | | | 26 | Name: Name Constraints | | |||
| | OID: 2.5.29.36 | | | | Identifiers: nameConstraints | | |||
| | DER: 06 03 55 1D 24 | | | | OID: 2.5.29.30 | | |||
| | Comments: | | | | DER: 06 03 55 1D 1E | | |||
| | extensionValue: bytes | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | | | extensionValue: NameConstraints | | |||
| 29 | Name: Freshest CRL | | +-------+-----------------------------------------------------------+ | |||
| | OID: 2.5.29.46 | | | 27 | Name: Policy Mappings | | |||
| | DER: 06 03 55 1D 2E | | | | Identifiers: policyMappings | | |||
| | Comments: | | | | OID: 2.5.29.33 | | |||
| | extensionValue: bytes | | | | DER: 06 03 55 1D 21 | | |||
+-------+-----------------------------------------------------------+ | | | Comments: | | |||
| 30 | Name: Inhibit anyPolicy | | | | extensionValue: PolicyMappings | | |||
| | OID: 2.5.29.54 | | +-------+-----------------------------------------------------------+ | |||
| | DER: 06 03 55 1D 36 | | | 28 | Name: Policy Constraints | | |||
| | Comments: | | | | Identifiers: policyConstraints | | |||
| | extensionValue: bytes | | | | OID: 2.5.29.36 | | |||
+-------+-----------------------------------------------------------+ | | | DER: 06 03 55 1D 24 | | |||
| 31 | Name: Subject Information Access | | | | Comments: | | |||
| | OID: 1.3.6.1.5.5.7.1.11 | | | | extensionValue: PolicyConstraints | | |||
| | DER: 06 08 2B 06 01 05 05 07 01 0B | | +-------+-----------------------------------------------------------+ | |||
| | Comments: | | | 29 | Name: Freshest CRL | | |||
| | extensionValue: bytes | | | | Identifiers: freshestCRL | | |||
+-------+-----------------------------------------------------------+ | | | OID: 2.5.29.46 | | |||
| | DER: 06 03 55 1D 2E | | ||||
| | Comments: | | ||||
| | extensionValue: FreshestCRL | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 30 | Name: Inhibit anyPolicy | | ||||
| | Identifiers: inhibitAnyPolicy | | ||||
| | OID: 2.5.29.54 | | ||||
| | DER: 06 03 55 1D 36 | | ||||
| | Comments: | | ||||
| | extensionValue: InhibitAnyPolicy | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 31 | Name: Subject Information Access | | ||||
| | Identifiers: subjectInfoAccess | | ||||
| | OID: 1.3.6.1.5.5.7.1.11 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 01 0B | | ||||
| | Comments: | | ||||
| | extensionValue: SubjectInfoAccessSyntax | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 32 | Name: IP Resources | | ||||
| | Identifiers: ipAddrBlocks | | ||||
| | OID: 1.3.6.1.5.5.7.1.7 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 01 07 | | ||||
| | Comments: | | ||||
| | extensionValue: IPAddrBlocks | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 33 | Name: AS Resources | | ||||
| | Identifiers: autonomousSysIds | | ||||
| | OID: 1.3.6.1.5.5.7.1.8 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 01 08 | | ||||
| | Comments: | | ||||
| | extensionValue: ASIdentifiers | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 34 | Name: IP Resources v2 | | ||||
| | Identifiers: ipAddrBlocks-v2 | | ||||
| | OID: 1.3.6.1.5.5.7.1.28 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 01 1C | | ||||
| | Comments: | | ||||
| | extensionValue: IPAddrBlocks | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 35 | Name: AS Resources v2 | | ||||
| | Identifiers: autonomousSysIds-v2 | | ||||
| | OID: 1.3.6.1.5.5.7.1.29 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 01 1D | | ||||
| | Comments: | | ||||
| | extensionValue: ASIdentifiers | | ||||
+-------+-----------------------------------------------------------+ | ||||
Figure 6: C509 Certificate Extensions | Figure 8: C509 Extensions | |||
8.4. C509 Certificate Certificate Policies Registry | 11.4. C509 Certificate Policies Registry | |||
IANA has created a new registry titled "C509 Certificate Certificate | IANA has created a new registry titled "C509 Certificate Policies | |||
Policies" under the new heading "C509 Certificate". The columns of | Registry" under the new heading "CBOR Encoded X509 Certificates (C509 | |||
the registry are Value, Name, OID, DER, Comments, and Reference, | Certificates)". The columns of the registry are Value, Name, | |||
where Value is an integer, and the other columns are text strings. | Identifiers, OID, DER, Comments, and Reference, where Value is an | |||
For values in the interval [-24, 23] the registration procedure is | integer, and the other columns are text strings. For values in the | |||
"IETF Review" and "Expert Review". For all other values the | interval [-24, 23] the registration procedure is "IETF Review" and | |||
registration procedure is "Expert Review". The initial contents of | "Expert Review". For all other values the registration procedure is | |||
the registry are: | "Expert Review". The initial contents of the registry are: | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | Certificate Policy | | | Value | Certificate Policy | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| 0 | Name: Any Policy | | ||||
| | Identifiers: anyPolicy | | ||||
| | OID: 2.5.29.32.0 | | ||||
| | DER: 06 04 55 1D 20 00 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 1 | Name: Domain Validation (DV) | | | 1 | Name: Domain Validation (DV) | | |||
| | Identifiers: domain-validated | | ||||
| | OID: 2.23.140.1.2.1 | | | | OID: 2.23.140.1.2.1 | | |||
| | DER: 06 06 67 81 0C 01 02 01 | | | | DER: 06 06 67 81 0C 01 02 01 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 2 | Name: Organization Validation (OV) | | | 2 | Name: Organization Validation (OV) | | |||
| | Identifiers: organization-validated | | ||||
| | OID: 2.23.140.1.2.2 | | | | OID: 2.23.140.1.2.2 | | |||
| | DER: 06 06 67 81 0C 01 02 02 | | | | DER: 06 06 67 81 0C 01 02 02 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 3 | Name: Individual Validation (IV) | | | 3 | Name: Individual Validation (IV) | | |||
| | Identifiers: individual-validated | | ||||
| | OID: 2.23.140.1.2.3 | | | | OID: 2.23.140.1.2.3 | | |||
| | DER: 06 06 67 81 0C 01 02 03 | | | | DER: 06 06 67 81 0C 01 02 03 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 4 | Name: Extended Validation (EV) | | | 4 | Name: Extended Validation (EV) | | |||
| | Identifiers: ev-guidelines | | ||||
| | OID: 2.23.140.1.1 | | | | OID: 2.23.140.1.1 | | |||
| | DER: 06 05 67 81 0C 01 01 | | | | DER: 06 05 67 81 0C 01 01 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 7 | Name: Resource PKI (RPKI) | | ||||
| | Identifiers: id-cp-ipAddr-asNumber | | ||||
| | OID: 1.3.6.1.5.5.7.14.2 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 0E 02 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 8 | Name: Resource PKI (RPKI) (Alternative) | | ||||
| | Identifiers: id-cp-ipAddr-asNumber-v2 | | ||||
| | OID: 1.3.6.1.5.5.7.14.3 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 0E 03 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 10 | Name: Remote SIM Provisioning Role | | ||||
| | Certificate Issuer | | ||||
| | Identifiers: id-rspRole-ci | | ||||
| | OID: 2.23.146.1.2.1.0 | | ||||
| | DER: 06 07 67 81 12 01 02 01 00 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 11 | Name: Remote SIM Provisioning Role | | ||||
| | eUICC | | ||||
| | Identifiers: id-rspRole-euicc | | ||||
| | OID: 2.23.146.1.2.1.1 | | ||||
| | DER: 06 07 67 81 12 01 02 01 01 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 12 | Name: Remote SIM Provisioning Role | | ||||
| | eUICC Manufacturer | | ||||
| | Identifiers: id-rspRole-eum | | ||||
| | OID: 2.23.146.1.2.1.2 | | ||||
| | DER: 06 07 67 81 12 01 02 01 02 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 13 | Name: Remote SIM Provisioning Role | | ||||
| | SM-DP+ TLS | | ||||
| | Identifiers: id-rspRole-dp-tls | | ||||
| | OID: 2.23.146.1.2.1.3 | | ||||
| | DER: 06 07 67 81 12 01 02 01 03 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 14 | Name: Remote SIM Provisioning Role | | ||||
| | SM-DP+ Authentication | | ||||
| | Identifiers: id-rspRole-dp-auth | | ||||
| | OID: 2.23.146.1.2.1.4 | | ||||
| | DER: 06 07 67 81 12 01 02 01 04 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 15 | Name: Remote SIM Provisioning Role | | ||||
| | SM-DP+ Profile Binding | | ||||
| | Identifiers: id-rspRole-dp-pb | | ||||
| | OID: 2.23.146.1.2.1.5 | | ||||
| | DER: 06 07 67 81 12 01 02 01 05 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 16 | Name: Remote SIM Provisioning Role | | ||||
| | SM-DS TLS | | ||||
| | Identifiers: id-rspRole-ds-tls | | ||||
| | OID: 2.23.146.1.2.1.6 | | ||||
| | DER: 06 07 67 81 12 01 02 01 06 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 17 | Name: Remote SIM Provisioning Role | | ||||
| | SM-DS Authentication | | ||||
| | Identifiers: id-rspRole-ds-auth | | ||||
| | OID: 2.23.146.1.2.1.7 | | ||||
| | DER: 06 07 67 81 12 01 02 01 07 | | ||||
| | Comments: | | ||||
+-------+-----------------------------------------------------------+ | ||||
Figure 7: C509 Certificate Certificate Policies | Figure 9: C509 Certificate Policies | |||
8.5. C509 Certificate Extended Key Usages Registry | 11.5. C509 Policies Qualifiers Registry | |||
IANA has created a new registry titled "C509 Certificate Extended Key | IANA has created a new registry titled "C509 Policies Qualifiers | |||
Usages" under the new heading "C509 Certificate". The columns of the | Registry" under the new heading "CBOR Encoded X509 Certificates (C509 | |||
registry are Value, Name, OID, DER, Comments, and Reference, where | Certificates)". The columns of the registry are Value, Name, | |||
Value is an integer, and the other columns are text strings. For | Identifiers, OID, DER, Comments, and Reference, where Value is an | |||
values in the interval [-24, 23] the registration procedure is "IETF | integer, and the other columns are text strings. For values in the | |||
Review" and "Expert Review". For all other values the registration | interval [-24, 23] the registration procedure is "IETF Review" and | |||
procedure is "Expert Review". The initial contents of the registry | "Expert Review". For all other values the registration procedure is | |||
are: | "Expert Review". The initial contents of the registry are: | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | Extended Key Usage | | | Value | Certificate Policy | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| 1 | Name: TLS Server authentication | | | 1 | Name: Certification Practice Statement | | |||
| | OID: 1.3.6.1.5.5.7.3.1 | | | | Identifiers: id-qt-cps, cps | | |||
| | DER: 06 08 2B 06 01 05 05 07 03 01 | | | | OID: 1.3.6.1.5.5.7.2.1 | | |||
| | DER: 06 08 2B 06 01 05 05 07 02 01 | | ||||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 2 | Name: TLS Client Authentication | | | 2 | Name: User Notice | | |||
| | OID: 1.3.6.1.5.5.7.3.2 | | | | Identifiers: id-qt-unotice, unotice | | |||
| | DER: 06 08 2B 06 01 05 05 07 03 02 | | | | OID: 1.3.6.1.5.5.7.2.2 | | |||
| | DER: 06 08 2B 06 01 05 05 07 02 02 | | ||||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 3 | Name: Code Signing | | ||||
| | OID: 1.3.6.1.5.5.7.3.3 | | Figure 10: C509 Policies Qualifiers | |||
| | DER: 06 08 2B 06 01 05 05 07 03 03 | | ||||
11.6. C509 Information Access Registry | ||||
IANA has created a new registry titled "C509 Information Access | ||||
Registry" under the new heading "CBOR Encoded X509 Certificates (C509 | ||||
Certificates)". The columns of the registry are Value, Name, | ||||
Identifiers, OID, DER, Comments, and Reference, where Value is an | ||||
integer, and the other columns are text strings. For values in the | ||||
interval [-24, 23] the registration procedure is "IETF Review" and | ||||
"Expert Review". For all other values the registration procedure is | ||||
"Expert Review". The initial contents of the registry are: | ||||
+-------+-----------------------------------------------------------+ | ||||
| Value | Information Access | | ||||
+=======+===========================================================+ | ||||
| 1 | Name: OCSP | | ||||
| | Identifiers: id-ad-ocsp, id-pkix-ocsp | | ||||
| | OID: 1.3.6.1.5.5.7.48.1 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 30 01 | | ||||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 4 | Name: Email protection (S/MIME) | | | 2 | Name: CA Issuers | | |||
| | OID: 1.3.6.1.5.5.7.3.4 | | | | Identifiers: id-ad-caIssuers, caIssuers | | |||
| | DER: 06 08 2B 06 01 05 05 07 03 04 | | | | OID: 1.3.6.1.5.5.7.48.2 | | |||
| | DER: 06 08 2B 06 01 05 05 07 30 02 | | ||||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 8 | Name: Time Stamping | | | 3 | Name: Time Stamping | | |||
| | OID: 1.3.6.1.5.5.7.3.8 | | | | Identifiers: id-ad-timeStamping, timeStamping | | |||
| | DER: 06 08 2B 06 01 05 05 07 03 08 | | | | OID: 1.3.6.1.5.5.7.48.3 | | |||
| | DER: 06 08 2B 06 01 05 05 07 30 03 | | ||||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 9 | Name: OCSP Signing | | | 5 | Name: CA Repository | | |||
| | OID: 1.3.6.1.5.5.7.3.9 | | | | Identifiers: id-ad-caRepository | | |||
| | DER: 06 08 2B 06 01 05 05 07 03 09 | | | | OID: 1.3.6.1.5.5.7.48.5 | | |||
| | DER: 06 08 2B 06 01 05 05 07 30 05 | | ||||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 10 | Name: RPKI Manifest | | ||||
| | Identifiers: id-ad-rpkiManifest | | ||||
| | OID: 1.3.6.1.5.5.7.48.10 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 30 0A | | ||||
| | Comments: RFC 6487 | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 11 | Name: Signed Object | | ||||
| | Identifiers: id-ad-signedObject | | ||||
| | OID: 1.3.6.1.5.5.7.48.11 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 30 0B | | ||||
| | Comments: RFC 6487 | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 13 | Name: RPKI Notify | | ||||
| | Identifiers: id-ad-rpkiNotify | | ||||
| | OID: 1.3.6.1.5.5.7.48.13 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 30 0D | | ||||
| | Comments: RFC 8182 | | ||||
+-------+-----------------------------------------------------------+ | ||||
Figure 8: C509 Certificate Extended Key Usages | Figure 11: C509 Information Accesses | |||
8.6. C509 Certificate General Names Registry | 11.7. C509 Extended Key Usages Registry | |||
IANA has created a new registry titled "C509 Certificate General | IANA has created a new registry titled "C509 Extended Key Usages | |||
Names" under the new heading "C509 Certificate". The columns of the | Registry" under the new heading "CBOR Encoded X509 Certificates (C509 | |||
registry are Value, General Name, and Reference, where Value is an | Certificates)". The columns of the registry are Value, Name, | |||
Identifiers, OID, DER, Comments, and Reference, where Value is an | ||||
integer, and the other columns are text strings. For values in the | integer, and the other columns are text strings. For values in the | |||
interval [-24, 23] the registration procedure is "IETF Review" and | interval [-24, 23] the registration procedure is "IETF Review" and | |||
"Expert Review". For all other values the registration procedure is | "Expert Review". For all other values the registration procedure is | |||
"Expert Review". The initial contents of the registry are: | "Expert Review". The initial contents of the registry are: | |||
+-------+---------------------------------------------------------+ | ||||
| Value | Extended Key Usage | | ||||
+=======+=========================================================+ | ||||
| 0 | Name: Any Extended Key Usage | | ||||
| | Identifiers: anyExtendedKeyUsage | | ||||
| | OID: 2.5.29.37.0 | | ||||
| | DER: 06 04 55 1D 25 00 | | ||||
| | Comments: RFC 5280 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 1 | Name: TLS Server authentication | | ||||
| | Identifiers: id-kp-serverAuth | | ||||
| | OID: 1.3.6.1.5.5.7.3.1 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 01 | | ||||
| | Comments: RFC 5280 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 2 | Name: TLS Client Authentication | | ||||
| | Identifiers: id-kp-clientAuth | | ||||
| | OID: 1.3.6.1.5.5.7.3.2 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 02 | | ||||
| | Comments: RFC 5280 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 3 | Name: Code Signing | | ||||
| | Identifiers: id-kp-codeSigning | | ||||
| | OID: 1.3.6.1.5.5.7.3.3 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 03 | | ||||
| | Comments: RFC 5280 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 4 | Name: Email protection (S/MIME) | | ||||
| | Identifiers: id-kp-emailProtection | | ||||
| | OID: 1.3.6.1.5.5.7.3.4 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 04 | | ||||
| | Comments: RFC 5280 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 8 | Name: Time Stamping | | ||||
| | Identifiers: id-kp-timeStamping, timestamping | | ||||
| | OID: 1.3.6.1.5.5.7.3.8 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 08 | | ||||
| | Comments: | | ||||
+-------+---------------------------------------------------------+ | ||||
| 9 | Name: OCSP Signing | | ||||
| | Identifiers: id-kp-OCSPSigning | | ||||
| | OID: 1.3.6.1.5.5.7.3.9 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 09 | | ||||
| | Comments: RFC 5280 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 10 | Name: Kerberos PKINIT Client Auth | | ||||
| | Identifiers: id-pkinit-KPClientAuth | | ||||
| | OID: 1.3.6.1.5.2.3.4 | | ||||
| | DER: 06 07 2B 06 01 05 02 03 04 | | ||||
| | Comments: RFC 4556 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 11 | Name: Kerberos PKINIT KDC | | ||||
| | Identifiers: id-pkinit-KPKdc | | ||||
| | OID: 1.3.6.1.5.2.3.5 | | ||||
| | DER: 06 07 2B 06 01 05 02 03 05 | | ||||
| | Comments: RFC 4556 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 12 | Name: SSH Client | | ||||
| | Identifiers: id-kp-secureShellClient | | ||||
| | OID: 1.3.6.1.5.5.7.3.21 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 15 | | ||||
| | Comments: RFC 6187 | | ||||
+-------+---------------------------------------------------------+ | ||||
| 13 | Name: Kerberos PKINIT KDC | | ||||
| | Identifiers: id-pkinit-KPKdc | | ||||
| | OID: 1.3.6.1.5.5.7.3.22 | | ||||
| | DER: 06 08 2B 06 01 05 05 07 03 16 | | ||||
| | Comments: RFC 6187 | | ||||
+-------+---------------------------------------------------------+ | ||||
Figure 12: C509 Extended Key Usages | ||||
11.8. C509 General Names Registry | ||||
IANA has created a new registry titled "C509 General Names Registry" | ||||
under the new heading "CBOR Encoded X509 Certificates (C509 | ||||
Certificates)". The columns of the registry are Value, General Name, | ||||
and Reference, where Value is an integer, and the other columns are | ||||
text strings. For values in the interval [-24, 23] the registration | ||||
procedure is "IETF Review" and "Expert Review". For all other values | ||||
the registration procedure is "Expert Review". The initial contents | ||||
of the registry are: | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | General Names | | | Value | General Names | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| -2 | Name: otherName with SmtpUTF8Mailbox | | ||||
| | Comments: id-on-SmtpUTF8Mailbox | | ||||
| | (1.3.6.1.5.5.7.8.9) | | ||||
| | 06 08 2B 06 01 05 05 07 08 09 | | ||||
| | Value: text | | ||||
+-------+-----------------------------------------------------------+ | ||||
| -1 | Name: otherName with hardwareModuleName | | | -1 | Name: otherName with hardwareModuleName | | |||
| | Comments: | | | | Comments: id-on-hardwareModuleNamee | | |||
| | (1.3.6.1.5.5.7.8.4) | | ||||
| | 06 08 2B 06 01 05 05 07 08 04 | | ||||
| | Value: [ ~oid, bytes ] | | | | Value: [ ~oid, bytes ] | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 0 | Name: otherName | | | 0 | Name: otherName | | |||
| | Comments: | | | | Comments: | | |||
| | Value: [ ~oid, bytes ] | | | | Value: [ ~oid, bytes ] | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 1 | Name: rfc822Name | | | 1 | Name: rfc822Name | | |||
| | Comments: | | | | Comments: | | |||
| | Value: text | | | | Value: text | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
skipping to change at page 22, line 41 ¶ | skipping to change at page 34, line 49 ¶ | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 7 | Name: iPAddress | | | 7 | Name: iPAddress | | |||
| | Comments: | | | | Comments: | | |||
| | Value: bytes | | | | Value: bytes | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 8 | Name: registeredID | | | 8 | Name: registeredID | | |||
| | Comments: | | | | Comments: | | |||
| | Value: ~oid | | | | Value: ~oid | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
Figure 9: C509 Certificate General Names | Figure 13: C509 General Names | |||
8.7. C509 Certificate Signature Algorithms Registry | 11.9. C509 Signature Algorithms Registry | |||
IANA has created a new registry titled "C509 Certificate Signature | IANA has created a new registry titled "C509 Signature Algorithms" | |||
Algorithms" under the new heading "C509 Certificate". The columns of | under the new heading "CBOR Encoded X509 Certificates (C509 | |||
the registry are Value, Name, OID, Parameters, DER, Comments, and | Certificates)". The columns of the registry are Value, Name, | |||
Reference, where Value is an integer, and the other columns are text | Identifiers, OID, Parameters, DER, Comments, and Reference, where | |||
strings. For values in the interval [-24, 23] the registration | Value is an integer, and the other columns are text strings. For | |||
procedure is "IETF Review" and "Expert Review". For all other values | values in the interval [-24, 23] the registration procedure is "IETF | |||
the registration procedure is "Expert Review". The initial contents | Review" and "Expert Review". For all other values the registration | |||
of the registry are: | procedure is "Expert Review". The initial contents of the registry | |||
are: | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | X.509 Signature Algorithms | | | Value | X.509 Signature Algorithms | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| -256 | Name: RSASSA-PKCS1-v1_5 with SHA-1 | | | -256 | Name: RSASSA-PKCS1-v1_5 with SHA-1 | | |||
| | Identifiers: sha1-with-rsa-signature, | | ||||
| | sha1WithRSAEncryption, | | ||||
| | sha-1WithRSAEncryption | | ||||
| | OID: 1.2.840.113549.1.1.5 | | | | OID: 1.2.840.113549.1.1.5 | | |||
| | Parameters: NULL | | | | Parameters: NULL | | |||
| | DER: 30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05 00 | | | | DER: 30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05 00 | | |||
| | Comments: Don't use | | | | Comments: Don't use | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| -255 | Name: ECDSA with SHA-1 | | | -255 | Name: ECDSA with SHA-1 | | |||
| | Identifiers: ecdsa-with-SHA1 | | ||||
| | OID: 1.2.840.10045.4.1 | | | | OID: 1.2.840.10045.4.1 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 09 06 07 2A 86 48 CE 3D 04 01 | | | | DER: 30 09 06 07 2A 86 48 CE 3D 04 01 | | |||
| | Comments: Don't use. Compressed signature value | | | | Comments: Don't use. Compressed signature value | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 0 | Name: ECDSA with SHA-256 | | | 0 | Name: ECDSA with SHA-256 | | |||
| | Identifiers: ecdsa-with-SHA256 | | ||||
| | OID: 1.2.840.10045.4.3.2 | | | | OID: 1.2.840.10045.4.3.2 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2A 86 48 CE 3D 04 03 02 | | | | DER: 30 0A 06 08 2A 86 48 CE 3D 04 03 02 | | |||
| | Comments: Compressed signature value | | | | Comments: Compressed signature value | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 1 | Name: ECDSA with SHA-384 | | | 1 | Name: ECDSA with SHA-384 | | |||
| | Identifiers: ecdsa-with-SHA384 | | ||||
| | OID: 1.2.840.10045.4.3.3 | | | | OID: 1.2.840.10045.4.3.3 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2A 86 48 CE 3D 04 03 03 | | | | DER: 30 0A 06 08 2A 86 48 CE 3D 04 03 03 | | |||
| | Comments: Compressed signature value | | | | Comments: Compressed signature value | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 2 | Name: ECDSA with SHA-512 | | | 2 | Name: ECDSA with SHA-512 | | |||
| | Identifiers: ecdsa-with-SHA512 | | ||||
| | OID: 1.2.840.10045.4.3.4 | | | | OID: 1.2.840.10045.4.3.4 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2A 86 48 CE 3D 04 03 04 | | | | DER: 30 0A 06 08 2A 86 48 CE 3D 04 03 04 | | |||
| | Comments: Compressed signature value | | | | Comments: Compressed signature value | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 3 | Name: ECDSA with SHAKE128 | | | 3 | Name: ECDSA with SHAKE128 | | |||
| | Identifiers: id-ecdsa-with-shake128 | | ||||
| | OID: 1.3.6.1.5.5.7.6.32 | | | | OID: 1.3.6.1.5.5.7.6.32 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2B 06 01 05 05 07 06 20 | | | | DER: 30 0A 06 08 2B 06 01 05 05 07 06 20 | | |||
| | Comments: Compressed signature value | | | | Comments: Compressed signature value | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 4 | Name: ECDSA with SHAKE256 | | | 4 | Name: ECDSA with SHAKE256 | | |||
| | Identifiers: id-ecdsa-with-shake256 | | ||||
| | OID: 1.3.6.1.5.5.7.6.33 | | | | OID: 1.3.6.1.5.5.7.6.33 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2B 06 01 05 05 07 06 21 | | | | DER: 30 0A 06 08 2B 06 01 05 05 07 06 21 | | |||
| | Comments: Compressed signature value | | | | Comments: Compressed signature value | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 12 | Name: Ed25519 | | | 12 | Name: Ed25519 | | |||
| | Identifiers: id-Ed25519, id-EdDSA25519 | | ||||
| | OID: 1.3.101.112 | | | | OID: 1.3.101.112 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 05 06 03 2B 65 70 | | | | DER: 30 05 06 03 2B 65 70 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 13 | Name: Ed448 | | | 13 | Name: Ed448 | | |||
| | Identifiers: id-Ed448, id-EdDSA448 | | ||||
| | OID: 1.3.101.113 | | | | OID: 1.3.101.113 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 05 06 03 2B 65 71 | | | | DER: 30 05 06 03 2B 65 71 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 23 | Name: RSASSA-PKCS1-v1_5 with SHA-256 | | | 23 | Name: RSASSA-PKCS1-v1_5 with SHA-256 | | |||
| | Identifiers: sha256WithRSAEncryption | | ||||
| | OID: 1.2.840.113549.1.1.11 | | | | OID: 1.2.840.113549.1.1.11 | | |||
| | Parameters: NULL | | | | Parameters: NULL | | |||
| | DER: 30 0B 06 09 2A 86 48 86 F7 0D 01 01 0B 05 00 | | | | DER: 30 0B 06 09 2A 86 48 86 F7 0D 01 01 0B 05 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 24 | Name: RSASSA-PKCS1-v1_5 with SHA-384 | | | 24 | Name: RSASSA-PKCS1-v1_5 with SHA-384 | | |||
| | Identifiers: sha384WithRSAEncryption | | ||||
| | OID: 1.2.840.113549.1.1.12 | | | | OID: 1.2.840.113549.1.1.12 | | |||
| | Parameters: NULL | | | | Parameters: NULL | | |||
| | DER: 30 0B 06 09 2A 86 48 86 F7 0D 01 01 0C 05 00 | | | | DER: 30 0B 06 09 2A 86 48 86 F7 0D 01 01 0C 05 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 25 | Name: RSASSA-PKCS1-v1_5 with SHA-512 | | | 25 | Name: RSASSA-PKCS1-v1_5 with SHA-512 | | |||
| | Identifiers: sha512WithRSAEncryption | | ||||
| | OID: 1.2.840.113549.1.1.13 | | | | OID: 1.2.840.113549.1.1.13 | | |||
| | Parameters: NULL | | | | Parameters: NULL | | |||
| | DER: 30 0B 06 09 2A 86 48 86 F7 0D 01 01 0D 05 00 | | | | DER: 30 0B 06 09 2A 86 48 86 F7 0D 01 01 0D 05 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 26 | Name: RSASSA-PSS with SHA-256 | | | 26 | Name: RSASSA-PSS with SHA-256 | | |||
| | Identifiers: rsassa-pss, id-RSASSA-PSS | | ||||
| | OID: 1.2.840.113549.1.1.10 | | | | OID: 1.2.840.113549.1.1.10 | | |||
| | Parameters: SHA-256, MGF-1 with SHA-256, saltLength = 32 | | | | Parameters: SHA-256, MGF-1 with SHA-256, saltLength = 32 | | |||
| | DER: 30 41 06 09 2A 86 48 86 F7 0D 01 01 0A 30 34 | | | | DER: 30 41 06 09 2A 86 48 86 F7 0D 01 01 0A 30 34 | | |||
| | A0 0F 30 0D 06 09 60 86 48 01 65 03 04 02 01 | | | | A0 0F 30 0D 06 09 60 86 48 01 65 03 04 02 01 | | |||
| | 05 00 A1 1C 30 1A 06 09 2A 86 48 86 F7 0D 01 | | | | 05 00 A1 1C 30 1A 06 09 2A 86 48 86 F7 0D 01 | | |||
| | 01 08 30 0D 06 09 60 86 48 01 65 03 04 02 01 | | | | 01 08 30 0D 06 09 60 86 48 01 65 03 04 02 01 | | |||
| | 05 00 a2 03 02 01 20 | | | | 05 00 a2 03 02 01 20 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 27 | Name: RSASSA-PSS with SHA-384 | | | 27 | Name: RSASSA-PSS with SHA-384 | | |||
| | Identifiers: rsassa-pss, id-RSASSA-PSS | | ||||
| | OID: 1.2.840.113549.1.1.10 | | | | OID: 1.2.840.113549.1.1.10 | | |||
| | Parameters: SHA-384, MGF-1 with SHA-384, saltLength = 48 | | | | Parameters: SHA-384, MGF-1 with SHA-384, saltLength = 48 | | |||
| | DER: 30 41 06 09 2A 86 48 86 F7 0D 01 01 0A 30 34 | | | | DER: 30 41 06 09 2A 86 48 86 F7 0D 01 01 0A 30 34 | | |||
| | A0 0F 30 0D 06 09 60 86 48 01 65 03 04 02 02 | | | | A0 0F 30 0D 06 09 60 86 48 01 65 03 04 02 02 | | |||
| | 05 00 A1 1C 30 1A 06 09 2A 86 48 86 F7 0D 01 | | | | 05 00 A1 1C 30 1A 06 09 2A 86 48 86 F7 0D 01 | | |||
| | 01 08 30 0D 06 09 60 86 48 01 65 03 04 02 02 | | | | 01 08 30 0D 06 09 60 86 48 01 65 03 04 02 02 | | |||
| | 05 00 A2 03 02 01 30 | | | | 05 00 A2 03 02 01 30 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 28 | Name: RSASSA-PSS with SHA-512 | | | 28 | Name: RSASSA-PSS with SHA-512 | | |||
| | Identifiers: rsassa-pss, id-RSASSA-PSS | | ||||
| | OID: 1.2.840.113549.1.1.10 | | | | OID: 1.2.840.113549.1.1.10 | | |||
| | Parameters: SHA-512, MGF-1 with SHA-512, saltLength = 64 | | | | Parameters: SHA-512, MGF-1 with SHA-512, saltLength = 64 | | |||
| | DER: 30 41 06 09 2A 86 48 86 F7 0D 01 01 0A 30 34 | | | | DER: 30 41 06 09 2A 86 48 86 F7 0D 01 01 0A 30 34 | | |||
| | A0 0F 30 0D 06 09 60 86 48 01 65 03 04 02 03 | | | | A0 0F 30 0D 06 09 60 86 48 01 65 03 04 02 03 | | |||
| | 05 00 A1 1C 30 1A 06 09 2A 86 48 86 F7 0D 01 | | | | 05 00 A1 1C 30 1A 06 09 2A 86 48 86 F7 0D 01 | | |||
| | 01 08 30 0D 06 09 60 86 48 01 65 03 04 02 03 | | | | 01 08 30 0D 06 09 60 86 48 01 65 03 04 02 03 | | |||
| | 05 00 A2 03 02 01 40 | | | | 05 00 A2 03 02 01 40 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 29 | Name: RSASSA-PSS with SHAKE128 | | | 29 | Name: RSASSA-PSS with SHAKE128 | | |||
| | Identifiers: id-RSASSA-PSS-SHAKE128 | | ||||
| | OID: 1.3.6.1.5.5.7.6.30 | | | | OID: 1.3.6.1.5.5.7.6.30 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2B 06 01 05 05 07 06 1E | | | | DER: 30 0A 06 08 2B 06 01 05 05 07 06 1E | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 30 | Name: RSASSA-PSS with SHAKE256 | | | 30 | Name: RSASSA-PSS with SHAKE256 | | |||
| | Identifiers: id-RSASSA-PSS-SHAKE256 | | ||||
| | OID: 1.3.6.1.5.5.7.6.31 | | | | OID: 1.3.6.1.5.5.7.6.31 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0A 06 08 2B 06 01 05 05 07 06 1F | | | | DER: 30 0A 06 08 2B 06 01 05 05 07 06 1F | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 42 | Name: HSS / LMS | | | 42 | Name: HSS / LMS | | |||
| | Identifiers: id-alg-hss-lms-hashsig, id-alg-mts-hashsig | | ||||
| | OID: 1.2.840.113549.1.9.16.3.17 | | | | OID: 1.2.840.113549.1.9.16.3.17 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0D 06 0B 2A 86 48 86 F7 0D 01 09 10 03 11 | | | | DER: 30 0D 06 0B 2A 86 48 86 F7 0D 01 09 10 03 11 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 43 | Name: XMSS | | | 43 | Name: XMSS | | |||
| | Identifiers: id_alg_xmss | | ||||
| | OID: 0.4.0.127.0.15.1.1.13.0 | | | | OID: 0.4.0.127.0.15.1.1.13.0 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0D 00 | | | | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0D 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 44 | Name: XMSS^MT | | | 44 | Name: XMSS^MT | | |||
| | Identifiers: id_alg_xmssmt | | ||||
| | OID: 0.4.0.127.0.15.1.1.14.0 | | | | OID: 0.4.0.127.0.15.1.1.14.0 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0E 00 | | | | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0E 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
Figure 10: C509 Certificate Signature Algorithms | Figure 14: C509 Signature Algorithms | |||
8.8. C509 Certificate Public Key Algorithms Registry | 11.10. C509 Public Key Algorithms Registry | |||
IANA has created a new registry titled "C509 Certificate Public Key | IANA has created a new registry titled "C509 Public Key Algorithms" | |||
Algorithms" under the new heading "C509 Certificate". The columns of | under the new heading "CBOR Encoded X509 Certificates (C509 | |||
the registry are Value, Name, OID, Parameters, DER, Comments, and | Certificates)". The columns of the registry are Value, Name, | |||
Reference, where Value is an integer, and the other columns are text | Identifiers, OID, Parameters, DER, Comments, and Reference, where | |||
strings. For values in the interval [-24, 23] the registration | Value is an integer, and the other columns are text strings. For | |||
procedure is "IETF Review" and "Expert Review". For all other values | values in the interval [-24, 23] the registration procedure is "IETF | |||
the registration procedure is "Expert Review". T The initial | Review" and "Expert Review". For all other values the registration | |||
contents of the registry are: | procedure is "Expert Review". T The initial contents of the registry | |||
are: | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | X.509 Public Key Algorithms | | | Value | X.509 Public Key Algorithms | | |||
+=======+===========================================================+ | +=======+===========================================================+ | |||
| 0 | Name: RSA | | | 0 | Name: RSA | | |||
| | Identifiers: rsaEncryption | | ||||
| | OID: 1.2.840.113549.1.1.1 | | | | OID: 1.2.840.113549.1.1.1 | | |||
| | Parameters: NULL | | | | Parameters: NULL | | |||
| | DER: 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 | | | | DER: 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 | | |||
| | Comments: Compressed subjectPublicKey | | | | Comments: Compressed subjectPublicKey | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 1 | Name: EC Public Key (Weierstrass) with secp256r1 | | | 1 | Name: EC Public Key (Weierstrass) with secp256r1 | | |||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | | | OID: 1.2.840.10045.2.1 | | |||
| | Parameters: namedCurve = secp256r1 (1.2.840.10045.3.1.7) | | | | Parameters: namedCurve = secp256r1 (1.2.840.10045.3.1.7) | | |||
| | DER: 30 13 06 07 2A 86 48 CE 3D 02 01 06 08 2A 86 | | | | DER: 30 13 06 07 2A 86 48 CE 3D 02 01 06 08 2A 86 | | |||
| | 48 CE 3D 03 01 07 | | | | 48 CE 3D 03 01 07 | | |||
| | Comments: Point compressed subjectPublicKey | | | | Comments: Point compressed subjectPublicKey | | |||
| | Also known as P-256, ansip256r1, prime256v1 | | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 2 | Name: EC Public Key (Weierstrass) with secp384r1 | | | 2 | Name: EC Public Key (Weierstrass) with secp384r1 | | |||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | | | OID: 1.2.840.10045.2.1 | | |||
| | Parameters: namedCurve = secp384r1 (1.3.132.0.34) | | | | Parameters: namedCurve = secp384r1 (1.3.132.0.34) | | |||
| | DER: 30 10 06 07 2A 86 48 CE 3D 02 01 06 05 2B 81 | | | | DER: 30 10 06 07 2A 86 48 CE 3D 02 01 06 05 2B 81 | | |||
| | 04 00 22 | | | | 04 00 22 | | |||
| | Comments: Point compressed subjectPublicKey | | | | Comments: Point compressed subjectPublicKey | | |||
| | Also known as P-384, ansip384r1 | | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 3 | Name: EC Public Key (Weierstrass) with secp521r1 | | | 3 | Name: EC Public Key (Weierstrass) with secp521r1 | | |||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | | | OID: 1.2.840.10045.2.1 | | |||
| | Parameters: namedCurve = secp521r1 (1.3.132.0.35) | | | | Parameters: namedCurve = secp521r1 (1.3.132.0.35) | | |||
| | DER: 30 10 06 07 2A 86 48 CE 3D 02 01 06 05 2B 81 | | | | DER: 30 10 06 07 2A 86 48 CE 3D 02 01 06 05 2B 81 | | |||
| | 04 00 23 | | | | 04 00 23 | | |||
| | Comments: Point compressed subjectPublicKey | | | | Comments: Point compressed subjectPublicKey | | |||
| | Also known as P-521, ansip521r1 | | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 8 | Name: X25519 (Montgomery) | | | 8 | Name: X25519 (Montgomery) | | |||
| | Identifiers: id-X25519 | | ||||
| | OID: 1.3.101.110 | | | | OID: 1.3.101.110 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 05 06 03 2B 65 6E | | | | DER: 30 05 06 03 2B 65 6E | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 9 | Name: X448 (Montgomery) | | | 9 | Name: X448 (Montgomery) | | |||
| | Identifiers: id-X448 | | ||||
| | OID: 1.3.101.111 | | | | OID: 1.3.101.111 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 05 06 03 2B 65 6F | | | | DER: 30 05 06 03 2B 65 6F | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 10 | Name: Ed25519 (Twisted Edwards) | | | 10 | Name: Ed25519 (Twisted Edwards) | | |||
| | Identifiers: id-Ed25519, id-EdDSA25519 | | ||||
| | OID: 1.3.101.112 | | | | OID: 1.3.101.112 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 05 06 03 2B 65 70 | | | | DER: 30 05 06 03 2B 65 70 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 11 | Name: Ed448 (Edwards) | | | 11 | Name: Ed448 (Edwards) | | |||
| | Identifiers: id-Ed448, id-EdDSA448 | | ||||
| | OID: 1.3.101.113 | | | | OID: 1.3.101.113 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 05 06 03 2B 65 71 | | | | DER: 30 05 06 03 2B 65 71 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 16 | Name: HSS / LMS | | | 16 | Name: HSS / LMS | | |||
| | Identifiers: id-alg-hss-lms-hashsig, id-alg-mts-hashsig | | ||||
| | OID: 1.2.840.113549.1.9.16.3.17 | | | | OID: 1.2.840.113549.1.9.16.3.17 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0D 06 0B 2A 86 48 86 F7 0D 01 09 10 03 11 | | | | DER: 30 0D 06 0B 2A 86 48 86 F7 0D 01 09 10 03 11 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 17 | Name: XMSS | | | 17 | Name: XMSS | | |||
| | Identifiers: id_alg_xmss | | ||||
| | OID: 0.4.0.127.0.15.1.1.13.0 | | | | OID: 0.4.0.127.0.15.1.1.13.0 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0D 00 | | | | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0D 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 18 | Name: XMSS^MT | | | 18 | Name: XMSS^MT | | |||
| | Identifiers: id_alg_xmssmt | | ||||
| | OID: 0.4.0.127.0.15.1.1.14.0 | | | | OID: 0.4.0.127.0.15.1.1.14.0 | | |||
| | Parameters: Absent | | | | Parameters: Absent | | |||
| | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0E 00 | | | | DER: 30 0B 06 09 04 00 7F 00 0F 01 01 0E 00 | | |||
| | Comments: | | | | Comments: | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 24 | Name: EC Public Key (Weierstrass) with | | ||||
| | brainpoolP256r1 | | ||||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | ||||
| | Parameters: namedCurve = brainpoolP256r1 | | ||||
| | (1.3.36.3.3.2.8.1.1.7) | | ||||
| | DER: 30 13 06 07 2A 86 48 CE 3D 02 01 06 09 2B 24 | | ||||
| | 03 03 02 08 01 01 07 | | ||||
| | Comments: Point compressed subjectPublicKey | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 25 | Name: EC Public Key (Weierstrass) with | | ||||
| | brainpoolP384r1 | | ||||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | ||||
| | Parameters: namedCurve = brainpoolP384r1 | | ||||
| | (1.3.36.3.3.2.8.1.1.11) | | ||||
| | DER: 30 13 06 07 2A 86 48 CE 3D 02 01 06 09 2B 24 | | ||||
| | 03 03 02 08 01 01 0B | | ||||
| | Comments: Point compressed subjectPublicKey | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 26 | Name: EC Public Key (Weierstrass) with | | ||||
| | brainpoolP512r1 | | ||||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | ||||
| | Parameters: namedCurve = brainpoolP512r1 | | ||||
| | (1.3.36.3.3.2.8.1.1.13) | | ||||
| | DER: 30 13 06 07 2A 86 48 CE 3D 02 01 06 09 2B 24 | | ||||
| | 03 03 02 08 01 01 0D | | ||||
| | Comments: Point compressed subjectPublicKey | | ||||
+-------+-----------------------------------------------------------+ | ||||
| 27 | Name: EC Public Key (Weierstrass) with | | ||||
| | FRP256v1 | | ||||
| | Identifiers: ecPublicKey, id-ecPublicKey | | ||||
| | OID: 1.2.840.10045.2.1 | | ||||
| | Parameters: namedCurve = FRP256v1 | | ||||
| | (1.2.250.1.223.101.256.1) | | ||||
| | DER: 30 13 06 07 2A 86 48 CE 3D 02 01 06 0A 2A 81 | | ||||
| | 7A 01 81 5F 65 82 00 01 | | ||||
| | Comments: Point compressed subjectPublicKey | | ||||
+-------+-----------------------------------------------------------+ | ||||
Figure 11: C509 Certificate Public Key Algorithms | Figure 15: C509 Public Key Algorithms | |||
8.9. COSE Header Parameters Registry | 11.11. COSE Header Parameters Registry | |||
EDITORS NOTE: The text should be moved a section and not be in the | EDITORS NOTE: The text should be moved a section and not be in the | |||
IANA Section. | IANA Section. | |||
This document registers the following entries in the "COSE Header | This document registers the following entries in the "COSE Header | |||
Parameters" registry under the "CBOR Object Signing and Encryption | Parameters" registry under the "CBOR Object Signing and Encryption | |||
(COSE)" heading. The formatting and processing for c5b, c5c, and | (COSE)" heading. The formatting and processing for c5b, c5c, and | |||
c5t, and c5u are similar to x5bag, x5chain, x5t, x5u defined in | c5t, and c5u are similar to x5bag, x5chain, x5t, x5u defined in | |||
[I-D.ietf-cose-x509] except that the certificates are C509 instead of | [I-D.ietf-cose-x509] except that the certificates are C509 instead of | |||
DER encoded X.509 and uses a COSE_C509 structure instead of | DER encoded X.509 and uses a COSE_C509 structure instead of | |||
skipping to change at page 28, line 34 ¶ | skipping to change at page 42, line 27 ¶ | |||
| c5c | TBD2 | COSE_C509 | An ordered chain of C509 | | | c5c | TBD2 | COSE_C509 | An ordered chain of C509 | | |||
| | | | certificates | | | | | | certificates | | |||
+-----------+-------+----------------+------------------------------+ | +-----------+-------+----------------+------------------------------+ | |||
| c5t | TBD3 | COSE_CertHash | Hash of a C509Certificate | | | c5t | TBD3 | COSE_CertHash | Hash of a C509Certificate | | |||
+-----------+-------+----------------+------------------------------+ | +-----------+-------+----------------+------------------------------+ | |||
| c5u | TBD4 | uri | URI pointing to a COSE_C509 | | | c5u | TBD4 | uri | URI pointing to a COSE_C509 | | |||
| | | | containing a ordered chain | | | | | | containing a ordered chain | | |||
| | | | of certificates | | | | | | of certificates | | |||
+-----------+-------+----------------+------------------------------+ | +-----------+-------+----------------+------------------------------+ | |||
8.10. TLS Certificate Types Registry | 11.12. TLS Certificate Types Registry | |||
This document registers the following entry in the "TLS Certificate | This document registers the following entry in the "TLS Certificate | |||
Types" registry under the "Transport Layer Security (TLS) Extensions" | Types" registry under the "Transport Layer Security (TLS) Extensions" | |||
heading. The new certificate type can be used with additional TLS | heading. The new certificate type can be used with additional TLS | |||
certificate compression [RFC8879]. C509 is defined in the same way | certificate compression [RFC8879]. C509 is defined in the same way | |||
as as X509, but uses a different value and instead of DER-encoded | as as X509, but uses a different value and instead of DER-encoded | |||
X.509 certificate, opaque cert_data<1..2^24-1> contains a the CBOR | X.509 certificate, opaque cert_data<1..2^24-1> contains a the CBOR | |||
sequence ~C509Certificate (an unwrapped C509Certificate). | sequence ~C509Certificate (an unwrapped C509Certificate). | |||
EDITOR'S NOTE: The TLS registrations should be discussed and approved | EDITOR'S NOTE: The TLS registrations should be discussed and approved | |||
by the TLS WG at a later stage. When COSE WG has adopted work on | by the TLS WG at a later stage. When COSE WG has adopted work on | |||
C509 certificates, it could perhaps be presented in the TLS WG. The | C509 certificates, it could perhaps be presented in the TLS WG. The | |||
TLS WG might e.g. want a separate draft in the TLS WG. | TLS WG might e.g. want a separate draft in the TLS WG. | |||
+-------+------------------+-------------+--------------------------+ | +-------+------------------+-------------+--------------------------+ | |||
| Value | Name | Recommended | Comment | | | Value | Name | Recommended | Comment | | |||
+=======+==================+=============+==========================+ | +=======+==================+=============+==========================+ | |||
| TBD5 | C509 Certificate | Y | | | | TBD5 | C509 Certificate | Y | | | |||
+-------+------------------+-------------+--------------------------+ | +-------+------------------+-------------+--------------------------+ | |||
8.11. CBOR Tags Registry | 11.13. CBOR Tags Registry | |||
This document registers the following entries in the "CBOR Tags" | This document registers the following entries in the "CBOR Tags" | |||
registry under the "Concise Binary Object Representation (CBOR) Tags" | registry under the "Concise Binary Object Representation (CBOR) Tags" | |||
heading. | heading. | |||
+------+------------------------------------------------------------+ | +------+------------------------------------------------------------+ | |||
| Tag | X.509 Public Key Algorithms | | | Tag | X.509 Public Key Algorithms | | |||
+======+============================================================+ | +======+============================================================+ | |||
| TDB6 | Data Item: COSE_C509 | | | TDB6 | Data Item: COSE_C509 | | |||
| | Semantics: An ordered chain of C509 certificates | | | | Semantics: An ordered chain of C509 certificates | | |||
| | Reference: This document | | | | Reference: This document | | |||
+------+------------------------------------------------------------+ | +------+------------------------------------------------------------+ | |||
9. References | 12. References | |||
9.1. Normative References | 12.1. Normative References | |||
[I-D.ietf-cbor-tags-oid] | [I-D.ietf-cbor-tags-oid] | |||
Bormann, C., "Concise Binary Object Representation (CBOR) | Bormann, C., "Concise Binary Object Representation (CBOR) | |||
Tags for Object Identifiers", draft-ietf-cbor-tags-oid-06 | Tags for Object Identifiers", draft-ietf-cbor-tags-oid-06 | |||
(work in progress), March 2021. | (work in progress), March 2021. | |||
[I-D.ietf-cose-x509] | [I-D.ietf-cose-x509] | |||
Schaad, J., "CBOR Object Signing and Encryption (COSE): | Schaad, J., "CBOR Object Signing and Encryption (COSE): | |||
Header parameters for carrying and referencing X.509 | Header parameters for carrying and referencing X.509 | |||
certificates", draft-ietf-cose-x509-08 (work in progress), | certificates", draft-ietf-cose-x509-08 (work in progress), | |||
December 2020. | December 2020. | |||
[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>. | |||
[RFC2986] Nystrom, M. and B. Kaliski, "PKCS #10: Certification | ||||
Request Syntax Specification Version 1.7", RFC 2986, | ||||
DOI 10.17487/RFC2986, November 2000, | ||||
<https://www.rfc-editor.org/info/rfc2986>. | ||||
[RFC4108] Housley, R., "Using Cryptographic Message Syntax (CMS) to | [RFC4108] Housley, R., "Using Cryptographic Message Syntax (CMS) to | |||
Protect Firmware Packages", RFC 4108, | Protect Firmware Packages", RFC 4108, | |||
DOI 10.17487/RFC4108, August 2005, | DOI 10.17487/RFC4108, August 2005, | |||
<https://www.rfc-editor.org/info/rfc4108>. | <https://www.rfc-editor.org/info/rfc4108>. | |||
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | |||
<https://www.rfc-editor.org/info/rfc5280>. | <https://www.rfc-editor.org/info/rfc5280>. | |||
skipping to change at page 30, line 38 ¶ | skipping to change at page 44, line 38 ¶ | |||
[RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object | [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object | |||
Representation (CBOR)", STD 94, RFC 8949, | Representation (CBOR)", STD 94, RFC 8949, | |||
DOI 10.17487/RFC8949, December 2020, | DOI 10.17487/RFC8949, December 2020, | |||
<https://www.rfc-editor.org/info/rfc8949>. | <https://www.rfc-editor.org/info/rfc8949>. | |||
[SECG] "Elliptic Curve Cryptography, Standards for Efficient | [SECG] "Elliptic Curve Cryptography, Standards for Efficient | |||
Cryptography Group, ver. 2", 2009, | Cryptography Group, ver. 2", 2009, | |||
<https://secg.org/sec1-v2.pdf>. | <https://secg.org/sec1-v2.pdf>. | |||
9.2. Informative References | 12.2. Informative References | |||
[CAB-Baseline] | [CAB-Code] | |||
CA/Browser Forum, ., "CA/Browser Forum, "Baseline | CA/Browser Forum, ., "CA/Browser Forum, "Baseline | |||
Requirements for the Issuance and Management of Publicly- | Requirements for the Issuance and Management of Publicly- | |||
Trusted Certificates Version 1.7.3", October 2020, | Trusted Code Signing Certificates Version 2.3"", May 2021, | |||
<https://cabforum.org/baseline-requirements-code- | ||||
signing/>. | ||||
[CAB-TLS] CA/Browser Forum, ., "CA/Browser Forum, "Baseline | ||||
Requirements for the Issuance and Management of Publicly- | ||||
Trusted Certificates Version 1.7.6"", June 2021, | ||||
<https://cabforum.org/baseline-requirements-documents/>. | <https://cabforum.org/baseline-requirements-documents/>. | |||
[CborMe] Bormann, C., "CBOR Playground", May 2018, | [CborMe] Bormann, C., "CBOR Playground", May 2018, | |||
<http://cbor.me/>. | <http://cbor.me/>. | |||
[GSMA-eUICC] | ||||
GSMA, ., "GSMA eUICC PKI Certificate Policy Version 2.1", | ||||
February 2021, <https://www.gsma.com/esim/wp- | ||||
content/uploads/2021/02/SGP.14-v2.1.pdf>. | ||||
[I-D.ietf-emu-eap-tls13] | [I-D.ietf-emu-eap-tls13] | |||
Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3", | Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3 | |||
draft-ietf-emu-eap-tls13-15 (work in progress), May 2021. | (EAP-TLS 1.3)", draft-ietf-emu-eap-tls13-18 (work in | |||
progress), July 2021. | ||||
[I-D.ietf-emu-eaptlscert] | [I-D.ietf-emu-eaptlscert] | |||
Sethi, M., Mattsson, J., and S. Turner, "Handling Large | Sethi, M., Mattsson, J., and S. Turner, "Handling Large | |||
Certificates and Long Certificate Chains in TLS-based EAP | Certificates and Long Certificate Chains in TLS-based EAP | |||
Methods", draft-ietf-emu-eaptlscert-08 (work in progress), | Methods", draft-ietf-emu-eaptlscert-08 (work in progress), | |||
November 2020. | November 2020. | |||
[I-D.ietf-lake-edhoc] | [I-D.ietf-lake-edhoc] | |||
Selander, G., Mattsson, J. P., and F. Palombini, | Selander, G., Mattsson, J. P., and F. Palombini, | |||
"Ephemeral Diffie-Hellman Over COSE (EDHOC)", draft-ietf- | "Ephemeral Diffie-Hellman Over COSE (EDHOC)", draft-ietf- | |||
lake-edhoc-06 (work in progress), April 2021. | lake-edhoc-06 (work in progress), April 2021. | |||
[I-D.ietf-quic-transport] | ||||
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed | ||||
and Secure Transport", draft-ietf-quic-transport-34 (work | ||||
in progress), January 2021. | ||||
[I-D.ietf-tls-ctls] | [I-D.ietf-tls-ctls] | |||
Rescorla, E., Barnes, R., and H. Tschofenig, "Compact TLS | Rescorla, E., Barnes, R., and H. Tschofenig, "Compact TLS | |||
1.3", draft-ietf-tls-ctls-01 (work in progress), November | 1.3", draft-ietf-tls-ctls-01 (work in progress), November | |||
2020. | 2020. | |||
[I-D.ietf-tls-dtls13] | [I-D.ietf-tls-dtls13] | |||
Rescorla, E., Tschofenig, H., and N. Modadugu, "The | Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
Datagram Transport Layer Security (DTLS) Protocol Version | Datagram Transport Layer Security (DTLS) Protocol Version | |||
1.3", draft-ietf-tls-dtls13-43 (work in progress), April | 1.3", draft-ietf-tls-dtls13-43 (work in progress), April | |||
2021. | 2021. | |||
skipping to change at page 31, line 44 ¶ | skipping to change at page 46, line 5 ¶ | |||
the Internet of Things", draft-ietf-uta-tls13-iot- | the Internet of Things", draft-ietf-uta-tls13-iot- | |||
profile-01 (work in progress), February 2021. | profile-01 (work in progress), February 2021. | |||
[IEEE-802.1AR] | [IEEE-802.1AR] | |||
Institute of Electrical and Electronics Engineers, ., | Institute of Electrical and Electronics Engineers, ., | |||
"IEEE Standard for Local and metropolitan area networks- | "IEEE Standard for Local and metropolitan area networks- | |||
Secure Device Identity", IEEE Standard 802.1AR-2018 , | Secure Device Identity", IEEE Standard 802.1AR-2018 , | |||
August 2018, | August 2018, | |||
<https://standards.ieee.org/standard/802_1AR-2018.html>. | <https://standards.ieee.org/standard/802_1AR-2018.html>. | |||
[RFC6487] Huston, G., Michaelson, G., and R. Loomans, "A Profile for | ||||
X.509 PKIX Resource Certificates", RFC 6487, | ||||
DOI 10.17487/RFC6487, February 2012, | ||||
<https://www.rfc-editor.org/info/rfc6487>. | ||||
[RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | |||
Constrained-Node Networks", RFC 7228, | Constrained-Node Networks", RFC 7228, | |||
DOI 10.17487/RFC7228, May 2014, | DOI 10.17487/RFC7228, May 2014, | |||
<https://www.rfc-editor.org/info/rfc7228>. | <https://www.rfc-editor.org/info/rfc7228>. | |||
[RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer | [RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer | |||
Security (TLS) / Datagram Transport Layer Security (DTLS) | Security (TLS) / Datagram Transport Layer Security (DTLS) | |||
Profiles for the Internet of Things", RFC 7925, | Profiles for the Internet of Things", RFC 7925, | |||
DOI 10.17487/RFC7925, July 2016, | DOI 10.17487/RFC7925, July 2016, | |||
<https://www.rfc-editor.org/info/rfc7925>. | <https://www.rfc-editor.org/info/rfc7925>. | |||
skipping to change at page 32, line 29 ¶ | skipping to change at page 46, line 39 ¶ | |||
[RFC8603] Jenkins, M. and L. Zieglar, "Commercial National Security | [RFC8603] Jenkins, M. and L. Zieglar, "Commercial National Security | |||
Algorithm (CNSA) Suite Certificate and Certificate | Algorithm (CNSA) Suite Certificate and Certificate | |||
Revocation List (CRL) Profile", RFC 8603, | Revocation List (CRL) Profile", RFC 8603, | |||
DOI 10.17487/RFC8603, May 2019, | DOI 10.17487/RFC8603, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8603>. | <https://www.rfc-editor.org/info/rfc8603>. | |||
[RFC8879] Ghedini, A. and V. Vasiliev, "TLS Certificate | [RFC8879] Ghedini, A. and V. Vasiliev, "TLS Certificate | |||
Compression", RFC 8879, DOI 10.17487/RFC8879, December | Compression", RFC 8879, DOI 10.17487/RFC8879, December | |||
2020, <https://www.rfc-editor.org/info/rfc8879>. | 2020, <https://www.rfc-editor.org/info/rfc8879>. | |||
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based | ||||
Multiplexed and Secure Transport", RFC 9000, | ||||
DOI 10.17487/RFC9000, May 2021, | ||||
<https://www.rfc-editor.org/info/rfc9000>. | ||||
[X.509-IoT] | [X.509-IoT] | |||
Forsby, F., Furuhed, M., Papadimitratos, P., and S. Raza, | Forsby, F., Furuhed, M., Papadimitratos, P., and S. Raza, | |||
"Lightweight X.509 Digital Certificates for the Internet | "Lightweight X.509 Digital Certificates for the Internet | |||
of Things.", Springer, Cham. Lecture Notes of the | of Things.", Springer, Cham. Lecture Notes of the | |||
Institute for Computer Sciences, Social Informatics and | Institute for Computer Sciences, Social Informatics and | |||
Telecommunications Engineering, vol 242., July 2018, | Telecommunications Engineering, vol 242., July 2018, | |||
<https://doi.org/10.1007/978-3-319-93797-7_14>. | <https://doi.org/10.1007/978-3-319-93797-7_14>. | |||
Appendix A. Example C509 Certificates | Appendix A. Example C509 Certificates | |||
skipping to change at page 34, line 25 ¶ | skipping to change at page 48, line 40 ¶ | |||
1577836800, | 1577836800, | |||
1612224000, | 1612224000, | |||
h'0123456789AB', | h'0123456789AB', | |||
1, | 1, | |||
h'02B1216AB96E5B3B3340F5BDF02E693F16213A04525ED44450 | h'02B1216AB96E5B3B3340F5BDF02E693F16213A04525ED44450 | |||
B1019C2DFD3838AB', | B1019C2DFD3838AB', | |||
1, | 1, | |||
0, | 0, | |||
h'445D798C90E7F500DC747A654CEC6CFA6F037276E14E52ED07 | h'445D798C90E7F500DC747A654CEC6CFA6F037276E14E52ED07 | |||
FC16294C84660D5A33985DFBD4BFDD6D4ACF3804C3D46EBF3B | FC16294C84660D5A33985DFBD4BFDD6D4ACF3804C3D46EBF3B | |||
7FA62640674FC0354FA056DBAEA6 | 7FA62640674FC0354FA056DBAEA6' | |||
The size of the CBOR encoding (CBOR sequence) is 138 bytes. | The size of the CBOR encoding (CBOR sequence) is 138 bytes. | |||
01 | 01 | |||
43 01 F5 0D | 43 01 F5 0D | |||
6B 52 46 43 20 74 65 73 74 20 43 41 | 6B 52 46 43 20 74 65 73 74 20 43 41 | |||
1A 5E 0B E1 00 | 1A 5E 0B E1 00 | |||
1A 60 18 96 00 | 1A 60 18 96 00 | |||
46 01 23 45 67 89 AB | 46 01 23 45 67 89 AB | |||
01 | 01 | |||
skipping to change at page 35, line 17 ¶ | skipping to change at page 49, line 38 ¶ | |||
0, | 0, | |||
h'01f50d', | h'01f50d', | |||
"RFC test CA", | "RFC test CA", | |||
1577836800, | 1577836800, | |||
1612224000, | 1612224000, | |||
h'0123456789AB', | h'0123456789AB', | |||
1, | 1, | |||
h'02B1216AB96E5B3B3340F5BDF02E693F16213A04525ED44450 | h'02B1216AB96E5B3B3340F5BDF02E693F16213A04525ED44450 | |||
B1019C2DFD3838AB', | B1019C2DFD3838AB', | |||
1, | 1, | |||
6, | 0, | |||
h'B27A0B781455F71B68290F6C2EC9A897F18FDE9B6C59575953 | h'B27A0B781455F71B68290F6C2EC9A897F18FDE9B6C59575953 | |||
BC67268AB0E4DDE99D273E04E4715383AB2257C6AAA35284E5 | BC67268AB0E4DDE99D273E04E4715383AB2257C6AAA35284E5 | |||
ED18BDB91247E9F2C433136480B9' | ED18BDB91247E9F2C433136480B9' | |||
The size of the CBOR encoding (CBOR sequence) is 138 bytes. | The size of the CBOR encoding (CBOR sequence) is 138 bytes. | |||
00 | 00 | |||
43 01 F5 0D | 43 01 F5 0D | |||
6B 52 46 43 20 74 65 73 74 20 43 41 | 6B 52 46 43 20 74 65 73 74 20 43 41 | |||
1A 5E 0B E1 00 | 1A 5E 0B E1 00 | |||
skipping to change at page 38, line 26 ¶ | skipping to change at page 53, line 26 ¶ | |||
[ | [ | |||
-4, "US", | -4, "US", | |||
-6, "CA", | -6, "CA", | |||
-5, "San Francisco", | -5, "San Francisco", | |||
-8, "Cloudflare, Inc.", | -8, "Cloudflare, Inc.", | |||
-1, "sni.cloudflaressl.com" | -1, "sni.cloudflaressl.com" | |||
], | ], | |||
1, | 1, | |||
h'03963ECDD84DCD1B93A1CF432D1A7217D6C63BDE3355A02F8CFB5AD8994CD44E20', | h'03963ECDD84DCD1B93A1CF432D1A7217D6C63BDE3355A02F8CFB5AD8994CD44E20', | |||
[ | [ | |||
7, h'A5CE37EAEBB0750E946788B445FAD9241087961F', | 7, h'A5CE37EAEBB0750E946788B445FAD9241087961F', | |||
1, h'CC0B50E7D837DBF243F3853D4860F53B39BE9B2A', | 1, h'CC0B50E7D837DBF243F3853D4860F53B39BE9B2A', | |||
3, [2, "sni.cloudflaressl.com", 2, "www.ietf.org"], | 3, [2, "sni.cloudflaressl.com", 2, "www.ietf.org"], | |||
-2, 1, | -2, 1, | |||
8, [1, 2], | 8, [1, 2], | |||
5, ["http://crl3.digicert.com/CloudflareIncECCCA-3.crl", | 5, ["http://crl3.digicert.com/CloudflareIncECCCA-3.crl", | |||
"http://crl4.digicert.com/CloudflareIncECCCA-3.crl"], | "http://crl4.digicert.com/CloudflareIncECCCA-3.crl"], | |||
6, [h'6086480186FD6C0101', "https://www.digicert.com/CPS", 2], | 6, [h'6086480186FD6C0101', [1, "https://www.digicert.com/CPS"], 2], | |||
9, [1, "http://ocsp.digicert.com", | 9, [1, "http://ocsp.digicert.com", | |||
2, "http://cacerts.digicert.com/CloudflareIncECCCA-3.crt"], | 2, "http://cacerts.digicert.com/CloudflareIncECCCA-3.crt"], | |||
-4, -2, | -4, -2, | |||
10, [ | 10, [ | |||
h'F65C942FD1773022145418083094568EE34D131933BFDF0C2F200BCC4EF164E3', | h'F65C942FD1773022145418083094568EE34D131933BFDF0C2F200BCC4EF164E3', | |||
77922190, | 77922190, | |||
0, | 0, | |||
h'F8D1B4A93D2F0D4C4176DFB488BCC73B86443D7DE00E6AC8174D8948A8843668 | h'F8D1B4A93D2F0D4C4176DFB488BCC73B86443D7DE00E6AC8174D8948A8843668 | |||
29FF5A34068A240C69502788E8EE25AB7ED2CBCF686ECE7B5F96B431A90702FA', | 29FF5A34068A240C69502788E8EE25AB7ED2CBCF686ECE7B5F96B431A90702FA', | |||
h'5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA', | h'5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA', | |||
77922238, | 77922238, | |||
0, | 0, | |||
h'E891C197BFB0E3D30CB6CEE60D94C3C75FD1175336931108D89812D4D29D81D0 | h'E891C197BFB0E3D30CB6CEE60D94C3C75FD1175336931108D89812D4D29D81D0 | |||
A159D16C4647D1483757FCD6CE4E75EC7B5EF657EFE028F8E5CC4792682DAC43' | A159D16C4647D1483757FCD6CE4E75EC7B5EF657EFE028F8E5CC4792682DAC43' | |||
] | ] | |||
], | ], | |||
0, | 0, | |||
h'BD63CF4F7E5CFE6C29385EA71CFBFC1E3F7B1CD07251A221F77769C0F471DFEA | h'BD63CF4F7E5CFE6C29385EA71CFBFC1E3F7B1CD07251A221F77769C0F471DFEA | |||
B5C06CC45854FA30B28288B1D3BB9A6661ED5031725B1A8202E0DA5B59F95402' | B5C06CC45854FA30B28288B1D3BB9A6661ED5031725B1A8202E0DA5B59F95402' | |||
The size of the CBOR encoding (CBOR sequence) is 781 bytes. | The size of the CBOR encoding (CBOR sequence) is 783 bytes. | |||
A.4. Example CAB Baseline RSA HTTPS X.509 Certificate | A.4. Example CAB Baseline RSA HTTPS X.509 Certificate | |||
The tools.ietf.org HTTPS server replies with a certificate message | The tools.ietf.org HTTPS server replies with a certificate message | |||
with 4 certificates. The DER encoding of the first certificate is | with 4 certificates. The DER encoding of the first certificate is | |||
1647 bytes. | 1647 bytes. | |||
30 82 06 6b 30 82 05 53 a0 03 02 01 02 02 09 00 a6 a5 5c 87 0e 39 b4 | 30 82 06 6b 30 82 05 53 a0 03 02 01 02 02 09 00 a6 a5 5c 87 0e 39 b4 | |||
0e 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 81 c6 31 0b 30 09 | 0e 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 81 c6 31 0b 30 09 | |||
06 03 55 04 06 13 02 55 53 31 10 30 0e 06 03 55 04 08 13 07 41 72 69 | 06 03 55 04 06 13 02 55 53 31 10 30 0e 06 03 55 04 08 13 07 41 72 69 | |||
skipping to change at page 41, line 22 ¶ | skipping to change at page 56, line 22 ¶ | |||
0, | 0, | |||
h'B1E137E8EB82D689FADBF5C24B77F02C4ADE726E3E1360D1A8661EC4AD3D3260 | h'B1E137E8EB82D689FADBF5C24B77F02C4ADE726E3E1360D1A8661EC4AD3D3260 | |||
E5F099B5F47A7A485521EE0E3912F9CE0DCAF56961C704ED6E0F1D3B1E508879 | E5F099B5F47A7A485521EE0E3912F9CE0DCAF56961C704ED6E0F1D3B1E508879 | |||
3A0E314116F1B1026468A5CDF54A0ACA99963508C37E275DD0A9CFF3E728AF37 | 3A0E314116F1B1026468A5CDF54A0ACA99963508C37E275DD0A9CFF3E728AF37 | |||
D8B67BDDF37EAE6E977FF7CA694ECCD006DF5D279B3B12E7E6FE086B527B8211 | D8B67BDDF37EAE6E977FF7CA694ECCD006DF5D279B3B12E7E6FE086B527B8211 | |||
7C72B346EBC1E878B80FCBE1EBBD064458DC8350B2A0625BDC81B836E39E7C79 | 7C72B346EBC1E878B80FCBE1EBBD064458DC8350B2A0625BDC81B836E39E7C79 | |||
B2A9538AE00BC94A2A13393113BD2CCFA870CF8C8D3D01A388AE1200361D1E24 | B2A9538AE00BC94A2A13393113BD2CCFA870CF8C8D3D01A388AE1200361D1E24 | |||
2BDD79D8530126ED284FC98694834EC8E1142E85B3AFD46EDD6946AF41250E7A | 2BDD79D8530126ED284FC98694834EC8E1142E85B3AFD46EDD6946AF41250E7A | |||
AD8BF292CA79D97B324FF777E8F9B44F235CD45C03AED8AB3ACA135F5D5D5DA1', | AD8BF292CA79D97B324FF777E8F9B44F235CD45C03AED8AB3ACA135F5D5D5DA1', | |||
[ | [ | |||
-4, -2, | -4, -2, | |||
8, [ 1, 2 ], | 8, [ 1, 2 ], | |||
-2, 5, | -2, 5, | |||
5, "http://crl.starfieldtech.com/sfig2s1-242.crl", | 5, ["http://crl.starfieldtech.com/sfig2s1-242.crl"], | |||
6, [ h'6086480186fd6e01071701', | 6, [ h'6086480186fd6e01071701', | |||
"http://certificates.starfieldtech.com/repository/", 1 ], | [1, "http://certificates.starfieldtech.com/repository/"], 1 ], | |||
9, [ 1, "http://ocsp.starfieldtech.com/", | 9, [ 1, "http://ocsp.starfieldtech.com/", | |||
2, "http://certificates.starfieldtech.com/repository/sfig2.crt" ], | 2, "http://certificates.starfieldtech.com/repository/sfig2.crt" ], | |||
7, h'254581685026383D3B2D2CBECD6AD9B63DB36663', | 7, h'254581685026383D3B2D2CBECD6AD9B63DB36663', | |||
3, [ 2, "*.tools.ietf.org", 2, "tools.ietf.org" ], | 3, [ 2, "*.tools.ietf.org", 2, "tools.ietf.org" ], | |||
1, h'AD8AB41C0751D7928907B0B784622F36557A5F4D', | 1, h'AD8AB41C0751D7928907B0B784622F36557A5F4D', | |||
10, [ | 10, [ | |||
h'F65C942FD1773022145418083094568EE34D131933BFDF0C2F200BCC4EF164E3', | h'F65C942FD1773022145418083094568EE34D131933BFDF0C2F200BCC4EF164E3', | |||
1715, | 1715, | |||
0, | 0, | |||
h'8CF54852CE5635433911CF10CDB91F52B33639223AD138A41DECA6FEDE1FE90F | h'8CF54852CE5635433911CF10CDB91F52B33639223AD138A41DECA6FEDE1FE90F | |||
BCA2254366C19A2691C47A00B5B653ABBD44C2F8BAAEF4D2DAF2527CE6454995', | BCA2254366C19A2691C47A00B5B653ABBD44C2F8BAAEF4D2DAF2527CE6454995', | |||
h'5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA', | h'5CDC4392FEE6AB4544B15E9AD456E61037FBD5FA47DCA17394B25EE6F6C70ECA', | |||
2012, | 2012, | |||
0, | 0, | |||
h'A5E0906E63E91D4FDDEFFF0352B91E50896007564B448A3828F596DC6B28726D | h'A5E0906E63E91D4FDDEFFF0352B91E50896007564B448A3828F596DC6B28726D | |||
FC91EAED02168866054EE18A2E5346C4CC51FEB3FA10A91D2EDBF99125F86CE6' | FC91EAED02168866054EE18A2E5346C4CC51FEB3FA10A91D2EDBF99125F86CE6' | |||
] | ] | |||
], | ], | |||
23, | 23, | |||
h'14043FA0BED2EE3FA86E3A1F788EA04C35530F11061FFF60A16D0B83E9D92ADB | h'14043FA0BED2EE3FA86E3A1F788EA04C35530F11061FFF60A16D0B83E9D92ADB | |||
B33F9DB3D7E0594C19A8E419A50CA770727763D5FE64510AD27AD650A58A9238 | B33F9DB3D7E0594C19A8E419A50CA770727763D5FE64510AD27AD650A58A9238 | |||
ECCB2F0F5AC064584D5C06B9736368278B8934DC79C71D3AFD345F8314415849 | ECCB2F0F5AC064584D5C06B9736368278B8934DC79C71D3AFD345F8314415849 | |||
80682980398A867269CC7937CEE397F7DCF39588ED81032900D2A2C7BAABD63A | 80682980398A867269CC7937CEE397F7DCF39588ED81032900D2A2C7BAABD63A | |||
8ECA090BD9FB39264BFF03D88E2D3F6B21CA8A7DD85FFB94BA83DE9CFC158D61 | 8ECA090BD9FB39264BFF03D88E2D3F6B21CA8A7DD85FFB94BA83DE9CFC158D61 | |||
FA672DB0C7DB3D250A414A85D37F4946373CF4B175D052F3DDC766F14BFDAA00 | FA672DB0C7DB3D250A414A85D37F4946373CF4B175D052F3DDC766F14BFDAA00 | |||
EDBFE47EED01EC7BE4F646FC31FD72FE03D2F265AF4D7EE2819B7AFD303CF552 | EDBFE47EED01EC7BE4F646FC31FD72FE03D2F265AF4D7EE2819B7AFD303CF552 | |||
F40534A08A3E194158C8A8E05171840915AEECA57775FA18F7D577D531CCC72D' | F40534A08A3E194158C8A8E05171840915AEECA57775FA18F7D577D531CCC72D' | |||
The size of the CBOR encoding (CBOR sequence) is 1242 bytes. | The size of the CBOR encoding (CBOR sequence) is 1245 bytes. | |||
Acknowledgments | Acknowledgments | |||
The authors want to thank Henk Birkholz, Carsten Bormann, Russ | The authors want to thank Henk Birkholz, Carsten Bormann, Russ | |||
Housley, Olle Johansson, Benjamin Kaduk, Ilari Liusvaara, Laurence | Housley, Olle Johansson, Benjamin Kaduk, Ilari Liusvaara, Laurence | |||
Lundblade, Thomas Peterson, Michael Richardson, Stefan Santesson, Jim | Lundblade, Francesca Palombinini, Thomas Peterson, Michael | |||
Schaad, Fraser Tweedale, and Rene Struik for reviewing and commenting | Richardson, Maik Reichert, Stefan Santesson, Jim Schaad, Fraser | |||
on intermediate versions of the draft. | Tweedale, and Rene Struik for reviewing and commenting on | |||
intermediate versions of the draft and helping with GitHub. | ||||
Authors' Addresses | Authors' Addresses | |||
John Preuss Mattsson | ||||
Ericsson AB | ||||
Email: john.mattsson@ericsson.com | ||||
Goeran Selander | ||||
Ericsson AB | ||||
Email: goran.selander@ericsson.com | ||||
Shahid Raza | Shahid Raza | |||
RISE AB | RISE AB | |||
Email: shahid.raza@ri.se | Email: shahid.raza@ri.se | |||
Joel Hoeglund | Joel Hoeglund | |||
RISE AB | RISE AB | |||
Email: joel.hoglund@ri.se | Email: joel.hoglund@ri.se | |||
Goeran Selander | ||||
Ericsson AB | ||||
Email: goran.selander@ericsson.com | ||||
John Preuss Mattsson | ||||
Ericsson AB | ||||
Email: john.mattsson@ericsson.com | ||||
Martin Furuhed | Martin Furuhed | |||
Nexus Group | Nexus Group | |||
Email: martin.furuhed@nexusgroup.com | Email: martin.furuhed@nexusgroup.com | |||
End of changes. 196 change blocks. | ||||
504 lines changed or deleted | 1134 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/ |