<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.11 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5280 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC7049 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7049.xml">
<!ENTITY RFC7925 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8610 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml">
<!ENTITY I-D.ietf-cbor-sequence SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cbor-sequence.xml">
<!ENTITY RFC7228 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY RFC8446 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
<!ENTITY RFC8613 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
<!ENTITY I-D.ietf-tls-dtls13 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-dtls13.xml">
<!ENTITY I-D.selander-ace-cose-ecdhe SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.selander-ace-cose-ecdhe.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc tocdepth="2"?>

<rfc ipr="trust200902" docName="draft-raza-ace-cbor-certificates-04" category="std">

  <front>
    <title>CBOR Profile of X.509 Certificates</title>

    <author initials="S." surname="Raza" fullname="Shahid Raza">
      <organization>RISE AB</organization>
      <address>
        <email>shahid.raza@ri.se</email>
      </address>
    </author>
    <author initials="J." surname="Höglund" fullname="Joel Höglund">
      <organization>RISE AB</organization>
      <address>
        <email>joel.hoglund@ri.se</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson AB</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Furuhed" fullname="Martin Furuhed">
      <organization>Nexus Group</organization>
      <address>
        <email>martin.furuhed@nexusgroup.com</email>
      </address>
    </author>

    <date year="2020" month="March" day="09"/>

    
    <workgroup>ACE Working Group</workgroup>
    

    <abstract>


<t>This document specifies a CBOR encoding and profiling of X.509 public key certificate suitable for Internet of Things (IoT) deployments. The full X.509 public key certificate format and commonly used ASN.1 DER encoding is overly verbose for constrained IoT environments. Profiling together with CBOR encoding reduces the certificate size significantly with associated known performance benefits.</t>

<t>The CBOR certificates are compatible with the existing X.509 standard, enabling the use of profiled and compressed X.509 certificates without modifications in the existing X.509 standard.</t>



    </abstract>


  </front>

  <middle>


<section anchor="intro" title="Introduction">

<t>One of the challenges with deploying a Public Key Infrastructure (PKI) for the Internet of Things (IoT) is the size and encoding of X.509 public key certificates <xref target="RFC5280"/>, since those are not optimized for constrained environments <xref target="RFC7228"/>. More compact certificate representations are desirable. Due to the current PKI usage of X.509 certificates, keeping X.509 compatibility is necessary at least for a transition period. However, the use of a more compact encoding with the Concise Binary Object Representation (CBOR) <xref target="RFC7049"/> reduces the certificate size significantly which has known performance benefits in terms of decreased communication overhead, power consumption, latency, storage, etc.</t>

<t>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. encoding binary data directly without base64 conversion. In addition to the binary CBOR encoding, CBOR also has a diagnostic notation that is readable and editable by humans. The Concise Data Definition Language (CDDL) <xref target="RFC8610"/> provides a way to express structures for protocol messages and APIs that use CBOR. <xref target="RFC8610"/> also extends the diagnostic notation.</t>

<t>CBOR data items are encoded to or decoded from byte strings using a type-length-value encoding scheme, where the three highest order bits of the initial byte contain information about the major type. CBOR supports several different types of data items, in addition to integers (int, uint), simple values (e.g. null), byte strings (bstr), and text strings (tstr), CBOR also supports arrays [] of data items, maps {} of pairs of data items, and sequences of data items. For a complete specification and examples, see <xref target="RFC7049"/>, <xref target="RFC8610"/>, and  <xref target="I-D.ietf-cbor-sequence"/>.</t>

<t>This document specifies the CBOR certificate profile, which is a CBOR based encoding and compression of the X.509 certificate format. The profile is based on previous work on profiling of X.509 certificates for Internet of Things deployments <xref target="RFC7925"/> <xref target="X.509-IoT"/> which retains backwards compatibility with X.509, and can be applied for lightweight certificate based authentication with e.g. TLS <xref target="RFC8446"/>, DTLS <xref target="I-D.ietf-tls-dtls13"/>, or EDHOC <xref target="I-D.selander-ace-cose-ecdhe"/>. The same profile can be used for “native” CBOR encoded certificates, which further optimizes the performance in constrained environments but are not backwards compatible with X.509, see <xref target="native-CBOR"/>.</t>

<t>Other work has looked at reducing size of X.509 certificates. The purpose of this document is to stimulate a discussion on CBOR based certificates.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

<t>This specification makes use of the terminology in <xref target="RFC7228"/>.</t>

</section>
<section anchor="encoding" title="CBOR Encoding">

<t>This section specifies the content and encoding for CBOR certificates. The CBOR certificate can be a native CBOR certificate, in which case the signature is calculated on the CBOR encoded data, or a CBOR compressed X.509 certificates in which case the signature is calculated on the DER encoded ASN.1 data in the X.509 certificate. In both cases the certificate content is adhering to the restrictions given by <xref target="RFC7925"/>. The corresponding ASN.1 schema is given in <xref target="appA"/>.</t>

<t>The encoding and compression has several components including: ASN.1 DER and base64 encoding are replaced with CBOR encoding, static fields are elided, and elliptic curve points are compressed. The X.509 fields and there CBOR encodings are listed below. Combining these different components reduces the certificate size significantly, something that is not possible with general purpose compressions algorithms, see <xref target="fig-table"/>.</t>

<t>CBOR certificates are defined in terms of RFC 7925 profiled X.509 certificates:</t>

<t><list style="symbols">
  <t>version. The ‘version’ field is known (fixed to v3), and is omitted in the CBOR encoding.</t>
  <t>serialNumber. The ‘serialNumber’ field is encoded as a CBOR byte string.</t>
  <t>signature. The ‘signature’ field is always the same as the ‘signatureAlgorithm’ field and always omitted from the CBOR encoding.</t>
  <t>issuer. In the general case, the Distinguished Name is encoded as CBOR map, but if only CN is present the value can be encoded as a single text value.</t>
  <t>validity. The ‘notBefore’ and ‘notAfter’ UTCTime fields are encoded as as UnixTime in unsigned integer format.</t>
  <t>subject. The ‘subject’ field is restricted to specifying the value of the common name. By RFC 7925 an IoT subject is identified by either an EUI-64 for clients, or by a FQDN for servers. An EUI-64 mapped from a 48-bit MAC address is encoded as a CBOR byte string of length 6. Other EUI-64 is ncoded as a CBOR byte string of length 8. A FQDN is encoded as a CBOR text string.</t>
  <t>subjectPublicKeyInfo. If the ‘algorithm’ field is the default (id-ecPublicKey and prime256v1), it is omitted in the CBOR encoding., otherwise it is included in the subjectPublicKeyInfo_algorithm field encoded as a int, (see <xref target="iana"/>). The ‘subjectPublicKey’ is encoded as as a CBOR byte string. Public keys of type id-ecPublicKey are point compressed as defined in Section 2.3.3 of <xref target="SECG"/>.</t>
  <t>extensions. The ‘extensions’ field is encoded as a CBOR array where each extension is represented with an int. The extensions mandated to be supported by RFC 7925 is encodeded as specified below, where a critical extensions are encoded with a negative sign.  <vspace blankLines='1'/>
I.e. non-critical keyUsage keyAgreement is encoded as 5, critical basicConstraints cA is encodes as -3, and non-criticical extKeyUsage id-kp-codeSigning + id-kp-OCSPSigning is encoded as 22.  <vspace blankLines='1'/>
If subjectAltName is present, the value is placed at the end of the array encoded as a byte or text string following the encoding rules for the subject field. If the array contains a single int, extensions is encoded as the int instead of an array.</t>
</list></t>

<figure><artwork><![CDATA[
   subjectAltName = 1
]]></artwork></figure>
<figure><artwork><![CDATA[
   basicConstraints = 2 + cA
]]></artwork></figure>
<figure><artwork><![CDATA[
   keyUsage = 3 + digitalSignature
            + 2 * keyAgreement + 4 * keyCertSign
]]></artwork></figure>
<figure><artwork><![CDATA[
   extKeyUsage = 10 + id-kp-serverAuth + 2 * id-kp-clientAuth
               + 4 * id-kp-codeSigning + 8 * id-kp-OCSPSigning
]]></artwork></figure>

<t><list style="symbols">
  <t>signatureAlgorithm. If the ‘signatureAlgorithm’ field is the default (ecdsa-with-SHA256) it is omitted in the CBOR encoding, otherwise it is included in the signatureAlgorithm field encoded as an CBOR int (see <xref target="iana"/>).</t>
  <t>signatureValue. Since the signature algorithm and resulting signature length are known, padding and extra length fields which are present in the ASN.1 encoding are omitted and the ‘signatureValue’ field is encoded as a CBOR byte string. For native CBOR certificates the signatureValue is calculated over the certificate CBOR sequence excluding the signatureValue.</t>
</list></t>

<t>In addition to the above fields present in X.509, the CBOR ecoding introduces an additional field</t>

<t><list style="symbols">
  <t>type. A CBOR int used to indicate the type of CBOR certificate. Currently type can be a native CBOR certificate (type = 0) or a CBOR compressed X.509 certificates (type = 1), see <xref target="iana"/>.</t>
</list></t>

<t>The Concise Data Definition Language (CDDL) for  CBOR certificate is:</t>

<figure><artwork type="CDDL"><![CDATA[
certificate = (
   type : int,
   serialNumber : bytes,
   issuer : { + int => bytes } / text,
   validity_notBefore: uint,
   validity_notAfter: uint,
   subject : text / bytes
   subjectPublicKey : bytes
   extensions : [ *4 int, ? text / bytes ] / int,
   signatureValue : bytes,
   ? ( signatureAlgorithm : int,
       subjectPublicKeyInfo_algorithm : int )
)
]]></artwork></figure>

<t>The signatureValue for native CBOR certificates is calculated over the CBOR sequence:</t>

<figure><artwork type="CDDL"><![CDATA[
(
   type : int,
   serialNumber : bytes,
   issuer : { + int => bytes } / text,
   validity_notBefore: uint,
   validity_notAfter: uint,
   subject : text / bytes
   subjectPublicKey : bytes
   extensions : [ *4 int, ? text / bytes ] / int,
   ? ( signatureAlgorithm : int,
       subjectPublicKeyInfo_algorithm : int )
)
]]></artwork></figure>

<t>TODO - Specify exactly how issuer is encoded into a map / text and back again.</t>

</section>
<section anchor="dep-set" title="Deployment settings">

<t>CBOR certificates can be deployed with legacy X.509 certificates and CA infrastructure. In order to verify the signature, the CBOR certificate is used to recreate the original X.509 data structure to be able to verify the signature.</t>

<t>For the currently used DTLS v1.2 protocol, where the handshake is sent unencrypted, the actual encoding and compression can be done at different locations depending on the deployment setting. For example, the mapping between CBOR certificate and standard X.509 certificate can take place in a 6LoWPAN border gateway which allows the server side to stay unmodified. This case gives the advantage of the low overhead of a CBOR certificate over a constrained wireless links. The conversion to X.509 within an IoT device will incur a computational overhead, however, this is negligible compared to the reduced communication overhead.</t>

<t>For the setting with constrained server and server-only authentication, the server only needs to be provisioned with the CBOR certificate and does not perform the conversion to X.509. This option is viable when client authentication can be asserted by other means.</t>

<t>For DTLS v1.3, because certificates are encrypted, the proposed encoding needs to be done fully end-to-end, through adding the encoding/decoding functionality to the server. This corresponds to the proposed native mode, a new certificate compression scheme. The required changes on the server side are in line with recent protocols utilizing cbor encoding for communication with resource constrained devices <xref target="RFC8613"/>.</t>

</section>
<section anchor="expected-certificate-sizes" title="Expected Certificate Sizes">

<t>The CBOR encoding of the sample certificate given in <xref target="appA"/> results in the numbers shown in <xref target="fig-table"/>. After RFC 7925 profiling, most duplicated information has been removed, and the remaining text strings are minimal in size. Therefore the further size reduction reached with general compression mechanisms will be small, mainly corresponding to making the ASN.1 endcoding more compact. The zlib number was calculated with zlib-flate.</t>

<figure><artwork><![CDATA[
zlib-flate -compress < cert.der > cert.compressed
]]></artwork></figure>

<figure title="Comparing Sizes of Certificates (bytes)" anchor="fig-table"><artwork align="center"><![CDATA[
+------------------+--------------+------------+--------------------+
|                  |   RFC 7925   |    zlib    |  CBOR Certificate  |
+------------------+---------------------------+--------------------+
| Certificate Size |     314      |     295    |         136        |
+------------------+--------------+------------+--------------------+
]]></artwork></figure>

</section>
<section anchor="native-CBOR" title="Native CBOR Certificates">

<t>Further performance improvements can be achieved with the use of native CBOR certificates. In this case the signature is calculated over the CBOR encoded structure rather than the ASN.1 encoded structure. This removes entirely the need for ASN.1 and reduces the processing in the authenticating devices.</t>

<t>This solution applies when the devices are only required to authenticate with a set of native CBOR certificate compatible servers, which may become a preferred approach for future deployments. The mapping between X.509 and CBOR certificates enables a migration path between the backwards compatible format and the fully optimized format. This motivates introducing a type flag to indicate if the certificate should be restored to X.509 or kept cbor encoded.</t>

</section>
<section anchor="sec-cons" title="Security Considerations">

<t>The CBOR profiling of X.509 certificates does not change the security assumptions needed when deploying standard X.509 certificates but decreases the number of fields transmitted, which reduces the risk for implementation errors.</t>

<t>Conversion between the certificate formats can be made in constant time to reduce risk of information leakage through side channels.</t>

<t>The current version of the format hardcodes the signature algorithm which does not allow for crypto agility. A COSE crypto algorithm can be specified with small overhead, and this changed is proposed for a future version of the draft.</t>

</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>The mechanism in this draft does not reveal any additional information compared to X.509.</t>

<t>Because of difference in size, it will be possible to detect that this profile is used.</t>

<t>The gateway solution described in <xref target="dep-set"/> requires unencrypted certificates.</t>

</section>
<section anchor="iana" title="IANA Considerations">

<section anchor="cbor-certificate-types-registry" title="CBOR Certificate Types Registry">

<t>IANA has created a new registry titled “CBOR Certificate Types” under the new heading “CBOR Certificate”. The registration procedure is “Expert Review”. The columns of the registry are Value, Description, and Reference, where Value is an integer and the other columns are text strings. The initial contents of the registry are:</t>

<figure title="CBOR Certificate Types" anchor="fig-types"><artwork align="center"><![CDATA[
+-------+---------------------------------------+-------------------+
| Value | Description                           | Reference         |
+-------+---------------------------------------+-------------------+
|     0 | Native CBOR Certificate.              | [[this document]] |
|     1 | CBOR Compressed X.509 Certificate     | [[this document]] |
+-------+---------------------------------------+-------------------+
]]></artwork></figure>

</section>
<section anchor="cbor-certificate-signature-algorithms-registry" title="CBOR Certificate Signature Algorithms Registry">

<t>IANA has created a new registry titled “CBOR Certificate Signature Algorithms” under the new heading “CBOR Certificate”. The registration procedure is “Expert Review”. The columns of the registry are Value, X.509 Algorithm, and Reference, where Value is an integer and the other columns are text strings. The initial contents of the registry are:</t>

<figure title="CBOR Certificate Signature Algorithms" anchor="fig-sigalgs"><artwork align="center"><![CDATA[
+-------+---------------------------------------+-------------------+
| Value | X.509 Signature Algorithm             | Reference         |
+-------+---------------------------------------+-------------------+
|     0 | ecdsa-with-SHA384                     | [[this document]] |
|     1 | ecdsa-with-SHA512                     | [[this document]] |
|     2 | id-ecdsa-with-shake128                | [[this document]] |
|     3 | id-ecdsa-with-shake256                | [[this document]] |
|     4 | id-Ed25519                            | [[this document]] |
|     5 | id-Ed448                              | [[this document]] |
+-------+---------------------------------------+-------------------+
]]></artwork></figure>

</section>
<section anchor="cbor-certificate-public-key-algorithms-registry" title="CBOR Certificate Public Key Algorithms Registry">

<t>IANA has created a new registry titled “CBOR Certificate Public Key Algorithms” under the new heading “CBOR Certificate”. The registration procedure is “Expert Review”. The columns of the registry are Value, X.509 Algorithm, and Reference, where Value is an integer and the other columns are text strings. The initial contents of the registry are:</t>

<figure title="CBOR Certificate Public Key Algorithms" anchor="fig-pkalgs"><artwork align="center"><![CDATA[
+-------+---------------------------------------+-------------------+
| Value | X.509 Public Key Algorithm            | Reference         |
+-------+---------------------------------------+-------------------+
|     0 | id-ecPublicKey + prime384v1           | [[this document]] |
|     1 | id-ecPublicKey + prime512v1           | [[this document]] |
|     2 | id-X25519                             | [[this document]] |
|     3 | id-X448                               | [[this document]] |
|     4 | id-Ed25519                            | [[this document]] |
|     5 | id-Ed448                              | [[this document]] |
+-------+---------------------------------------+-------------------+
]]></artwork></figure>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC5280;
&RFC7049;
&RFC7925;
&RFC8174;
&RFC8610;
&I-D.ietf-cbor-sequence;


    </references>

    <references title='Informative References'>

&RFC7228;
&RFC8446;
&RFC8613;
&I-D.ietf-tls-dtls13;
&I-D.selander-ace-cose-ecdhe;
<reference anchor="X.509-IoT" target="https://doi.org/10.1007/978-3-319-93797-7_14">
  <front>
    <title>Lightweight X.509 Digital Certificates for the Internet of Things.</title>
    <author initials="F." surname="Forsby">
      <organization></organization>
    </author>
    <author initials="M." surname="Furuhed">
      <organization></organization>
    </author>
    <author initials="P." surname="Papadimitratos">
      <organization></organization>
    </author>
    <author initials="S." surname="Raza">
      <organization></organization>
    </author>
    <date year="2018" month="July"/>
  </front>
  <seriesInfo name="Springer, Cham." value="Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 242."/>
</reference>
<reference anchor="SECG" target="https://secg.org/sec1-v2.pdf">
  <front>
    <title>Elliptic Curve Cryptography, Standards for Efficient Cryptography Group, ver. 2</title>
    <author >
      <organization></organization>
    </author>
    <date year="2009"/>
  </front>
</reference>


    </references>


<section anchor="appA" title="Example CBOR Certificates">

<section anchor="example-x509-certificate" title="Example X.509 Certificate">

<t>Example RFC 7925 profiled X.509 certificate parsed with OpenSSL</t>

<figure><artwork><![CDATA[
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 128269 (0x1f50d)
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=RFC test CA
        Validity
            Not Before: Jan  1 00:00:00 2020 GMT
            Not After : Feb  2 00:00:00 2021 GMT
        Subject: CN=01-23-45-FF-FE-67-89-AB
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:ae:4c:db:01:f6:14:de:fc:71:21:28:5f:dc:7f:
                    5c:6d:1d:42:c9:56:47:f0:61:ba:00:80:df:67:88:
                    67:84:5e:e9:a6:9f:d4:89:31:49:da:e3:d3:b1:54:
                    16:d7:53:2c:38:71:52:b8:0b:0d:f3:e1:af:40:8a:
                    95:d3:07:1e:58
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Key Usage: 
                Digital Signature
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:37:38:73:ef:87:81:b8:82:97:ef:23:5c:1f:ac:
         cf:62:da:4e:44:74:0d:c2:a2:e6:a3:c6:c8:82:a3:23:8d:9c:
         02:20:3a:d9:35:3b:a7:88:68:3b:06:bb:48:fe:ca:16:ea:71:
         17:17:34:c6:75:c5:33:2b:2a:f1:cb:73:38:10:a1:fc
         
]]></artwork></figure>

<t>The DER encoding of the above certificate is 314 bytes</t>

<figure><artwork><![CDATA[
308201363081DEA003020102020301F50D300A06082A8648CE3D040302301631
14301206035504030C0B5246432074657374204341301E170D32303031303130
30303030305A170D3231303230323030303030305A30223120301E0603550403
0C1730312D32332D34352D46462D46452D36372D38392D41423059301306072A
8648CE3D020106082A8648CE3D03010703420004AE4CDB01F614DEFC7121285F
DC7F5C6D1D42C95647F061BA0080DF678867845EE9A69FD4893149DAE3D3B154
16D7532C387152B80B0DF3E1AF408A95D3071E58A30F300D300B0603551D0F04
0403020780300A06082A8648CE3D04030203470030440220373873EF8781B882
97EF235C1FACCF62DA4E44740DC2A2E6A3C6C882A3238D9C02203AD9353BA788
683B06BB48FECA16EA71171734C675C5332B2AF1CB733810A1FC
]]></artwork></figure>

</section>
<section anchor="example-cbor-certificate-compression" title="Example CBOR Certificate Compression">

<t>The CBOR certificate compression of the X.509 in CBOR diagnostic format is</t>

<figure><artwork><![CDATA[
(
  1,
  h'128269',
  "RFC test CA",
  1577836800,
  1612224000,
  h'0123456789AB',
  h'02ae4cdb01f614defc7121285fdc7f5c6d1d42c95647f061ba
    0080df678867845e',
  5,
  h'373873EF8781B88297EF235C1FACCF62DA4E44740DC2A2E6A3
    C6C882A3238D9C3AD9353BA788683B06BB48FECA16EA711717
    34C675C5332B2AF1CB733810A1FC'
)
]]></artwork></figure>

<t>The CBOR encoding (CBOR sequence) of the CBOR certificate is 136 bytes</t>

<figure><artwork><![CDATA[
01431282696B52464320746573742043411A5E0BE1001A601896004601234567
89AB582102AE4CDB01F614DEFC7121285FDC7F5C6D1D42C95647F061BA0080DF
678867845E055840373873EF8781B88297EF235C1FACCF62DA4E44740DC2A2E6
A3C6C882A3238D9C3AD9353BA788683B06BB48FECA16EA71171734C675C5332B
2AF1CB733810A1FC
]]></artwork></figure>

</section>
<section anchor="example-native-cbor-certificate" title="Example Native CBOR Certificate">

<t>The corresponfing native CBOR certificate in CBOR diagnostic format is equal execpt for type and signatureValue</t>

<figure><artwork><![CDATA[
(
  0,
  h'128269',
  "RFC test CA",
  1577836800,
  1612224000,
  h'0123456789AB',
  h'02ae4cdb01f614defc7121285fdc7f5c6d1d42c95647f061
    ba0080df678867845e',
  5,
  h'7F10A063DA8DB2FD49414440CDF85070AC22A266C7F1DFB1
    577D9A35A295A8742E794258B76968C097F85542322A0796
    0199C13CC0220A9BC729EF2ECA638CFE'
)
]]></artwork></figure>

<t>The CBOR encoding (CBOR sequence) of the CBOR certificate is 136 bytes</t>

<figure><artwork><![CDATA[
00431282696B52464320746573742043411A5E0BE1001A601896004601234567
89AB582102AE4CDB01F614DEFC7121285FDC7F5C6D1D42C95647F061BA0080DF
678867845E0558407F10A063DA8DB2FD49414440CDF85070AC22A266C7F1DFB1
577D9A35A295A8742E794258B76968C097F85542322A07960199C13CC0220A9B
C729EF2ECA638CFE
]]></artwork></figure>

</section>
</section>
<section anchor="appB" title="X.509 Certificate Profile, ASN.1">

<figure><artwork type="ASN.1"><![CDATA[
IOTCertificate DEFINITIONS EXPLICIT TAGS ::= BEGIN

Certificate  ::= SEQUENCE {
  tbsCertificate        TBSCertificate,
  signatureAlgorithm    AlgorithmIdentifier,
  signatureValue        BIT STRING
}

TBSCertificate  ::= SEQUENCE {
  version           [0] INTEGER {v3(2)},
  serialNumber          INTEGER (1..MAX),
  signature             AlgorithmIdentifier,
  issuer                Name,
  validity              Validity,
  subject               Name,
  subjectPublicKeyInfo  SubjectPublicKeyInfo,
  extensions        [3] Extensions OPTIONAL
}

Name  ::= SEQUENCE SIZE (1) OF DistinguishedName

DistinguishedName  ::= SET SIZE (1) OF CommonName

CommonName  ::= SEQUENCE {
  type              OBJECT IDENTIFIER (id-at-commonName),
  value             UTF8String
}

Validity  ::= SEQUENCE {
  notBefore         UTCTime,
  notAfter          UTCTime
}

SubjectPublicKeyInfo  ::= SEQUENCE {
  algorithm         AlgorithmIdentifier,
  subjectPublicKey  BIT STRING
}

AlgorithmIdentifier  ::=  SEQUENCE  {
  algorithm         OBJECT IDENTIFIER,
  parameters        ANY DEFINED BY algorithm OPTIONAL  }
}

Extensions  ::= SEQUENCE SIZE (1..MAX) OF Extension

Extension  ::= SEQUENCE {
  extnId            OBJECT IDENTIFIER,
  critical          BOOLEAN DEFAULT FALSE,
  extnValue         OCTET STRING
 }

id-at-commonName    OBJECT IDENTIFIER   ::=
         {joint-iso-itu-t(2) ds(5) attributeType(4) 3}

END
]]></artwork></figure>

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

