From dbf3f9774fa2595f6c6c39dab9fcea9963e06874 Mon Sep 17 00:00:00 2001 From: Michael Baentsch <57787676+baentsch@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:58:36 +0100 Subject: [PATCH] HQC code point updates --- ALGORITHMS.md | 16 ++++++------ oqs-template/generate.yml | 47 +++++++++++++++++++++++++++++----- oqs-template/oqs-kem-info.md | 8 ++++++ oqsprov/oqsprov_capabilities.c | 16 ++++++------ 4 files changed, 64 insertions(+), 23 deletions(-) diff --git a/ALGORITHMS.md b/ALGORITHMS.md index a76bcb59..9ec32f93 100644 --- a/ALGORITHMS.md +++ b/ALGORITHMS.md @@ -46,14 +46,14 @@ As standardization for these algorithms within TLS is not done, all TLS code poi | x448_bikel3 | 0x2FAF | Yes | OQS_CODEPOINT_X448_BIKEL3 | | bikel5 | 0x0243 | Yes | OQS_CODEPOINT_BIKEL5 | | p521_bikel5 | 0x2F43 | Yes | OQS_CODEPOINT_P521_BIKEL5 | -| hqc128 | 0x022C | Yes | OQS_CODEPOINT_HQC128 | -| p256_hqc128 | 0x2F2C | Yes | OQS_CODEPOINT_P256_HQC128 | -| x25519_hqc128 | 0x2FAC | Yes | OQS_CODEPOINT_X25519_HQC128 | -| hqc192 | 0x022D | Yes | OQS_CODEPOINT_HQC192 | -| p384_hqc192 | 0x2F2D | Yes | OQS_CODEPOINT_P384_HQC192 | -| x448_hqc192 | 0x2FAD | Yes | OQS_CODEPOINT_X448_HQC192 | -| hqc256 | 0x022E | Yes | OQS_CODEPOINT_HQC256 | -| p521_hqc256 | 0x2F2E | Yes | OQS_CODEPOINT_P521_HQC256 | +| hqc128 | 0x0244 | Yes | OQS_CODEPOINT_HQC128 | +| p256_hqc128 | 0x2F44 | Yes | OQS_CODEPOINT_P256_HQC128 | +| x25519_hqc128 | 0x2FB0 | Yes | OQS_CODEPOINT_X25519_HQC128 | +| hqc192 | 0x0245 | Yes | OQS_CODEPOINT_HQC192 | +| p384_hqc192 | 0x2F45 | Yes | OQS_CODEPOINT_P384_HQC192 | +| x448_hqc192 | 0x2FB1 | Yes | OQS_CODEPOINT_X448_HQC192 | +| hqc256 | 0x0246 | Yes | OQS_CODEPOINT_HQC256 | +| p521_hqc256 | 0x2F46 | Yes | OQS_CODEPOINT_P521_HQC256 | | dilithium2 | 0xfea0 |Yes| OQS_CODEPOINT_DILITHIUM2 | p256_dilithium2 | 0xfea1 |Yes| OQS_CODEPOINT_P256_DILITHIUM2 | rsa3072_dilithium2 | 0xfea2 |Yes| OQS_CODEPOINT_RSA3072_DILITHIUM2 diff --git a/oqs-template/generate.yml b/oqs-template/generate.yml index 269388a9..099d36ed 100644 --- a/oqs-template/generate.yml +++ b/oqs-template/generate.yml @@ -1,5 +1,5 @@ # This is the master document for ID interoperability for KEM IDs, p-hybrid KEM IDs, SIG (O)IDs -# Next free plain KEM ID: 0x0244, p-hybrid: 0x2F44, X-hybrid: 0x2FB0 +# Next free plain KEM ID: 0x0247, p-hybrid: 0x2F47, X-hybrid: 0x2FB2 kems: - family: 'FrodoKEM' @@ -297,29 +297,62 @@ kems: - family: 'HQC' name_group: 'hqc128' - nid: '0x022C' - nid_hybrid: '0x2F2C' + nid: '0x0244' + nid_hybrid: '0x2F44' oqs_alg: 'OQS_KEM_alg_hqc_128' extra_nids: current: - hybrid_group: "x25519" + nid: '0x2FB0' + old: + - implementation_version: NIST Round 3 submission + nist-round: 3 + nid: '0x022C' + - implementation_version: NIST Round 3 submission + nist-round: 3 + hybrid_group: secp256_r1 + nid: '0x2F2C' + - implementation_version: NIST Round 3 submission + nist-round: 3 + hybrid_group: x25519 nid: '0x2FAC' - family: 'HQC' name_group: 'hqc192' - nid: '0x022D' - nid_hybrid: '0x2F2D' + nid: '0x0245' + nid_hybrid: '0x2F45' oqs_alg: 'OQS_KEM_alg_hqc_192' extra_nids: current: - hybrid_group: "x448" + nid: '0x2FB1' + old: + - implementation_version: NIST Round 3 submission + nist-round: 3 + nid: '0x022D' + - implementation_version: NIST Round 3 submission + nist-round: 3 + hybrid_group: secp384_r1 + nid: '0x2F2D' + - implementation_version: NIST Round 3 submission + nist-round: 3 + hybrid_group: x448 nid: '0x2FAD' - family: 'HQC' name_group: 'hqc256' - nid: '0x022E' - nid_hybrid: '0x2F2E' + nid: '0x0246' + nid_hybrid: '0x2F46' oqs_alg: 'OQS_KEM_alg_hqc_256' + extra_nids: + old: + - implementation_version: NIST Round 3 submission + nist-round: 3 + nid: '0x022E' + - implementation_version: NIST Round 3 submission + nist-round: 3 + hybrid_group: secp521_r1 + nid: '0x2F2E' kem_nid_end: '0x0250' kem_nid_hybrid_end: '0x2FFF' diff --git a/oqs-template/oqs-kem-info.md b/oqs-template/oqs-kem-info.md index d45c8a1e..d85fca20 100644 --- a/oqs-template/oqs-kem-info.md +++ b/oqs-template/oqs-kem-info.md @@ -77,3 +77,11 @@ | HQC | NIST Round 3 submission | hqc192 | 3 | 3 | 0x2FAD | x448 | | HQC | NIST Round 3 submission | hqc256 | 3 | 5 | 0x022E | | | HQC | NIST Round 3 submission | hqc256 | 3 | 5 | 0x2F2E | secp521_r1 | +| HQC | 2023-04-30 | hqc128 | 4 | 1 | 0x0244 | | +| HQC | 2023-04-30 | hqc128 | 4 | 1 | 0x2F44 | secp256_r1 | +| HQC | 2023-04-30 | hqc128 | 4 | 1 | 0x2FB0 | x25519 | +| HQC | 2023-04-30 | hqc192 | 4 | 3 | 0x0245 | | +| HQC | 2023-04-30 | hqc192 | 4 | 3 | 0x2F45 | secp384_r1 | +| HQC | 2023-04-30 | hqc192 | 4 | 3 | 0x2FB1 | x448 | +| HQC | 2023-04-30 | hqc256 | 4 | 5 | 0x0246 | | +| HQC | 2023-04-30 | hqc256 | 4 | 5 | 0x2F46 | secp521_r1 | diff --git a/oqsprov/oqsprov_capabilities.c b/oqsprov/oqsprov_capabilities.c index 001dd419..6255b041 100644 --- a/oqsprov/oqsprov_capabilities.c +++ b/oqsprov/oqsprov_capabilities.c @@ -81,17 +81,17 @@ static OQS_GROUP_CONSTANTS oqs_group_list[] = { {0x0243, 256, TLS1_3_VERSION, 0, -1, -1, 1}, {0x2F43, 256, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x022C, 128, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x0244, 128, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x2F2C, 128, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x2FAC, 128, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x022D, 192, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x2F44, 128, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x2FB0, 128, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x0245, 192, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x2F2D, 192, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x2FAD, 192, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x022E, 256, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x2F45, 192, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x2FB1, 192, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x0246, 256, TLS1_3_VERSION, 0, -1, -1, 1}, - {0x2F2E, 256, TLS1_3_VERSION, 0, -1, -1, 1}, + {0x2F46, 256, TLS1_3_VERSION, 0, -1, -1, 1}, ///// OQS_TEMPLATE_FRAGMENT_GROUP_ASSIGNMENTS_END };