Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions ssl/ssl_ciphers_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,22 @@ static const CurveTest kCurveTests[] = {
SSL_GROUP_SECP256R1_MLKEM768,
},
},
{
"MLKEM512:MLKEM768:MLKEM1024",
{
SSL_GROUP_MLKEM512,
SSL_GROUP_MLKEM768,
SSL_GROUP_MLKEM1024,
},
},
{
"ML-KEM-512:ML-KEM-768:ML-KEM-1024",
{
SSL_GROUP_MLKEM512,
SSL_GROUP_MLKEM768,
SSL_GROUP_MLKEM1024,
},
},
};


Expand Down
28 changes: 28 additions & 0 deletions ssl/ssl_hybrid_handshake_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,34 @@ static const HybridHandshakeTest kHybridHandshakeTests[] = {
false,
},

// Pure MLKEM at all key sizes
{
"MLKEM512",
TLS1_3_VERSION,
"MLKEM512",
TLS1_3_VERSION,
SSL_GROUP_MLKEM512,
false,
},

{
"MLKEM768",
TLS1_3_VERSION,
"MLKEM768",
TLS1_3_VERSION,
SSL_GROUP_MLKEM768,
false,
},

{
"MLKEM1024",
TLS1_3_VERSION,
"MLKEM1024",
TLS1_3_VERSION,
SSL_GROUP_MLKEM1024,
false,
},

// The client's preferred hybrid group should be negotiated when also
// supported by the server, even if the server "prefers"/supports other
// groups.
Expand Down
9 changes: 5 additions & 4 deletions ssl/ssl_key_share.cc
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,9 @@ CONSTEXPR_ARRAY NamedGroup kNamedGroups[] = {
{NID_SecP256r1MLKEM768, SSL_GROUP_SECP256R1_MLKEM768, "SecP256r1MLKEM768", ""},
{NID_X25519MLKEM768, SSL_GROUP_X25519_MLKEM768, "X25519MLKEM768", ""},
{NID_SecP384r1MLKEM1024, SSL_GROUP_SECP384R1_MLKEM1024, "SecP384r1MLKEM1024", ""},
{NID_MLKEM512, SSL_GROUP_MLKEM512, "MLKEM512", "ML-KEM-512"},
{NID_MLKEM768, SSL_GROUP_MLKEM768, "MLKEM768", "ML-KEM-768"},
{NID_MLKEM1024, SSL_GROUP_MLKEM1024, "MLKEM1024", "ML-KEM-1024"},
};

CONSTEXPR_ARRAY uint16_t kPQGroups[] = {
Expand Down Expand Up @@ -789,13 +792,11 @@ UniquePtr<SSLKeyShare> SSLKeyShare::Create(uint16_t group_id) {
return MakeUnique<HybridKeyShare>(SSL_GROUP_SECP256R1_KYBER768_DRAFT00);
case SSL_GROUP_X25519_KYBER768_DRAFT00:
return MakeUnique<HybridKeyShare>(SSL_GROUP_X25519_KYBER768_DRAFT00);
case SSL_GROUP_MLKEM512:
return MakeUnique<KEMKeyShare>(NID_MLKEM512, SSL_GROUP_MLKEM512);
case SSL_GROUP_MLKEM768:
// MLKEM768, as a standalone group, is not a NamedGroup; however, we
// need to create MLKEM768 key shares as part of hybrid groups.
return MakeUnique<KEMKeyShare>(NID_MLKEM768, SSL_GROUP_MLKEM768);
case SSL_GROUP_MLKEM1024:
// MLKEM1024, as a standalone group, is not a NamedGroup; however, we
// need to create MLKEM1024 key shares as part of hybrid groups.
return MakeUnique<KEMKeyShare>(NID_MLKEM1024, SSL_GROUP_MLKEM1024);
case SSL_GROUP_SECP256R1_MLKEM768:
return MakeUnique<HybridKeyShare>(SSL_GROUP_SECP256R1_MLKEM768);
Expand Down
Loading