A Well-Known URI and JSON Format for Publishing Cryptographic Posture (the Crypto-Agility Manifest)
draft-acosta-crypto-agility-manifest-01
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Leon Nicolas Acosta | ||
| Last updated | 2026-08-06 | ||
| RFC stream | (None) | ||
| Intended RFC status | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-acosta-crypto-agility-manifest-01
Network Working Group L. Acosta
Internet-Draft QuantaKrypto
Intended status: Informational 7 August 2026
Expires: 8 February 2027
A Well-Known URI and JSON Format for Publishing Cryptographic Posture
(the Crypto-Agility Manifest)
draft-acosta-crypto-agility-manifest-01
Abstract
This document defines a discoverable, machine-readable JSON document,
the crypto-agility manifest, that a website or source repository
publishes at the well-known URI "/.well-known/crypto-agility.json" to
declare its cryptographic posture: a readiness summary, a compact
Cryptography Bill of Materials (CBOM) summary, an optional link to a
posture attestation, the migration policy it measures itself against,
and an optional self-declared conformance statement with justified
exceptions. The manifest lets an automated consumer, such as an AI
coding agent, a continuous-integration bot, or an auditor's tool,
discover a project's crypto posture the way it already discovers a
security contact from "security.txt". The manifest is a public,
self-reported claim; it is not a proof. It is intended to
complement, not replace, a full CBOM inventory, serving as the CBOM's
public-facing discovery counterpart.
This document is a proposal. It is not an IETF product and is not a
standard of any kind.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 8 February 2027.
Acosta Expires 8 February 2027 [Page 1]
Internet-Draft Crypto-Agility Manifest August 2026
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Scope and Non-Goals . . . . . . . . . . . . . . . . . . . 4
2. Terminology and Conventions . . . . . . . . . . . . . . . . . 4
3. The Well-Known URI . . . . . . . . . . . . . . . . . . . . . 5
4. File Format . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Field Definitions . . . . . . . . . . . . . . . . . . . . . . 6
5.1. version . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2. manifestType . . . . . . . . . . . . . . . . . . . . . . 6
5.3. generatedAt . . . . . . . . . . . . . . . . . . . . . . . 6
5.4. generator . . . . . . . . . . . . . . . . . . . . . . . . 6
5.5. subject . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.6. posture . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.7. cbomSummary . . . . . . . . . . . . . . . . . . . . . . . 7
5.8. attestation (optional) . . . . . . . . . . . . . . . . . 8
5.9. policy . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.10. conformance (optional) . . . . . . . . . . . . . . . . . 9
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. Operational Considerations . . . . . . . . . . . . . . . . . 11
8. Security Considerations . . . . . . . . . . . . . . . . . . . 12
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
10. Normative References . . . . . . . . . . . . . . . . . . . . 13
11. Informative References . . . . . . . . . . . . . . . . . . . 14
Appendix A. Status of This Proposal . . . . . . . . . . . . . . 15
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 15
Acosta Expires 8 February 2027 [Page 2]
Internet-Draft Crypto-Agility Manifest August 2026
1. Introduction
Crypto-agility, the capability to replace and adapt cryptographic
algorithms while preserving security and operations, is a mature and
well-documented objective. It is treated at the algorithm-agility
level by [RFC7696], and at the organizational and lifecycle level by
[NIST-CSWP-39]. Mechanism-level guidance for deriving keys when a
classical and a post-quantum exchange are combined appears in
[NIST-SP-800-56C], and security-evaluation criteria for quantum key
distribution in [ISO-IEC-23837]. The migration timelines that give
crypto-agility its present urgency are set out in [NSM-10] and
[NIST-IR-8547], and general engineering guidance for the post-quantum
transition itself is collected in [RFC9958]. The inventory of what
cryptography a system actually uses now has a standard
representation, the Cryptography Bill of Materials (CBOM) defined in
[CycloneDX-CBOM].
What is missing is not the concept and not the inventory format. It
is a conventional, discoverable place for a project to publish a
short, public summary of its posture that a machine can find and read
without out-of-band configuration. Automated agents increasingly
make dependency and cryptography choices, and continuous-integration
systems increasingly gate on them, but there is no standard location
from which such a consumer can learn a project's crypto posture,
policy, and migration deadlines. Today every such integration is
bespoke.
This document fills exactly that gap and no more. It borrows its
structural model directly from "security.txt" [RFC9116]: a small file
at a registered well-known location [RFC8615] that any party can
fetch from an origin alone. Where "security.txt" publishes how to
report a vulnerability, the crypto-agility manifest publishes a
project's cryptographic posture. A full CBOM answers "what
cryptography is in here"; the manifest is its public-facing discovery
counterpart, answering "where do I find this project's posture, and
what does it summarize to".
The manifest is deliberately a summary and not a replacement for a
full CBOM or a detailed readiness report. It is small enough to
fetch and parse on every CI run, and it answers three questions at a
glance: how ready is this project, what quantum-vulnerable
cryptography is it still using, and by when has it committed to
migrate. A consumer that needs component-level detail follows the
CBOM pointer the manifest carries.
Acosta Expires 8 February 2027 [Page 3]
Internet-Draft Crypto-Agility Manifest August 2026
1.1. Scope and Non-Goals
This document specifies the well-known URI, the media type, and the
JSON field definitions of the manifest. It does not define a new
cryptographic mechanism, a new attestation format, or a new CBOM
format; it references the CBOM format of [CycloneDX-CBOM] for the
summary it carries. It does not specify how a producer computes a
readiness score, and it does not define the trust model of the
credential an "attestation" link points to. The manifest is a self-
reported claim (see Section 7); establishing whether that claim is
true is out of scope and is the job of the linked attestation and of
the consumer.
2. Terminology and Conventions
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 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
The following terms are used in this document:
manifest: the JSON document defined by this specification.
producer: the party or tool that generates and publishes a manifest.
consumer: any party that retrieves and interprets a manifest, for
example an agent, a CI system, a scanner, or an auditor's tool.
origin: as defined in [RFC9110], the scheme, host, and port from
which the manifest is retrieved.
CBOM: a Cryptography Bill of Materials as defined in
[CycloneDX-CBOM].
classical public-key cryptography: public-key algorithms, such as
RSA and elliptic-curve Diffie-Hellman, whose security is broken by
a cryptographically relevant quantum computer.
Field names, JSON literals, and example values are shown in a
monospaced font. JSON types are as defined by the JSON grammar:
object, array, string, number, boolean, and null. In this document,
"integer" denotes a JSON number with no fractional part.
Acosta Expires 8 February 2027 [Page 4]
Internet-Draft Crypto-Agility Manifest August 2026
3. The Well-Known URI
A producer publishes its manifest at the path "/.well-known/crypto-
agility.json" of an origin, that is:
https://example.com/.well-known/crypto-agility.json
This location uses the well-known URI mechanism of [RFC8615], the
same mechanism that hosts "security.txt" [RFC9116]. Registration of
the URI suffix "crypto-agility.json" is requested in Section 9. A
consumer that knows only an origin MUST be able to locate the
manifest by resolving this path against that origin, with no out-of-
band configuration.
A manifest published for a website or service SHOULD be served from
the origin's web root at the path above. A manifest that describes a
source repository MAY additionally be committed into the repository
at "/.well-known/crypto-agility.json" so that it travels with the
source and can be regenerated by continuous integration.
A manifest retrieved over HTTP or HTTPS SHOULD be retrieved over
HTTPS (see Section 8). A consumer MUST NOT follow a cross-origin
redirect to locate a manifest without treating the result as
belonging to the redirect target rather than the original origin.
4. File Format
The manifest is a single JSON [RFC8259] object encoded in UTF-8.
When served over HTTP, it SHOULD be served with a "Content-Type"
header field [RFC9110] of "application/json". A consumer MUST reject
a document that is not a single JSON object.
The top-level "version" field is the schema contract. A consumer
MUST branch on "version" and MUST reject a value it does not
understand. This document defines "version" 1. Additive, backward-
compatible fields MAY be introduced under "version" 1; any breaking
change bumps "version". A consumer MUST ignore object members it
does not recognize, so that additive fields do not break older
consumers.
The manifest is public by design. It MUST NOT contain secrets,
source snippets, file contents, or any data not intended for public
disclosure (see Section 8).
Acosta Expires 8 February 2027 [Page 5]
Internet-Draft Crypto-Agility Manifest August 2026
5. Field Definitions
The manifest object has the members defined in this section. Unless
a member is explicitly marked optional, it is REQUIRED and a
conforming producer MUST emit it. A machine-readable JSON Schema for
"version" 1 accompanies this specification.
5.1. version
An integer. The manifest schema version. For this specification the
value MUST be 1. A consumer MUST reject a version it does not
understand.
5.2. manifestType
A string. A discriminator that lets a consumer distinguish this
document from other JSON served at a well-known path. The value MUST
be the string "crypto-agility". A consumer MUST reject a document
whose "manifestType" is any other value.
5.3. generatedAt
A string. The instant the manifest was generated, formatted as an
Internet timestamp per [RFC3339] (a profile of ISO 8601). A producer
MUST set this from its runtime clock at generation time.
5.4. generator
An object describing what produced the manifest. It has two REQUIRED
string members:
name: the name of the producing tool.
version: the version of the producing tool.
5.5. subject
An object identifying what the manifest describes. It has three
REQUIRED members:
root: a string. The scanned root the manifest describes.
repository: a string or null. The source repository the manifest
describes. MUST be null when unknown.
commit: a string or null. The commit identifier the manifest was
derived from. MUST be null when unknown.
Acosta Expires 8 February 2027 [Page 6]
Internet-Draft Crypto-Agility Manifest August 2026
5.6. posture
An object carrying the distilled cryptographic posture. It has four
REQUIRED members:
readinessScore: a number from 0 to 100 inclusive. A producer-
defined readiness score. A value of 100 means no classical
asymmetric cryptography was found. This document does not define
how the score is computed; a consumer MUST NOT assume that scores
from different producers are directly comparable.
hybridKexInUse: a boolean or null. Whether the subject negotiates
hybrid post-quantum key exchange. A producer that cannot
determine this (for example a static source scan, which cannot
observe a negotiated key-exchange group) MUST set null. A
consumer MUST treat null as "unknown", distinct from false.
quantumVulnerable: an object with a REQUIRED integer member "total"
(the count of quantum-vulnerable findings) and a REQUIRED object
member "bySeverity". "bySeverity" MUST contain all five integer
keys "critical", "high", "medium", "low", and "info", each a count
that MUST NOT be negative.
hndlExposedCount: an integer. The number of findings exposed to
harvest-now-decrypt-later, that is, data that can be recorded
today and decrypted once a cryptographically relevant quantum
computer exists.
5.7. cbomSummary
An object that summarizes, and points to, the full CBOM
[CycloneDX-CBOM] from which it was derived. The full CBOM is
intentionally not inlined, so that the manifest stays small. It has
three REQUIRED members:
serialNumber: a string. The CycloneDX "serialNumber" (a "urn:uuid:"
value) of the full CBOM this summary was derived from. This links
the manifest to a specific CBOM instance.
assetCount: an integer. The number of distinct "cryptographic-
asset" components in the full CBOM.
algorithmFamilies: an array of objects, ordered most-referenced
first. Each element has a REQUIRED string "family" (the algorithm
family name, for example "RSA" or "ECDH"), a REQUIRED integer
"count" (the number of references to that family), and a REQUIRED
boolean "quantumVulnerable".
Acosta Expires 8 February 2027 [Page 7]
Internet-Draft Crypto-Agility Manifest August 2026
5.8. attestation (optional)
An OPTIONAL object. When present, it has one REQUIRED string member:
url: a URI locating a machine-verifiable posture credential. A
producer MUST record the URI verbatim and MUST NOT be required to
fetch it when generating the manifest. A producer MUST omit the
"attestation" member entirely when no credential is declared,
rather than emitting an empty or null value.
The presence of an "attestation" link does not by itself make the
manifest verifiable; it points a consumer to where verification can
be performed. See Section 7.
5.9. policy
An object stating the migration policy the subject declares it is
measured against. It has five REQUIRED members:
source: a string. A label for the policy source: a published
standard's name, or the literal "operator-declared" when the
deadlines are set by the operator rather than adopted from a
standard.
deprecateClassicalAfter: an integer year after which classical
public-key cryptography is considered deprecated under the
declared policy.
disallowClassicalAfter: an integer year after which classical
public-key cryptography is considered disallowed under the
declared policy.
transitionDeadline: a string or null. An operator-declared
migration deadline (an [RFC3339] date or a year), or null when
none is declared.
citation: a string. A human-readable citation for the declared
deadlines.
The values of "deprecateClassicalAfter" and "disallowClassicalAfter"
are the policy the subject holds itself to; they are a declaration,
not a verification. A producer that adopts a published timeline
SHOULD name it in "source" and "citation", for example the 2030 and
2035 milestones of [NIST-IR-8547] and [NSM-10]. National-security
profiles such as the milestones of [NSM-10] are a valid "operator-
declared" choice.
Acosta Expires 8 February 2027 [Page 8]
Internet-Draft Crypto-Agility Manifest August 2026
5.10. conformance (optional)
An OPTIONAL object stating the subject's self-declared conformance to
the policy in Section 5.9, together with any residual quantum-
vulnerable findings it accepts. It lets a subject that is not at a
readiness score of 100 declare that its remaining classical
cryptography is known and accepted under the policy, not an
oversight. When present, it has two REQUIRED members and two
OPTIONAL members:
policy: a string naming the policy the conformance is asserted
against. It SHOULD match the "source" member of the "policy"
object.
status: a string, one of "conformant", "conditional", or
"nonconformant". "conformant" means the subject meets the
declared policy outright. "conditional" means the subject does
not meet the numeric bar, but every residual quantum-vulnerable
finding is enumerated in "exceptions" with a justification.
"nonconformant" means residual findings exist without accepted
exceptions.
statement: an OPTIONAL string carrying a human-readable rationale
for the status.
exceptions: an OPTIONAL array of the residual findings the subject
accepts. Each element is an object with a REQUIRED "family"
string (the algorithm family or finding the exception covers, for
example "RSA" or "X25519"), a REQUIRED "justification" string, and
an OPTIONAL "acceptedUntil" integer year (typically aligned with a
policy deadline) or null.
A self-published "conformance" status is a claim of the same kind as
every other value in this document, not a proof (Section 8). A
consumer MUST NOT treat a "conformant" or "conditional" status as
assurance unless the manifest also carries an "attestation"
(Section 5.8) that covers the asserted conformance and that the
consumer has verified. A producer that emits a "conformant" or
"conditional" status SHOULD also provide an "attestation".
6. Examples
The following is a complete, conforming manifest for a repository
that has migrated most, but not all, of its key exchange to hybrid
post-quantum key exchange, still uses RSA and ECDH in two places, and
adopts the [NIST-IR-8547] transition timeline.
Acosta Expires 8 February 2027 [Page 9]
Internet-Draft Crypto-Agility Manifest August 2026
{
"version": 1,
"manifestType": "crypto-agility",
"generatedAt": "2026-07-27T04:57:12.323Z",
"generator": { "name": "qScan", "version": "0.5.0" },
"subject": {
"root": ".",
"repository": "https://github.com/acme/widget-service",
"commit": "9f2c1ab7d3e04c5b8a6f0e21d47c9b3e5a1f8c02"
},
"posture": {
"readinessScore": 74,
"hybridKexInUse": true,
"quantumVulnerable": {
"total": 2,
"bySeverity": {
"critical": 0, "high": 2, "medium": 0, "low": 0, "info": 0
}
},
"hndlExposedCount": 2
},
"cbomSummary": {
"serialNumber": "urn:uuid:5834348b-e27b-4f71-8752-f0497d98166f",
"assetCount": 2,
"algorithmFamilies": [
{ "family": "ECDH", "count": 1, "quantumVulnerable": true },
{ "family": "RSA", "count": 1, "quantumVulnerable": true }
]
},
"attestation": { "url": "https://quantakrypto.com/attest/acme" },
"policy": {
"source": "NIST IR 8547",
"deprecateClassicalAfter": 2030,
"disallowClassicalAfter": 2035,
"transitionDeadline": null,
"citation": "https://csrc.nist.gov/pubs/ir/8547/ipd"
},
"conformance": {
"policy": "NIST IR 8547",
"status": "conditional",
"statement": "Residual classical crypto is transition-accepted.",
"exceptions": [
{
"family": "ECDH",
"justification": "classical half of a hybrid KEX",
"acceptedUntil": 2030
},
{
Acosta Expires 8 February 2027 [Page 10]
Internet-Draft Crypto-Agility Manifest August 2026
"family": "RSA",
"justification": "public-TLS cert chain; no PQC CA path yet",
"acceptedUntil": 2030
}
]
}
}
The "conformance" object above is optional. Because its "status" is
"conditional", the "attestation" link is what lets a consumer treat
it as more than a claim (Section 5.10). A producer that cannot
observe live key exchange (a static source scan) sets
"hybridKexInUse" to null and omits both "attestation" and
"conformance" when neither is declared.
7. Operational Considerations
*The manifest is a self-reported claim.* Every value in it is
asserted by the producer about itself. On its own the manifest
establishes what a project says about its posture, not what is true
of it. This is the same trust posture as "security.txt": publishing
a file does not prove the statements in it.
The "attestation" link is the bridge from claim to evidence. It
points a consumer to a machine-verifiable posture credential that a
third party can check independently of the manifest. A consumer that
needs assurance rather than a claim SHOULD follow "attestation.url"
and verify the credential there; the manifest itself SHOULD NOT be
treated as proof of the posture it reports. A manifest without an
"attestation" member is an unverified self-declaration and SHOULD be
consumed as such.
The manifest and its CBOM summary SHOULD be derived from the same
underlying scan and CBOM, so that the summary can never contradict
the full CBOM referenced by "cbomSummary.serialNumber". A consumer
that needs component-level detail follows that pointer to the full
CBOM rather than relying on the summary.
Producers SHOULD regenerate the manifest as posture changes, for
example on each CI run, so that a stale manifest does not
misrepresent a project that has since migrated or regressed.
"generatedAt" lets a consumer judge freshness and reject a manifest
that is older than a policy it enforces.
*Relationship to security.txt.* An origin that already publishes a
"security.txt" file [RFC9116] SHOULD co-locate this manifest beside
it under "/.well-known/", so that an operator who maintains one
maintains the other and the two describe a consistent security
Acosta Expires 8 February 2027 [Page 11]
Internet-Draft Crypto-Agility Manifest August 2026
posture. RFC 9116 does not define a field for pointing at an
arbitrary well-known resource, and its "Encryption" field is reserved
for a key or a certificate used to encrypt a report to the operator,
not for a posture document; a producer MUST NOT repurpose
"Encryption" to reference this manifest. Where an operator wishes to
make the link explicit, they MAY add a comment line to "security.txt"
naming the manifest's well-known location. A consumer that has
discovered a "security.txt" file SHOULD attempt to resolve this
manifest at its own well-known path independently, rather than
relying on any such reference.
8. Security Considerations
*A manifest is a claim, not a proof.* Nothing about serving a
manifest establishes that its contents are accurate. A consumer MUST
NOT treat a manifest as an authenticated statement of posture; a
consumer that requires assurance MUST obtain it from a verifiable
credential (see Section 7), not from the manifest alone. A hostile
or careless producer can overstate readiness, understate vulnerable
findings, or advertise deadlines it does not meet. A consumer that
gates a decision on an unverified manifest inherits that risk.
*Self-declared conformance is not a pass.* The optional "conformance"
object (Section 5.10) lets a producer assert a "conformant" or
"conditional" status and enumerate accepted exceptions. This is a
producer's own assertion and carries no more weight than the
readiness score itself. A consumer MUST NOT treat a self-published
status as a pass, an approval, or evidence of accepted risk unless
the manifest also carries an "attestation" (Section 5.8) that covers
the asserted conformance and that the consumer has independently
verified. Absent a verified attestation, the "status" and
"exceptions" are informative context for a human reviewer, not an
authorization to proceed.
*Do not leak internal detail.* The manifest is public. A producer
MUST NOT place secrets, key material, source snippets, file paths,
internal hostnames, or any non-public detail in it. The fields
defined here are deliberately coarse summaries for this reason. A
precise public inventory of which quantum-vulnerable algorithms a
system still uses, and where it is exposed to harvest-now-decrypt-
later, is also a roadmap for an attacker; a producer SHOULD weigh the
transparency benefit of a detailed posture against the reconnaissance
value it hands an adversary, and MAY publish only the coarse summary
this document defines.
*Retrieve over TLS.* A manifest retrieved over the network SHOULD be
retrieved over HTTPS, so that a network attacker cannot substitute or
tamper with it in transit. A consumer SHOULD reject, or clearly mark
Acosta Expires 8 February 2027 [Page 12]
Internet-Draft Crypto-Agility Manifest August 2026
as untrusted, a manifest retrieved over an unauthenticated channel.
As with "security.txt" [RFC9116], a cross-origin redirect encountered
while retrieving a manifest MUST NOT be treated as authoritative for
the original origin.
*Freshness and denial of service.* A stale manifest can misrepresent
current posture; consumers SHOULD use "generatedAt" to bound
acceptable age. Because the manifest is fetched automatically and
potentially often, producers SHOULD serve it as a static resource,
and consumers SHOULD bound the size they will read and cache results,
so that manifest retrieval is not turned into a denial-of-service
vector against either party.
9. IANA Considerations
IANA is requested to register the following well-known URI in the
"Well-Known URIs" registry defined by [RFC8615].
URI suffix: crypto-agility.json
Change controller: IETF
Specification document(s): This document.
Status: permanent
Related information: The resource is a JSON [RFC8259] document with
media type "application/json". See Section 4.
This document registers no new media type; the manifest uses the
existing "application/json" media type.
10. 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>.
[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>.
[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", STD 90, RFC 8259,
DOI 10.17487/RFC8259, December 2017,
<https://www.rfc-editor.org/info/rfc8259>.
Acosta Expires 8 February 2027 [Page 13]
Internet-Draft Crypto-Agility Manifest August 2026
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<https://www.rfc-editor.org/info/rfc3339>.
[RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers
(URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019,
<https://www.rfc-editor.org/info/rfc8615>.
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>.
[CycloneDX-CBOM]
OWASP CycloneDX / Ecma International TC54, "CycloneDX
Cryptography Bill of Materials (CBOM)", Cryptographic
assets in the CycloneDX Bill of Materials specification
(integrated in CycloneDX 1.6, extended in 1.7; published
as Ecma International standard ECMA-424), 2025,
<https://cyclonedx.org/capabilities/cbom/>.
11. Informative References
[RFC9116] Foudil, E. and Y. Shafranovich, "A File Format to Aid in
Security Vulnerability Disclosure", RFC 9116,
DOI 10.17487/RFC9116, April 2022,
<https://www.rfc-editor.org/info/rfc9116>.
[RFC9958] Banerjee, A., Reddy.K, T., Schoinianakis, D., Hollebeek,
T., and M. Ounsworth, "Post-Quantum Cryptography for
Engineers", RFC 9958, DOI 10.17487/RFC9958, June 2026,
<https://www.rfc-editor.org/info/rfc9958>.
[RFC7696] Housley, R., "Guidelines for Cryptographic Algorithm
Agility and Selecting Mandatory-to-Implement Algorithms",
BCP 201, RFC 7696, DOI 10.17487/RFC7696, November 2015,
<https://www.rfc-editor.org/info/rfc7696>.
[NIST-CSWP-39]
National Institute of Standards and Technology,
"Considerations for Achieving Cryptographic Agility:
Strategies and Practices", NIST CSWP 39,
DOI 10.6028/NIST.CSWP.39, December 2025,
<https://doi.org/10.6028/NIST.CSWP.39>.
Acosta Expires 8 February 2027 [Page 14]
Internet-Draft Crypto-Agility Manifest August 2026
[NIST-SP-800-56C]
Barker, E., Chen, L., and R. Davis, "Recommendation for
Key-Derivation Methods in Key-Establishment Schemes", NIST
SP 800-56C Rev. 2, DOI 10.6028/NIST.SP.800-56Cr2, August
2020, <https://doi.org/10.6028/NIST.SP.800-56Cr2>.
[NIST-IR-8547]
National Institute of Standards and Technology,
"Transition to Post-Quantum Cryptography Standards
(Initial Public Draft)", Initial Public Draft; deprecation
of quantum-vulnerable public-key algorithms after 2030 and
disallowance after 2035, NIST IR 8547 (ipd), November
2024, <https://csrc.nist.gov/pubs/ir/8547/ipd>.
[NSM-10] The White House, "National Security Memorandum on
Promoting United States Leadership in Quantum Computing
While Mitigating Risks to Vulnerable Cryptographic Systems
(NSM-10)", National Security Memorandum 10; goal of
mitigating quantum risk to the maximum extent feasible by
2035, May 2022, <https://bidenwhitehouse.archives.gov/
briefing-room/statements-releases/2022/05/04/national-
security-memorandum-on-promoting-united-states-leadership-
in-quantum-computing-while-mitigating-risks-to-vulnerable-
cryptographic-systems/>.
[ISO-IEC-23837]
International Organization for Standardization /
International Electrotechnical Commission, "Information
security - Security requirements, test and evaluation
methods for quantum key distribution - Part 1:
Requirements; Part 2: Evaluation and testing methods",
ISO/IEC 23837-1:2023 and 23837-2:2023, 2023,
<https://www.iso.org/standard/77097.html>.
Appendix A. Status of This Proposal
This document is an individual Internet-Draft, the first step of the
IETF process, published to solicit review. It is not the product of
an IETF working group and does not represent IETF consensus, and it
is not yet a standard: it is a proposal put forward to be reviewed
and, if it has merit, advanced. The reference implementation, a
schema, and examples are maintained in the open at the repository
from which this draft originates.
Author's Address
Acosta Expires 8 February 2027 [Page 15]
Internet-Draft Crypto-Agility Manifest August 2026
Leon Acosta
QuantaKrypto
Argentina
Email: leon@quantakrypto.com
Acosta Expires 8 February 2027 [Page 16]