Skip to content

Commit

Permalink
Update internal IANA values of PQ SupportedGroups (aws#2235)
Browse files Browse the repository at this point in the history
### Issues:
N/A

### Description of changes: 
Pulls in the latest IANA SupportedGroup identifiers from draft
RFC's/IANA.
See:
https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8

### Call-outs:
The IANA values of `SSL_GROUP_MLKEM768` and `SSL_GROUP_MLKEM1024`
changed. This PR to change their values is safe because AWS-LC does not
support negotiating ML-KEM groups as standalone, only as hybrid when
combined with ECDH. These standalone ML-KEM IANA values were never
sent/received over the wire during any TLS handshakes by AWS-LC.

### Testing:
Unit Tests. 

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and the ISC license.
  • Loading branch information
alexw91 authored Mar 7, 2025
1 parent 51c6c84 commit d59fbda
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions include/openssl/ssl.h
Original file line number Diff line number Diff line change
Expand Up @@ -2696,13 +2696,11 @@ OPENSSL_EXPORT int SSL_set1_groups_list(SSL *ssl, const char *groups);
// https://datatracker.ietf.org/doc/html/draft-tls-westerbaan-xyber768d00
#define SSL_GROUP_X25519_KYBER768_DRAFT00 0x6399

// SSL_GROUP_SECP256R1_MLKEM768 is defined at
// The following are defined at
// https://datatracker.ietf.org/doc/html/draft-kwiatkowski-tls-ecdhe-mlkem.html
#define SSL_GROUP_SECP256R1_MLKEM768 0x11EB

// SSL_GROUP_X25519_MLKEM768 is defined at
// https://datatracker.ietf.org/doc/html/draft-kwiatkowski-tls-ecdhe-mlkem.html
#define SSL_GROUP_X25519_MLKEM768 0x11EC
#define SSL_GROUP_X25519_MLKEM768 0x11EC
#define SSL_GROUP_SECP384R1_MLKEM1024 0x11ED

// The following PQ and hybrid group IDs are not yet standardized. Current IDs
// are driven by community consensus and are defined at:
Expand All @@ -2713,8 +2711,9 @@ OPENSSL_EXPORT int SSL_set1_groups_list(SSL *ssl, const char *groups);

// The following are defined at
// https://datatracker.ietf.org/doc/html/draft-connolly-tls-mlkem-key-agreement.html
#define SSL_GROUP_MLKEM768 0x0768
#define SSL_GROUP_MLKEM1024 0x1024
#define SSL_GROUP_MLKEM512 0x0200
#define SSL_GROUP_MLKEM768 0x0201
#define SSL_GROUP_MLKEM1024 0x0202

// SSL_get_group_id returns the ID of the group used by |ssl|'s most recently
// completed handshake, or 0 if not applicable.
Expand Down

0 comments on commit d59fbda

Please sign in to comment.