{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-15T16:41:38.196Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC9370",
  "document": {
    "abstract": "This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow multiple key exchanges to take place while computing a shared secret during a Security Association (SA) setup. This document utilizes the IKE_INTERMEDIATE exchange, where multiple key exchanges are performed when an IKE SA is being established. It also introduces a new IKEv2 exchange, IKE_FOLLOWUP_KE, which is used for the same purpose when the IKE SA is being rekeyed or is creating additional Child SAs. This document updates RFC 7296 by renaming a Transform Type 4 from \"Diffie-Hellman Group (D-H)\" to \"Key Exchange Method (KE)\" and renaming a field in the Key Exchange Payload from \"Diffie-Hellman Group Num\" to \"Key Exchange Method\". It also renames an IANA registry for this Transform Type from \"Transform Type 4 - Diffie- Hellman Group Transform IDs\" to \"Transform Type 4 - Key Exchange Method Transform IDs\". These changes generalize key exchange algorithms that can be used in IKEv2.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "authors": [
      {
        "name": "C. Tjhai"
      },
      {
        "name": "M. Tomlinson"
      },
      {
        "name": "G. Bartlett"
      },
      {
        "name": "Scott Fluhrer"
      },
      {
        "name": "Daniel Van Geest"
      },
      {
        "name": "Oscar Garcia-Morchon"
      },
      {
        "name": "Valery Smyslov"
      }
    ],
    "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/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docId": "RFC9370",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docLabel": "IETF RFC 9370",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docNumber": "9370",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "docTitle": "Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "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/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "doi": "10.17487/RFC9370",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "href": "https://doi.org/10.17487/RFC9370",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "keywords": [
      "Post-quantum Cryptography",
      "Hybrid",
      "Hybrid Key Exchange",
      "KEM",
      "Quantum",
      "PQ"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "Post-quantum",
        "PQC",
        "Hybrid",
        "Hybridization",
        "Hybrid Key Exchange",
        "Key Encapsulation",
        "Quantum",
        "Quantum-safe",
        "KEM",
        "PQ"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-15T16:41:38.196Z",
      "version": "extractDocs.js@commit:0f51bb226575"
    },
    "pages": "29",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "publicationDate": "2023-05-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "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/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "version": "extractDocs.js@commit:673dd514c094"
    },
    "references": {
      "bibliographic": [
        "IETF.draft-tjhai-ikev2-beyond-64k-limit-03",
        "IETF.draft-ietf-ipsecme-g-ikev2-09",
        "10.48550-arXiv.quant-ph-9605043",
        "RFC5723",
        "RFC6023",
        "RFC7383",
        "RFC8019",
        "RFC8247",
        "RFC8784",
        "orphan/RFC9370/h:9e2274c0",
        "orphan/RFC9370/h:1ee26ff4"
      ],
      "bibliographic$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "normative": [
        "RFC2119",
        "RFC7296",
        "RFC8174",
        "RFC9242"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "version": "extractDocs.js@commit:673dd514c094"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc9370/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
      "updated": "2026-10-14T18:51:09.698Z",
      "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/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "amends": [
        "RFC7296"
      ],
      "amends$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "errataExist": true,
      "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/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "version": "extractDocs.js@commit:673dd514c094"
      },
      "errataUrl": [
        "https://www.rfc-editor.org/errata/rfc9370",
        "https://www.rfc-editor.org/errata_search.php?rfc=9370"
      ],
      "errataUrl$meta": {
        "confidence": "high",
        "note": "Parsed from errata links on RFC/Datatracker pages",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "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/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "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/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "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/rfc9370/",
        "updated": "2026-10-14T18:51:09.698Z",
        "version": "extractDocs.js@commit:673dd514c094"
      }
    }
  }
}