{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-15T16:42:10.566Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC9904",
  "document": {
    "abstract": "The DNSSEC protocol makes use of various cryptographic algorithms to provide authentication of DNS data and proof of nonexistence. To ensure interoperability between DNS resolvers and DNS authoritative servers, it is necessary to specify both a set of algorithm implementation requirements and usage guidelines to ensure that there is at least one algorithm that all implementations support. This document replaces and obsoletes RFC 8624 and moves the canonical source of algorithm implementation requirements and usage guidance for DNSSEC from RFC 8624 to the IANA DNSSEC algorithm registries. This is done to allow the list of requirements to be more easily updated and referenced. Extensions to these registries can be made in future RFCs. This document also updates RFC 9157 and incorporates the revised IANA DNSSEC considerations from that RFC. This document does not change the recommendation status (MUST, MAY, RECOMMENDED, etc.) of the algorithms listed in RFC 8624; that is the work of future documents.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "authors": [
      {
        "name": "Wes Hardaker"
      },
      {
        "name": "Warren Kumari"
      }
    ],
    "authors$meta": {
      "confidence": "high",
      "note": "Parsed from Datatracker doc page article:author (profile full names)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docId": "RFC9904",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docLabel": "IETF RFC 9904",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docNumber": "9904",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docTitle": "DNSSEC Cryptographic Algorithm Recommendation Update Process",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docType": "Standard",
    "docType$meta": {
      "confidence": "high",
      "note": "Mapped from Datatracker std_level or RFC status text",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "doi": "10.17487/RFC9904",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "href": "https://doi.org/10.17487/RFC9904",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "keywords": [
      "DNS",
      "DNSSEC",
      "Key Rollover",
      "Algorithm Agility"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "DNS",
        "DNSSEC",
        "Rollover",
        "Agility"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-15T16:42:10.566Z",
      "version": "extractDocs.js@commit:0f51bb226575"
    },
    "pages": "13",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "publicationDate": "2025-11-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "references": {
      "bibliographic": [
        "RFC4034",
        "RFC4509",
        "RFC5155",
        "RFC5702",
        "RFC5933",
        "RFC6605",
        "RFC6781",
        "RFC7583",
        "RFC8080",
        "RFC8624",
        "RFC9364",
        "orphan/RFC9904/h:e9713b1d"
      ],
      "bibliographic$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "normative": [
        "RFC2119",
        "RFC8126",
        "RFC8174",
        "RFC9157",
        "orphan/RFC9904/h:e3fb0f19",
        "orphan/RFC9904/h:c9a5fdeb"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc9904/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
      "updated": "2026-10-14T18:51:58.805Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "amends": [
        "RFC9157"
      ],
      "amends$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "errataExist": false,
      "errataExist$meta": {
        "confidence": "high",
        "note": "Derived from presence of errata links on RFC/Datatracker pages",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "statusNote": "Proposed Standard",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "supersedes": [
        "RFC8624"
      ],
      "supersedes$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9904/",
        "updated": "2026-10-14T18:51:58.805Z",
        "version": "extractDocs.js@commit:673dd514c094"
      }
    }
  }
}