<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.1 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-cose-key-thumbprint-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="COSE Key Thumbprint">CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>

    <author initials="K." surname="Isobe" fullname="Kohei Isobe">
      <organization>SECOM CO., LTD.</organization>
      <address>
        <email>isobekohei@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization></organization>
      <address>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>

    <date year="2023" month="October" day="05"/>

    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 52?>

<t>This specification defines a method for computing a hash value over a
COSE Key. It defines which fields in a COSE Key structure are used in the
hash computation, the method of creating a canonical form of the fields,
and how to hash the byte sequence. The resulting hash value can be used
for identifying or selecting a key that is the subject of the thumbprint.</t>



    </abstract>



  </front>

  <middle>


<?line 60?>

<section anchor="introduction"><name>Introduction</name>

<t>This specification defines a method for computing a hash value (a.k.a. digest)
over a COSE Key structure <xref target="RFC9052"/>.  It defines which fields in a COSE Key
structure are used in the hash computation, the method of creating a canonical
form for those fields, and how to hash the byte sequence.  The resulting hash
value can be used for identifying or selecting the key that is the subject of
the thumbprint, for instance, by using the COSE Key Thumbprint value as a "kid"
(key ID) value.</t>

<t>This specification defines how thumbprints of COSE keys are created.
Additionally, a new CWT confirmation method is registered in the registry
created by <xref target="RFC8747"/>. See Section 3.1 of <xref target="RFC8747"/> for details
about the use of a confirmation claim in a CWT with a proof-of-possession
key.</t>

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

<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>

</section>
<section anchor="cose-key-thumbprint"><name>COSE Key Thumbprint</name>

<t>The thumbprint of a COSE Key MUST be computed as follows:</t>

<t><list style="numbers">
  <t>Construct a COSE_Key structure (see Section 7 of <xref target="RFC9052"/>) containing
only the required parameters representing the key. This specification
describes what those required parameters are and what, if necessary,
what the unique encoding is.</t>
  <t>Apply the deterministic encoding described in Section 4.2.1 of <xref target="RFC8949"/>
to the representation constructed in step (1).</t>
  <t>Hash the bytes produced in step (2) with a cryptographic hash function H.
For example, SHA-256 <xref target="RFC6234"/> may be used as a hash function.</t>
</list></t>

<t>The resulting value is the COSE Key Thumbprint with H of the COSE Key. The
details of this computation are further described in subsequent
sections.</t>

</section>
<section anchor="required"><name>Required COSE Key Parameters</name>

<t>Only the required parameters of a key's representation are used when
computing its COSE Key Thumbprint value. This section summarizes the
required parameters.</t>

<t>The "kty" (label: 1) element MUST be present for all key types and the integer
value found in the IANA COSE Key Types registry MUST be used. The tstr data
type is not used with the kty element.</t>

<t>Many COSE Key parameters depend on the chosen key type. The subsection below list
the required parameters for commonly used key types.</t>

<section anchor="octet-key-pair-okp"><name>Octet Key Pair (OKP)</name>

<t>The required parameters for elliptic curve public keys that use the OKP key type,
such as X25519, are:</t>

<t><list style="symbols">
  <t>"kty" (label: 1, data type: int, value: 1)</t>
  <t>"crv" (label: -1, value: int)</t>
  <t>"x" (label: -2, value: bstr)</t>
</list></t>

<t>Details can be found in Section 7.1 of <xref target="RFC9053"/>.</t>

</section>
<section anchor="elliptic-curve-keys-w-x-and-y-coordinate-pair"><name>Elliptic Curve Keys w/ x- and y-coordinate pair</name>

<t>The required parameters for elliptic curve public keys that use the EC2 key type, such
as NIST P-256, are:</t>

<t><list style="symbols">
  <t>"kty" (label: 1, data type: int, value: 2)</t>
  <t>"crv" (label: -1, data type: int)</t>
  <t>"x" (label: -2, data type: bstr)</t>
  <t>"y" (label: -3, data type: bstr)</t>
</list></t>

<t>Details can be found in Section 7.1 of <xref target="RFC9053"/>.</t>

<t>Note: <xref target="RFC9052"/> offers both compressed as well as uncompressed point
representations. For interoperability, implementations following this
specification MUST use the uncompressed point representation. Hence,
the y-coordinate is expressed as a bstr. An implementation that uses
the compressed point representation MUST compute the uncompressed
representation for the purpose of the thumbprint calculation.</t>

</section>
<section anchor="rsa-public-keys"><name>RSA Public Keys</name>

<t>The required parameters for an RSA public key are:</t>

<t><list style="symbols">
  <t>"kty" (label: 1, data type: int, value: 3)</t>
  <t>"n" (label: -1, data type: bstr)</t>
  <t>"e" (label: -2, data type: bstr)</t>
</list></t>

</section>
<section anchor="symmetric-keys"><name>Symmetric Keys</name>

<t>The required parameters for a symmetric key are:</t>

<t><list style="symbols">
  <t>"kty" (label: 1, data type: int, value: 4)</t>
  <t>"k" (label: -1, data type: bstr)</t>
</list></t>

</section>
<section anchor="hss-lms"><name>HSS-LMS</name>

<t>The required parameters for HSS-LMS keys are:</t>

<t><list style="symbols">
  <t>"kty" (label: 1, data type: int, value: 5)</t>
  <t>"pub" (label: -1, data type: bstr)</t>
</list></t>

</section>
<section anchor="others"><name>Others</name>

<t>As other key type values are defined, the specifications
defining them should be similarly consulted to determine which
parameters, in addition to the "kty" element, are required.</t>

</section>
</section>
<section anchor="miscellaneous-considerations"><name>Miscellaneous Considerations</name>

<section anchor="why-not-include-optional-cose-key-parameters"><name>Why Not Include Optional COSE Key Parameters?</name>

<t>Optional parameters of COSE Keys are intentionally not included in the
COSE Key Thumbprint computation so that their absence or presence
in the COSE Key does not alter the resulting value.  The COSE Key
Thumbprint value is a digest of the parameters required to represent
the key as a COSE Key -- not of additional data that may also
accompany the key.</t>

<t>Optional parameters are not included so that the COSE Key Thumbprint refers
to a key -- not a key with an associated set of key attributes.
Different application contexts might or might not include different
subsets of optional attributes about the key in the COSE Key structure.
If these were included in the calculation of the COSE Key Thumbprint,
the values would be different for those COSE Keys, even though the keys
are the same. The benefit of including only the required parameters is that the
COSE Key Thumbprint of any COSE Key representing the key remains the same,
regardless of any other attributes that are present.</t>

<t>Different kinds of thumbprints could be defined by other specifications
that might include some or all additional COSE Key parameters, if use
cases arise where such different kinds of thumbprints would be useful.</t>

</section>
<section anchor="selection-of-hash-function"><name>Selection of Hash Function</name>

<t>A specific hash function must be chosen by an application to compute
the hash value of the hash input.  For example, SHA-256 <xref target="RFC6234"/> might
be used as the hash function by the application.  While SHA-256 is a
good default choice at the time of writing, the hash function of
choice can be expected to change over time as the cryptographic
landscape evolves.</t>

<t>Note that in many cases, only the party that creates a key will need
to know the hash function used.  A typical usage is for the producer
of the key to use the thumbprint value as a "kid" (key ID) value. In
this case, the consumer of the "kid" treats it as an opaque value that
it uses to select the key.</t>

<t>However, in some cases, multiple parties will be reproducing the COSE Key
Thumbprint calculation and comparing the results.  In these cases,
the parties will need to know which hash function was used and use
the same one.</t>

</section>
<section anchor="thumbprints-of-keys-not-in-cose-key-format"><name>Thumbprints of Keys Not in COSE Key Format</name>

<t>A key need not be in COSE Key format to create a COSE Key Thumbprint
of it.  The only prerequisites are that the COSE Key representation of the
key be defined and the party creating the COSE KEY Thumbprint be in
possession of the necessary key material.</t>

</section>
<section anchor="relationship-to-digests-of-x509-values"><name>Relationship to Digests of X.509 Values</name>

<t>COSE Key Thumbprint values are computed on the COSE Key element required to
represent a key, rather than all members of a COSE Key that the key is
represented in.  Thus, they are more analogous to applications that
use digests of X.509 Subject Public Key Info (SPKI) values, which are
defined in Section 4.1.2.7 of <xref target="RFC5280"/>, than to applications that
use digests of complete certificate values, as the "x5t" (X.509
certificate SHA-1 thumbprint) <xref target="RFC9360"/> value defined for X.509
certificate objects does.  While logically equivalent to a digest of
the SPKI representation of the key, a COSE Key Thumbprint is computed over
the CBOR representation of that key, rather than over an ASN.1
representation of it.</t>

</section>
<section anchor="confirmation-methods"><name>Confirmation Methods</name>

<t><xref target="RFC8747"/> introduced confirmation methods for use with CBOR
Web Tokens (CWTs). CWTs have been defined in <xref target="RFC8392"/>. This
specification adds a new confirmation method based on COSE Key
Thumbprints.</t>

<t>The proof-of-possession key is identified using the "ckt" claim,
the COSE Key Thumbprint claim. This claim contains the value of
the COSE Key Thumbprint encoded as a binary string. Instead of
communicating the actual COSE Key only the thumbprint is conveyed.
This approach assumes that the recipient is able to obtain the
identified COSE Key using the thumbprint contained in the "ckt"
claim. In this case, the issuer of a CWT declares that the
presenter possesses a particular key and that the recipient
can cryptographically confirm the presenter's proof of possession
of the key by including a "ckt" claim in the CWT.</t>

<t>The following example demonstrates the use of the "ckt" claim
in a CWT (with line-breaks inserted for editorial reasons):</t>

<figure><artwork><![CDATA[
   {
    /iss/ 1 : "coaps://as.example.com",
    /aud/ 3 : "coaps://resource.example.org",
    /exp/ 4 : 1361398824,
    /cnf/ 8 : {
      /ckt/ [[TBD2]] : h'496bd8afadf307e5b08c64b0421bf9dc
                  01528a344a43bda88fadd1669da253ec'
     }
   }
]]></artwork></figure>

<t><xref target="IANA"/> registers the "ckt" claim and the confirmation method.
The "ckt" claim is expected to be used in the "cnf" claim.</t>

</section>
</section>
<section anchor="example"><name>Example</name>

<t>This section demonstrates the COSE Key Thumbprint computation for the
following example COSE Key containing an ECC public key.</t>

<t>For better readability, the example is first presented in JSON (with
the long line broken for display purposes only).</t>

<figure><artwork><![CDATA[
  {
    / kty set to EC2 = Elliptic Curve Keys /
    1:2,
    / crv set to P-256 /
    -1:1,
    / public key: x-coordinate /
    -2:h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c0
8551d',
    / public key: y-coordinate /
    -3:h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd008
4d19c',
    / kid /
    2:'meriadoc.brandybuck@buckland.example'
  }
]]></artwork></figure>

<t>The example above corresponds to the following CBOR encoding
(with link breaks added for display purposes only):</t>

<figure><artwork><![CDATA[
A50102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE108D
E439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0CA7CA7E9
EECD0084D19C0258246D65726961646F632E6272616E64796275636B406275636B6C6
16E642E6578616D706C65
]]></artwork></figure>

<t>Not all of the parameters from the example above are used in the COSE Key
Thumbprint since the required parameters of an elliptic curve public key are:</t>

<t><list style="symbols">
  <t>"kty"</t>
  <t>"crv"</t>
  <t>"x"</t>
  <t>"y"</t>
</list></t>

<t>The required order based on Section 4.2.1 of <xref target="RFC8949"/> is:</t>

<t><list style="symbols">
  <t>"y" (label: -3, data type: bstr)</t>
  <t>"x" (label: -2, data type: bstr)</t>
  <t>"crv" (label: -1, data type: int)</t>
  <t>"kty" (label: 1, data type: int)</t>
</list></t>

<t>The resulting COSE Key structure, in CBOR diagnostic format with
line-breaks added for better readability, with the minimum parameters
in the correct order are.</t>

<figure><artwork><![CDATA[
{
   1:2,
  -1:1,
  -2:h'65eda5a12577c2bae829437fe338701a
       10aaa375e1bb5b5de108de439c08551d',
  -3:h'1e52ed75701163f7f9e40ddf9f341b3d
       c9ba860af7e0ca7ca7e9eecd0084d19c'
}
]]></artwork></figure>

<t>In CBOR encoding the result is (with line-breaks added for display
purposes only):</t>

<figure><artwork><![CDATA[
A40102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE
108DE439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0
CA7CA7E9EECD0084D19C
]]></artwork></figure>

<t>Using SHA-256, the resulting thumbprint is:</t>

<figure><artwork><![CDATA[
496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da253ec
]]></artwork></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>A COSE Key Thumbprint will only uniquely identify a particular key if a
single unambiguous COSE Key representation for that key is defined and
used when computing the COSE Key Thumbprint.</t>

<t>If two asymmetric keys are used by different parties with different
key identifiers then the COSE Key Thumbprints will still be equal since
the key identifier itself is not included in the thumbprint calculation
(similarly to other optional parameters in the COSE_Key structure).
When the inclusion of certain optional parameters in the thumbprint
calcuation is important for a given application, this specification
is not the appropriate choice.</t>

<t>To promote interoperability among implementations, the SHA-256 hash
algorithm is mandatory to implement.</t>

<t>While thumbprint values are valuable for identifying legitimate keys,
comparing thumbprint values is not a reliable means of excluding the
use of particular keys (or transformations thereof). The reason is
that an attacker may supply a key that is a transformation of a key
in order to have it appear to be a different key.  For instance, if
a legitimate RSA key uses a modulus value N and an attacker supplies
a key with modulus 3*N, the modified key would still work about 1/3
of the time, but would appear to be a different key.</t>

<t>Producing thumbprints of symmetric keys needs to be done with care. Developers
MUST ensure that the symmetric key has sufficient entropy to prevent
attackers to precompute tables of symmetric keys with their corresponding
hash values. This can be prevented if the symmetric key is a randomly
selected key of at least 128 bit length. Using thumbprints with passwords
(i.e. low-entropy secrets) is dangerous and MUST be avoided. If a
developer is unable to determine whether all symmetric keys used in an
application have sufficient entropy, then thumbprints of symmetric keys
MUST NOT be used. In general, using thumbprints of symmetric keys should
only be used in special applications. In most other deployment scenarios
it is more appropriate to utilize a different naming scheme for key
identifiers.</t>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>IANA is requested to add the following entry to the "CWT Confirmation
Methods" registry established by <xref target="RFC8747"/>:</t>

<t><list style="symbols">
  <t>Confirmation Method Name: ckt</t>
  <t>Confirmation Method Description: COSE Key Thumbprint</t>
  <t>JWT Confirmation Method Name: ckt</t>
  <t>Confirmation Key: [[TBD1]]</t>
  <t>Confirmation Value Type(s): binary string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): [[This document]]</t>
</list></t>

<t>IANA is furthermore asked to register the "ckt" claim to the
"CBOR Web Token (CWT) Claims" registry created by <xref target="RFC8392"/>:</t>

<t><list style="symbols">
  <t>Claim Name: ckt</t>
  <t>Claim Description: COSE Key Thumbprint</t>
  <t>JWT Claim Name: ckt</t>
  <t>Claim Key: TBD1</t>
  <t>Claim Value Type(s): byte string</t>
  <t>Change Controller: IESG</t>
  <t>Specification Document(s): [[This specification]]</t>
</list></t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>We would like to thank the authors of <xref target="RFC7638"/> for their work on the
JSON Web Key (JWK) Thumbprint specification. This document applies JWK
Thumbprints to COSE Key structures.</t>

<t>Additionally, we would like to thank Carsten Bormann, Orie Steele,
Ilari Liusvaara, Laurence Lundblade, Daisuke Ajitomi, Michael Richardson,
Mike Jones, and Brendan Moran for their feedback.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8949">
  <front>
    <title>Concise Binary Object Representation (CBOR)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="94"/>
  <seriesInfo name="RFC" value="8949"/>
  <seriesInfo name="DOI" value="10.17487/RFC8949"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>

<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>

<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>

<reference anchor="RFC8747">
  <front>
    <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="L. Seitz" initials="L." surname="Seitz"/>
    <author fullname="G. Selander" initials="G." surname="Selander"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8747"/>
  <seriesInfo name="DOI" value="10.17487/RFC8747"/>
</reference>

<reference anchor="RFC8392">
  <front>
    <title>CBOR Web Token (CWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8392"/>
  <seriesInfo name="DOI" value="10.17487/RFC8392"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC7638">
  <front>
    <title>JSON Web Key (JWK) Thumbprint</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7638"/>
  <seriesInfo name="DOI" value="10.17487/RFC7638"/>
</reference>

<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>

<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>

<reference anchor="RFC9360">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="February" year="2023"/>
    <abstract>
      <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9360"/>
  <seriesInfo name="DOI" value="10.17487/RFC9360"/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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
VBHZCgJzAMESzvB/8+FRcW49AAA=

-->

</rfc>

