RFC 9864
Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)
RFC 9864 β¨ Fully-Specified Algorithms for JOSE and COSE π
okay bestie, this one is about making crypto algorithm names fully explicit so nobody has to guess π₯ it's Standards Track (so it's an official Internet standard, no cap π ), published October 2025 π
Authors: M.B. Jones (Self-Issued Consulting) and O. Steele (Tradeverifyd) π«Ά
What it does to older RFCs: it updates RFC 7518, RFC 8037, and RFC 9053 π (so those three are getting a glow-up, not replaced π¦). It doesn't obsolete anything.
The vibe in one sentence: a bunch of algorithm names only say part of the story (like "EdDSA" without saying which curve π), so this doc makes fully-specified versions for them and deprecates the vague "polymorphic" ones π Let's get into it β¨
Abstract πΈ
okay so the abstract is basically the TL;DR π an algorithm ID is fully specified if it pins down everything the crypto needs: the curve, the KDF, the hash, all of it π§ an ID is polymorphic if you still need extra info (like the actual key) to figure out what operation will happen π
this spec makes fully-specified IDs for the registered polymorphic JOSE and COSE algorithms, so apps can use only the fully-specified ones π and it deprecates the polymorphic ones π
it also updates RFC 7518, 8037, and 9053. it deprecates the polymorphic algorithms defined in RFC 8037 and 9053 and gives fully-specified replacements for them π and it adds stuff to the designated expert instructions in RFC 7518 and 9053 π
Status of This Memo π¦
this is an Internet Standards Track document π it's a product of the IETF and it represents the consensus of the IETF community. it got public review and was approved by the IESG β¨ if you want more on Internet Standards, check out Section 2 of RFC 7841 π§
all the current status info, errata, and feedback stuff lives at https://www.rfc-editor.org/info/rfc9864 π
Copyright Notice π
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. π
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date π«Ά read those carefully because they're about your rights and restrictions π
if you extract Code Components from this doc, they have to include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty as described in that license π₯
Table of Contents πΈ
okay the TOC is just the map πΊοΈ here's the full structure, copied exactly:
1. Introduction
1.1. Requirements Notation and Conventions
2. Fully-Specified Digital Signature Algorithm Identifiers
2.1. Elliptic Curve Digital Signature Algorithm (ECDSA)
2.2. Edwards-curve Digital Signature Algorithm (EdDSA)
3. Fully-Specified Encryption
3.1. Fully-Specified Encryption Algorithms
3.2. Polymorphic Encryption Algorithms
4. IANA Considerations
4.1. JOSE Algorithm Registrations
4.1.1. Fully-Specified JOSE Algorithm Registrations
4.1.2. Deprecated Polymorphic JOSE Algorithm Registration
4.2. COSE Algorithm Registrations
4.2.1. Fully-Specified COSE Algorithm Registrations
4.2.2. Deprecated Polymorphic COSE Algorithm Registrations
4.3. Updated Review Instructions for Designated Experts
4.3.1. JSON Web Signature and Encryption Algorithms
4.3.2. COSE Algorithms
4.4. Defining "Deprecated" and "Prohibited"
5. Key Representations
6. Notes on Algorithms Not Updated
6.1. RSA Signing Algorithms
6.2. ECDH Key Agreement Algorithms
6.3. HSS/LMS Hash-Based Digital Signature Algorithm
7. Security Considerations
8. References
8.1. Normative References
8.2. Informative References
Acknowledgements
Authors' Addresses
1. Introduction β¨
okay so the IANA registries for JOSE algorithms [IANA.JOSE] and COSE algorithms [IANA.COSE] have two kinds of IDs π
Fully Specified π these fully determine the operations, including the curve, KDF, and hash functions. examples are RS256 and ES256K (in both JOSE and COSE) and ES256 in JOSE πΈ
Polymorphic π¦ these need extra info beyond the ID to figure out the operations. that extra info could be the actual key value and the curve it uses π examples are EdDSA (in both JOSE and COSE) and ES256 in COSE π
this matters a LOT because lots of protocols negotiate what they support using just the algorithm IDs π for example, OAuth Authorization Server Metadata [RFC8414] uses things like this (from an example in that spec):
"token_endpoint_auth_signing_alg_values_supported":
["RS256", "ES256"]
OpenID Connect Discovery [OpenID.Discovery] negotiates supported algorithms with "alg" and "enc" values too π and W3C Web Authentication [WebAuthn] and the FIDO Client to Authenticator Protocol (CTAP) [FIDO2] negotiate using COSE "alg" numbers π«Ά
but polymorphic stuff breaks this π with EdDSA, you don't know whether Ed25519 and/or Ed448 are supported, and that causes real problems in practice π
WebAuthn came up with a de facto workaround for this:
-8 (EdDSA), where crv is 6 (Ed25519)
so it redefines the COSE EdDSA ID for WebAuthn to only use Ed25519 π that makes it non-polymorphic so negotiation can work, but it also effectively rules out Ed448 π₯Ί other similar workarounds for polymorphic IDs are used in practice too β¨
quick vocab moment: using fully-specified algorithms is sometimes called the "cipher suite" approach, and using polymorphic ones is sometimes called the "Γ la carte" approach π π
so this spec makes fully-specified IDs for registered polymorphic JOSE and COSE algorithms and their parameters, so apps can use only fully-specified IDs π it also deprecates the practice of registering polymorphic IDs π₯
1.1. Requirements Notation and Conventions πΈ
okay the BCP 14 key words (MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL) only mean their formal thing when they show up in ALL CAPS like that π§ they're interpreted as described in BCP 14 [RFC2119] [RFC8174] π
2. Fully-Specified Digital Signature Algorithm Identifiers π¦
this section makes fully-specified digital signature algorithm IDs for a set of registered polymorphic JOSE and COSE algorithms and their parameters π
2.1. Elliptic Curve Digital Signature Algorithm (ECDSA) π
[RFC9053] shows how to use ECDSA with COSE π the COSE ECDSA registrations are polymorphic because they don't say which curve gets used π for example, ES256 is "ECDSA w/ SHA-256" in Section 2.1 of [RFC9053] π«Ά (the matching JOSE registrations in [RFC7518] are already fully specified β¨)
these fully-specified COSE ECDSA algorithms are defined by this spec π
+========+============+=============================+=============+
| Name | COSE Value | Description | COSE |
| | | | Recommended |
+========+============+=============================+=============+
| ESP256 | -9 | ECDSA using P-256 curve and | Yes |
| | | SHA-256 | |
+--------+------------+-----------------------------+-------------+
| ESP384 | -51 | ECDSA using P-384 curve and | Yes |
| | | SHA-384 | |
+--------+------------+-----------------------------+-------------+
| ESP512 | -52 | ECDSA using P-521 curve and | Yes |
| | | SHA-512 | |
+--------+------------+-----------------------------+-------------+
| ESB256 | -265 | ECDSA using BrainpoolP256r1 | No |
| | | curve and SHA-256 | |
+--------+------------+-----------------------------+-------------+
| ESB320 | -266 | ECDSA using BrainpoolP320r1 | No |
| | | curve and SHA-384 | |
+--------+------------+-----------------------------+-------------+
| ESB384 | -267 | ECDSA using BrainpoolP384r1 | No |
| | | curve and SHA-384 | |
+--------+------------+-----------------------------+-------------+
| ESB512 | -268 | ECDSA using BrainpoolP512r1 | No |
| | | curve and SHA-512 | |
+--------+------------+-----------------------------+-------------+
Table 1: ECDSA Algorithm Values π
2.2. Edwards-curve Digital Signature Algorithm (EdDSA) π§
[RFC8037] shows how to use EdDSA with JOSE π and [RFC9053] shows how to use it with COSE π both register polymorphic EdDSA IDs π
these fully-specified JOSE and COSE EdDSA algorithms are defined by this spec β¨
+=========+=======+================+================+=============+
| Name | COSE | Description | JOSE | COSE |
| | Value | | Implementation | Recommended |
| | | | Requirements | |
+=========+=======+================+================+=============+
| Ed25519 | -19 | EdDSA using | Optional | Yes |
| | | the Ed25519 | | |
| | | parameter set | | |
| | | in Section 5.1 | | |
| | | of [RFC8032] | | |
+---------+-------+----------------+----------------+-------------+
| Ed448 | -53 | EdDSA using | Optional | Yes |
| | | the Ed448 | | |
| | | parameter set | | |
| | | in Section 5.2 | | |
| | | of [RFC8032] | | |
+---------+-------+----------------+----------------+-------------+
Table 2: EdDSA Algorithm Values π
Part 1 of 4 β¨ the rest of the RFC is coming next, bestie π π«Ά
3. Fully-Specified Encryption π
Okay bestie, this section is all about building fully-specified encryption algorithm identifiers for the JOSE and COSE encryption schemes. For JOSE that's JSON Web Encryption (JWE) from [RFC7516] and [RFC7518], and for COSE it's the encryption stuff from [RFC9052] and [RFC9053]. β¨
Fully-specified encryption lets the sender and receiver agree on every mandatory security parameter π. It also lets protocols write an allow list of algorithm combinations that leaves out the polymorphic ones, which blocks problems like cross-curve key establishment, cross-protocol symmetric encryption, and mismatched KDF size to symmetric key scenarios π. Absolutely not on my watch.
Both JOSE and COSE have operations that take more than one algorithm as a parameter π§. Encrypted JOSE objects [RFC7516] use two algorithm identifiers. The first is in the "alg" (Algorithm) Header Parameter, which says how to figure out the content encryption key. The second is in the "enc" (Encryption Algorithm) Header Parameter, which says which content encryption algorithm to use. Encrypted COSE objects can use multiple algorithms for matching purposes too, so this section explains how to fully specify encryption algorithms for both JOSE and COSE π.
To do fully-specified encryption in JOSE, the "alg" value MUST specify all parameters for key establishment, or pull some of them from the "enc" value next to it. The "enc" value MUST specify all parameters for symmetric encryption. For example, JWE with an "alg" value of "A128KW" (AES Key Wrap using 128-bit key) and an "enc" value of "A128GCM" (AES GCM using 128-bit key) is fully specified π.
Quick note, though: in JOSE you're allowed to derive some cryptographic parameters used in the "alg" computation from the "enc" value. For instance, the keydatalen KDF parameter value for "ECDH-ES" is determined from the "enc" value, as described in Section 4.6.2 of [RFC7518]. For the purposes of an "alg" value being fully specified, deriving parameters from "enc" does not make the algorithm polymorphic, because the computation is still fully determined by the algorithm identifiers used. This option does not exist in COSE π¦.
To do fully-specified encryption in COSE, the outer "alg" value MUST specify all parameters for key establishment, and the inner "alg" value MUST specify all parameters for symmetric encryption. For example, COSE with an outer "alg" value of "A128KW" and an inner "alg" value of "A128GCM" is fully specified. When you use COSE_Encrypt, as specified in Section 5.1 of [RFC9052], the outer "alg" gets communicated in the headers of the COSE_Encrypt object, and the inner "alg" gets communicated in the headers of the COSE_recipient object π
.
This spec defines what fully-specified encryption algorithm identifiers are for both JOSE and COSE, but it does not deprecate any polymorphic encryption algorithms. That's because this specification doesn't provide replacements for them. Section 6.2 talks about this more π.
3.1. Fully-Specified Encryption Algorithms
Lots of the registered JOSE and COSE encryption algorithms are already fully specified, so this part covers those π.
All the symmetric encryption algorithms registered by [RFC7518] and [RFC9053] are fully specified. An example of a fully-specified symmetric encryption algorithm is "A128GCM" (AES GCM using 128-bit key) πΈ.
In both JOSE and COSE, every registered key wrapping algorithm is fully specified, and so are the algorithms that do key wrapping using AES GCM. An example of a fully-specified key wrapping algorithm is "A128KW" (AES Key Wrap using 128-bit key) π.
The JOSE "dir" algorithm and the COSE "direct" algorithm are fully specified. The COSE direct+HKDF algorithms are fully specified too β¨.
The JOSE algorithms that do Key Encryption with PBES2 are fully specified π.
3.2. Polymorphic Encryption Algorithms
Some of the registered JOSE and COSE encryption algorithms are polymorphic, and this part talks about those π.
The Elliptic Curve Diffie-Hellman (ECDH) key establishment algorithms in both JOSE and COSE are polymorphic, because they don't specify which elliptic curve to use for the key. That's true of the ephemeral key for the Ephemeral-Static (ES) algorithms registered for JOSE and COSE, and of the static key for the Static-Static (SS) algorithms registered by COSE. Check out Section 6.2 for more on ECDH algorithms π«Ά.
4. IANA Considerations π
4.1. JOSE Algorithm Registrations
IANA has registered the values in this section in the "JSON Web Signature and Encryption Algorithms" registry [IANA.JOSE], which was established by [RFC7518]. IANA also listed this document as an additional reference for that registry ποΈ.
4.1.1. Fully-Specified JOSE Algorithm Registrations
Here are the fully-specified JOSE ones π:
Algorithm Name: Ed25519
Algorithm Description: EdDSA using the Ed25519 parameter set in
Section 5.1 of [RFC8032]
Algorithm Usage Locations: alg
JOSE Implementation Requirements: Optional
Change Controller: IETF
Reference: Section 2.2 of RFC 9864
Algorithm Analysis Document(s): [RFC8032]
Algorithm Name: Ed448
Algorithm Description: EdDSA using the Ed448 parameter set in
Section 5.2 of [RFC8032]
Algorithm Usage Locations: alg
JOSE Implementation Requirements: Optional
Change Controller: IETF
Reference: Section 2.2 of RFC 9864
Algorithm Analysis Document(s): [RFC8032]
4.1.2. Deprecated Polymorphic JOSE Algorithm Registration
IANA has changed the status of the following registration to "Deprecated" π₯.
Algorithm Name: EdDSA
Algorithm Description: EdDSA signature algorithms
Algorithm Usage Locations: alg
JOSE Implementation Requirements: Deprecated
Change Controller: IETF
Reference: Section 2.2 of RFC 9864
Algorithm Analysis Document(s): [RFC8032]
4.2. COSE Algorithm Registrations
IANA registered the following values in the "COSE Algorithms" registry [IANA.COSE], which was established by [RFC9053] and [RFC9054]. IANA also added this document as an additional reference for the registry π·.
4.2.1. Fully-Specified COSE Algorithm Registrations
The fully-specified COSE ones are below. Look at all these shiny new values π€©.
Name: ESP256
Value: -9
Description: ECDSA using P-256 curve and SHA-256
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: Yes
Name: ESP384
Value: -51
Description: ECDSA using P-384 curve and SHA-384
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: Yes
Name: ESP512
Value: -52
Description: ECDSA using P-521 curve and SHA-512
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: Yes
Name: ESB256
Value: -265
Description: ECDSA using BrainpoolP256r1 curve and SHA-256
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: No
Name: ESB320
Value: -266
Description: ECDSA using BrainpoolP320r1 curve and SHA-384
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: No
Name: ESB384
Value: -267
Description: ECDSA using BrainpoolP384r1 curve and SHA-384
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: No
Name: ESB512
Value: -268
Description: ECDSA using BrainpoolP512r1 curve and SHA-512
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.1 of RFC 9864
Recommended: No
Name: Ed25519
Value: -19
Description: EdDSA using the Ed25519 parameter set in Section 5.1 of
[RFC8032]
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.2 of RFC 9864
Recommended: Yes
Name: Ed448
Value: -53
Description: EdDSA using the Ed448 parameter set in Section 5.2 of
[RFC8032]
Capabilities: [kty]
Change Controller: IETF
Reference: Section 2.2 of RFC 9864
Recommended: Yes
4.2.2. Deprecated Polymorphic COSE Algorithm Registrations
IANA changed the status of the following registrations to "Deprecated" and added this document as a reference for them π.
Name: ES256
Value: -7
Description: ECDSA w/ SHA-256
Capabilities: [kty]
Change Controller: IETF
Reference: [RFC9053] and RFC 9864
Recommended: Deprecated
Name: ES384
Value: -35
Description: ECDSA w/ SHA-384
Capabilities: [kty]
Change Controller: IETF
Reference: [RFC9053] and RFC 9864
Recommended: Deprecated
Name: ES512
Value: -36
Description: ECDSA w/ SHA-512
Capabilities: [kty]
Change Controller: IETF
Reference: [RFC9053] and RFC 9864
Recommended: Deprecated
Name: EdDSA
Value: -8
Description: EdDSA
Capabilities: [kty]
Change Controller: IETF
Reference: [RFC9053] and RFC 9864
Recommended: Deprecated
4.3. Updated Review Instructions for Designated Experts
Okay, so the designated experts got some new homework π.
4.3.1. JSON Web Signature and Encryption Algorithms
The review instructions for the designated experts [RFC8126] for the "JSON Web Signature and Encryption Algorithms" registry [IANA.JOSE] in Section 7.1 of [RFC7518] have been updated to include an additional review criterion:
- Only fully-specified algorithm identifiers may be registered. Polymorphic algorithm identifiers must not be registered.
4.3.2. COSE Algorithms
The review instructions for the designated experts [RFC8126] for the "COSE Algorithms" registry [IANA.COSE] in Section 10.4 of [RFC9053] have been updated to include an additional review criterion:
- Only fully-specified algorithm identifiers may be registered. Polymorphic algorithm identifiers must not be registered.
4.4. Defining "Deprecated" and "Prohibited" β¨
okay so "Deprecated" and "Prohibited" are used all over JOSE and COSE registrations, but nobody actually defined them π JOSE in [RFC7518] lets you use both, but COSE in [RFC8152] only lets you use "Deprecated" and not "Prohibited". (Side note: [RFC8152] got obsoleted by [RFC9052] π ) This section finally pins them down for both JOSE and COSE so the whole thing is consistent and we stop getting that confusing mismatch π«Ά
For use in the "JOSE Implementation Requirements" columns in the IANA JOSE registries [IANA.JOSE] and the "Recommended" columns in the IANA COSE registries [IANA.COSE], the terms mean this:
- Deprecated: There is a preferred mechanism to get functionality similar to what the identifier references, and this replacement functionality SHOULD be utilized in new deployments in preference to the deprecated identifier, unless there exist documented operational or regulatory requirements that prevent migration away from the deprecated identifier. π
- Prohibited: The identifier and the functionality that it references MUST NOT be used. (Identifiers may be designated as "Prohibited" due to security flaws, for instance.) π«
For completeness, these definitions bring the full set of terms for the "Recommended" columns in the IANA COSE registries [IANA.COSE] to "Yes" [RFC8152], "No" [RFC8152], "Filter Only" [RFC9054], "Prohibited", and "Deprecated". So the "Recommended" column definition gets updated to this:
- Recommended: Does the IETF have a consensus recommendation to use the algorithm? The legal values are "Yes", "No", "Filter Only", "Prohibited", and "Deprecated". πΈ
The set of terms for the "JOSE Implementation Requirements" columns in the IANA JOSE registries [IANA.JOSE] stays exactly the same, no changes there π
Note that "Deprecated" and "Prohibited" have been used with a whole bunch of different meanings across different specs, and sometimes they weren't even defined in those specs at all π For example, a version of "Deprecated" shows up in the title of [RFC8996], but the actual spec text says "MUST NOT be used" instead. Very confusing, very relatable.
The definitions above were picked because they match every existing registration in both JOSE and COSE, so none of them need to change π They also match how the terms were already being used in JOSE. The only real change is that you can now clearly tell "Deprecated" apart from "Prohibited" in future COSE registrations. Main character energy for the registries π
5. Key Representations π
The key representations for the new fully-specified algorithms defined by this specification are the same as the ones for the polymorphic algorithms they replace, except for the alg value, if it's included. For example, the representation for a key used with the Ed25519 algorithm is the same as the one specified in [RFC8037], except that the alg value would be Ed25519 instead of EdDSA, if it's included. Lowkey simple, highkey iconic β¨
6. Notes on Algorithms Not Updated π¦
Some existing polymorphic algorithms aren't updated by this specification. This section explains why they got left out.
6.1. RSA Signing Algorithms
There are different points of view on whether the RS256, RS384, and RS512 algorithms should be considered fully specified or not, because they can operate on keys of different sizes. For instance, they can use both 2048- and 4096-bit keys. The same goes for the PS* algorithms π€
This document doesn't describe or request registration of any fully-specified RSA algorithms. Some RSA signing implementations, like FIPS-compliant Hardware Security Modules (HSMs) [FIPS.140-3], limit RSA key parameters to specific values with acceptable security characteristics. This approach could be extended to define fully-specified RSA algorithms in the future π§
That said, if it ever becomes useful to have RSA algorithm identifiers that are specific to particular key characteristics, a future specification could always register them. Future bestie, you've got this π
6.2. ECDH Key Agreement Algorithms
This specification doesn't update the ECDH algorithms, but it does describe how they could potentially be updated in the future, if needed. The registered JOSE and COSE ECDH algorithms are polymorphic because they don't specify the curve to be used for the ephemeral key π
Fully-specified versions of these algorithms would specify all the choices needed, including the KDF and the curve. For instance, an algorithm performing ECDH-ES using the Concat KDF and the P-256 curve would be fully specified and could be defined and registered. This specification doesn't define and register replacement algorithms like that, but other specifications could do so in the future, if desired β¨
6.3. HSS/LMS Hash-Based Digital Signature Algorithm
The HSS-LMS algorithm registered by COSE is polymorphic, because the algorithm identifier doesn't specify the hash function to be used. Like ECDH, this specification doesn't register replacement algorithms, but future specifications could πΈ
7. Security Considerations ππ
Okay, this section is the serious one, bestie, so pay attention π
The security considerations for ECDSA in [RFC7518], for EdDSA in [RFC8037], and for ECDSA and EdDSA in [RFC9053] all apply. β
The security considerations for preventing cross-protocol attacks described in [RFC9459] also apply. π‘οΈ
An "attack signature" is a unique pattern or characteristic used to identify malicious activity, letting systems detect and respond to known threats. The digital signature and key establishment algorithms used by software can contribute to an attack signature. By varying the identifier used for an algorithm, some software systems may try to dodge rule-based detection and classification. Rule-based detection and classification systems may need to update their rules to account for fully-specified algorithms. These systems should be aware that writing rules for polymorphic algorithms is harder, because every variant of the algorithm has to be accounted for. For example, ES384 in COSE might be used with three different keys, each with a different curve. Chaos, honestly π
A cryptographic key MUST be used with only a single algorithm, unless the use of the same key with different algorithms is proven secure. See [Reuse25519] for an example of such a proof. As a result, it is RECOMMENDED that the algorithm parameter of JSON Web Keys and COSE Keys be present, unless there exists some other mechanism for ensuring that the key is used as intended. This is a MUST-level vibe check, no cap π₯
In COSE, preventing cross-protocol attacks, like the ones described in [RFC9459], can be accomplished in two ways:
- Allow only authenticated content encryption (Authenticated Encryption with Associated Data (AEAD)) algorithms.
- Bind the potentially unauthenticated content encryption algorithm to be used to the key protection algorithm, so that different content encryption algorithms result in different content encryption keys.
Which choice to use in which circumstances is beyond the scope of this specification π«
8. References π
8.1. Normative References
- [RFC2119]: Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI
10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>. π - [RFC7516]: Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", RFC 7516, DOI
10.17487/RFC7516, May 2015, <https://www.rfc-editor.org/info/rfc7516>. π¦ - [RFC8037]: Liusvaara, I., "CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)", RFC 8037, DOI
10.17487/RFC8037, January 2017, <https://www.rfc-editor.org/info/rfc8037>. π - [RFC8174]: Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI
10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>. β¨ - [RFC9052]: Schaad, J., "CBOR Object Signing and Encryption (COSE): Structures and Process", STD 96, RFC 9052, DOI
10.17487/RFC9052, August 2022, <https://www.rfc-editor.org/info/rfc9052>. π - [RFC9053]: Schaad, J., "CBOR Object Signing and Encryption (COSE): Initial Algorithms", RFC 9053, DOI
10.17487/RFC9053, August 2022, <https://www.rfc-editor.org/info/rfc9053>. π
8.2. Informative References β¨
okay so this is the bit where the RFC says "here's the extra reading, bestie" ππ these ones aren't required to implement the spec, but they're the receipts for everything it's referencing π
[FIDO2]Bradley, J., Jones, M.B., Kumar, A., Lindemann, R., Verrept, J., and D. Waite, "Client to Authenticator Protocol (CTAP)", FIDO Alliance Proposed Standard, 14 July 2025,https://fidoalliance.org/specs/fido-v2.2-ps-20250714/fido-client-to-authenticator-protocol-v2.2-ps-20250714.html. π[FIPS.140-3]NIST, "Security Requirements for Cryptographic Modules", NIST FIPS 140-3, DOI 10.6028/NIST.FIPS.140-3, March 2019,https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-3.pdf. π‘οΈ[IANA.COSE]IANA, "CBOR Object Signing and Encryption (COSE)",https://www.iana.org/assignments/cose/. ποΈ[IANA.JOSE]IANA, "JSON Object Signing and Encryption (JOSE)",https://www.iana.org/assignments/jose/. ποΈ[OpenID.Discovery]Sakimura, N., Bradley, J., Jones, M., and E. Jay, "OpenID Connect Discovery 1.0 incorporating errata set 2", 15 December 2023,https://openid.net/specs/openid-connect-discovery-1_0.html. πΈ[Reuse25519]Thormarker, E., "On using the same key pair for Ed25519 and an X25519 based KEM", 23 April 2021,https://eprint.iacr.org/2021/509.pdf. π§ͺ[RFC7518]Jones, M., "JSON Web Algorithms (JWA)", RFC 7518, DOI 10.17487/RFC7518, May 2015,https://www.rfc-editor.org/info/rfc7518. π¦[RFC8032]Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital Signature Algorithm (EdDSA)", RFC 8032, DOI 10.17487/RFC8032, January 2017,https://www.rfc-editor.org/info/rfc8032. βοΈ[RFC8126]Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017,https://www.rfc-editor.org/info/rfc8126. π[RFC8152]Schaad, J., "CBOR Object Signing and Encryption (COSE)", RFC 8152, DOI 10.17487/RFC8152, July 2017,https://www.rfc-editor.org/info/rfc8152. π§[RFC8414]Jones, M., Sakimura, N., and J. Bradley, "OAuth 2.0 Authorization Server Metadata", RFC 8414, DOI 10.17487/RFC8414, June 2018,https://www.rfc-editor.org/info/rfc8414. π[RFC8996]Moriarty, K. and S. Farrell, "Deprecating TLS 1.0 and TLS 1.1", BCP 195, RFC 8996, DOI 10.17487/RFC8996, March 2021,https://www.rfc-editor.org/info/rfc8996. π«[RFC9054]Schaad, J., "CBOR Object Signing and Encryption (COSE): Hash Algorithms", RFC 9054, DOI 10.17487/RFC9054, August 2022,https://www.rfc-editor.org/info/rfc9054. #οΈβ£[RFC9459]Housley, R. and H. Tschofenig, "CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC", RFC 9459, DOI 10.17487/RFC9459, September 2023,https://www.rfc-editor.org/info/rfc9459. π[WebAuthn]Hodges, J., Ed., Jones, J.C., Ed., Jones, M.B., Ed., Kumar, A., Ed., and E. Lundberg, Ed., "Web Authentication: An API for accessing Public Key Credentials - Level 2", W3C Recommendation, 8 April 2021,https://www.w3.org/TR/2021/REC-webauthn-2-20210408/. π
Acknowledgements π«Ά
the authors gave a huge shoutout to Mike Bishop, Carsten Bormann, Mohamed Boucadair, John Bradley, Tim Bray, Brian Campbell, Deb Cooley, Roman Danyliw, Stephen Farrell, Vijay Gurbani, Ilari Liusvaara, Tobias Looker, Neil Madden, Kathleen Moriarty, Jeremy O'Donoghue, John PreuΓ Mattsson, Anders Rundgren, GΓΆran Selander, Filip Skokan, Oliver Terbu, Hannes Tschofenig, Sean Turner, Γric Vyncke, David Waite, Paul Wouters, and Jiankang Yao for their contributions to this specification. the whole squad really showed up πβ¨
Authors' Addresses π¦
Michael B. Jones Self-Issued Consulting Email: michael_b_jones@hotmail.com URI: https://self-issued.info/
Orie Steele Tradeverifyd Email: orie@or13.io
π¦ where this page comes from
- ietf: rfc9864 2025-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms