Skip to content

Commit cbd4cf3

Browse files
committed
Align Falcon TLS 1.3 SignatureAlgorithm codepoints with oqs-provider
Move Falcon-512 from 0xFEAE to 0xFED7 and Falcon-1024 from 0xFEB1 to 0xFEDA, the codepoints oqs-provider registers and that any future Falcon-capable library will almost certainly inherit. This removes the need to set OQS_CODEPOINT_FALCON512 / OQS_CODEPOINT_FALCON1024 on the oqs-provider side for wolfSSL <-> openssl TLS interop. Hybrid codepoints shift in lockstep: * HYBRID_P256_FALCON_LEVEL1_SA_MINOR 0xAF -> 0xD8 * HYBRID_RSA3072_FALCON_LEVEL1_SA_MINOR 0xB0 -> 0xD9 * HYBRID_P521_FALCON_LEVEL5_SA_MINOR 0xB2 -> 0xDB All four Falcon 1.3 handshake combinations (wolfSSL <-> openssl s_server/s_client, levels 1 and 5) now succeed out of the box with no environment overrides. Breaking change note: existing wolfSSL <-> wolfSSL Falcon-authenticated handshakes that negotiated the old 0xFEAE / 0xFEB1 codepoints will stop working. Consistent with the OID migration in the same PR, we're committing to matching the ecosystem rather than preserving prior wolfSSL wire values. All of these codepoints live under the experimental 0xFExx range and will change once FN-DSA gets an official IANA allocation.
1 parent 2f737e8 commit cbd4cf3

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

src/tls13.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8426,9 +8426,10 @@ static WC_INLINE void EncodeSigAlg(const WOLFSSL * ssl, byte hashAlgo,
84268426
#define HYBRID_RSA3072_DILITHIUM_LEVEL2_SA_MINOR 0xA2
84278427
#define HYBRID_P384_DILITHIUM_LEVEL3_SA_MINOR 0xA4
84288428
#define HYBRID_P521_DILITHIUM_LEVEL5_SA_MINOR 0xA6
8429-
#define HYBRID_P256_FALCON_LEVEL1_SA_MINOR 0xAF
8430-
#define HYBRID_RSA3072_FALCON_LEVEL1_SA_MINOR 0xB0
8431-
#define HYBRID_P521_FALCON_LEVEL5_SA_MINOR 0xB2
8429+
/* Falcon hybrid codepoints aligned with oqs-provider. */
8430+
#define HYBRID_P256_FALCON_LEVEL1_SA_MINOR 0xD8
8431+
#define HYBRID_RSA3072_FALCON_LEVEL1_SA_MINOR 0xD9
8432+
#define HYBRID_P521_FALCON_LEVEL5_SA_MINOR 0xDB
84328433

84338434
/* Custom defined ones for PQC first */
84348435
#define HYBRID_DILITHIUM_LEVEL2_P256_SA_MINOR 0xD1

wolfssl/internal.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1765,11 +1765,14 @@ enum Misc {
17651765
FALCON_SA_MAJOR = 0xFE,/* Most significant byte used with falcon sig algs */
17661766
DILITHIUM_SA_MAJOR = 0x09,/* Most significant byte used with dilithium sig algs */
17671767

1768-
/* These values for falcon match what OQS has defined. */
1768+
/* Falcon TLS SignatureAlgorithm codepoints; aligned with the values
1769+
* oqs-provider registers (0xFED7 and 0xFEDA). All Falcon-related TLS
1770+
* codepoints live under the experimental 0xFExx range reserved for
1771+
* OQS until FN-DSA gets an official IANA allocation. */
17691772
FALCON_LEVEL1_SA_MAJOR = 0xFE,
1770-
FALCON_LEVEL1_SA_MINOR = 0xAE,
1773+
FALCON_LEVEL1_SA_MINOR = 0xD7,
17711774
FALCON_LEVEL5_SA_MAJOR = 0xFE,
1772-
FALCON_LEVEL5_SA_MINOR = 0xB1,
1775+
FALCON_LEVEL5_SA_MINOR = 0xDA,
17731776

17741777
/* these values for MLDSA (Dilithium) correspond to what is proposed in the
17751778
* IETF. */

0 commit comments

Comments
 (0)