]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
algorithms: rename GNUTLS_PK_ML_KEM_* to GNUTLS_PK_MLKEM*
authorDaiki Ueno <ueno@gnu.org>
Tue, 14 Jan 2025 02:12:34 +0000 (11:12 +0900)
committerDaiki Ueno <ueno@gnu.org>
Tue, 14 Jan 2025 02:29:51 +0000 (11:29 +0900)
To be consistent with the naming of hybrid groups, omit underscores in
the enum definition, while keeping hyphens in human readable names.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
NEWS
lib/algorithms.h
lib/algorithms/groups.c
lib/algorithms/publickey.c
lib/ext/key_share.c
lib/includes/gnutls/gnutls.h.in
lib/nettle/pk.c
tests/privkey-keygen.c

diff --git a/NEWS b/NEWS
index 7a518ba2fbc5f62ab4f640bc76beb119379e7819..86cc5b5cd5d296276353ef9c6b953bbbae152c46 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,12 @@ See the end for copying conditions.
    currently marked as experimental and can only be enabled when
    compiled with --with-liboqs. Contributed by David Dudas.
 
+** libgnutls: Support for ML-KEM-1024 key encapsulation mechanism
+   The support for ML-KEM post-quantum key encapsulation mechanisms
+   has been extended to cover ML-KEM-1024, in addition to ML-KEM-768.
+   MLKEM1024 is only offered as SecP384r1MLKEM1024 hybrid as per
+   draft-kwiatkowski-tls-ecdhe-mlkem-03.
+
 ** API and ABI modifications:
 GNUTLS_PK_ML_DSA_44: New enum member of gnutls_pk_algorithm_t
 GNUTLS_PK_ML_DSA_65: New enum member of gnutls_pk_algorithm_t
@@ -21,13 +27,6 @@ GNUTLS_PK_ML_DSA_87: New enum member of gnutls_pk_algorithm_t
 GNUTLS_SIGN_ML_DSA_44: New enum member of gnutls_sign_algorithm_t
 GNUTLS_SIGN_ML_DSA_65: New enum member of gnutls_sign_algorithm_t
 GNUTLS_SIGN_ML_DSA_87: New enum member of gnutls_sign_algorithm_t
-GNUTLS_PK_ML_KEM_768: Renamed from GNUTLS_PK_MLKEM768; compatibility macro is provided
-** libgnutls: Support for ML-KEM-1024 key encapsulation mechanism
-   The support for ML-KEM post-quantum key encapsulation mechanisms
-   has been extended to cover ML-KEM-1024, in addition to ML-KEM-768.
-   MLKEM1024 is only offered as SecP384r1MLKEM1024 hybrid as per
-   draft-kwiatkowski-tls-ecdhe-mlkem-03.
-
 
 * Version 3.8.8 (released 2024-11-05)
 
index cf06185353489c6e0aa34eac5646b394fdcf22ee..5b0db514b8b5d4e4666fc1f8778baf3edae8e377 100644 (file)
@@ -52,8 +52,8 @@
 #define IS_ECDHX(x) \
        (((x) == GNUTLS_PK_ECDH_X25519) || ((x) == GNUTLS_PK_ECDH_X448))
 
-#define IS_KEM(x)                                                           \
-       (((x) == GNUTLS_PK_ML_KEM_768) || ((x) == GNUTLS_PK_ML_KEM_1024) || \
+#define IS_KEM(x)                                                       \
+       (((x) == GNUTLS_PK_MLKEM768) || ((x) == GNUTLS_PK_MLKEM1024) || \
         ((x) == GNUTLS_PK_EXP_KYBER768))
 
 #define IS_ML_DSA(x)                                                     \
index 42252e31744d0b358d0f0063b602946bd52a101c..be24b86523f09e7917c4ac2cb0722a76e60a4105 100644 (file)
@@ -176,13 +176,13 @@ static const gnutls_group_entry_st supported_groups[] = {
        {
                .name = "MLKEM768",
                .id = GNUTLS_GROUP_EXP_MLKEM768,
-               .pk = GNUTLS_PK_ML_KEM_768,
+               .pk = GNUTLS_PK_MLKEM768,
                /* absense of .tls_id means that this group alone cannot be used in TLS */
        },
        {
                .name = "MLKEM1024",
                .id = GNUTLS_GROUP_EXP_MLKEM1024,
-               .pk = GNUTLS_PK_ML_KEM_1024,
+               .pk = GNUTLS_PK_MLKEM1024,
                /* absense of .tls_id means that this group alone cannot be used in TLS */
        },
        {
index b1f918105694ad177a6b87a25e35b81f5b7aebd3..6b2325f159990eddada859442ff35f1e0672f3dd 100644 (file)
@@ -204,11 +204,11 @@ static const gnutls_pk_entry pk_algorithms[] = {
          .curve = GNUTLS_ECC_CURVE_X448 },
        { .name = "ML-KEM-768",
          .oid = NULL,
-         .id = GNUTLS_PK_ML_KEM_768,
+         .id = GNUTLS_PK_MLKEM768,
          .curve = GNUTLS_ECC_CURVE_INVALID },
        { .name = "ML-KEM-1024",
          .oid = NULL,
-         .id = GNUTLS_PK_ML_KEM_1024,
+         .id = GNUTLS_PK_MLKEM1024,
          .curve = GNUTLS_ECC_CURVE_INVALID },
 /* Hidden behind HAVE_LIBOQS as it will be removed in the future.
         */
index 405baba2502018be71ada4b3780aca1612493e46..20cb7aa02f93e335cc9a4bd24735e787cfa29d7a 100644 (file)
@@ -186,8 +186,8 @@ static int client_gen_key_share_single(gnutls_session_t session,
                ret = 0;
                break;
 
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768:
                gnutls_pk_params_release(&session->key.kshare.kem_params);
                gnutls_pk_params_init(&session->key.kshare.kem_params);
@@ -323,8 +323,8 @@ static int server_gen_key_share_single(gnutls_session_t session,
                ret = 0;
                break;
 
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768:
                ret = gnutls_buffer_append_data(
                        extdata, session->key.kshare.kem_params.raw_pub.data,
@@ -569,14 +569,14 @@ static int server_use_key_share_single(gnutls_session_t session,
                return 0;
 
        case GNUTLS_PK_EXP_KYBER768:
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
                switch (group->pk) {
                case GNUTLS_PK_EXP_KYBER768:
-               case GNUTLS_PK_ML_KEM_768:
+               case GNUTLS_PK_MLKEM768:
                        public_key_size = KYBER768_PUBLIC_KEY_SIZE;
                        break;
-               case GNUTLS_PK_ML_KEM_1024:
+               case GNUTLS_PK_MLKEM1024:
                        public_key_size = MLKEM1024_PUBLIC_KEY_SIZE;
                        break;
                default:
@@ -781,14 +781,14 @@ static int client_use_key_share_single(gnutls_session_t session,
                return 0;
 
        case GNUTLS_PK_EXP_KYBER768:
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
                switch (group->pk) {
                case GNUTLS_PK_EXP_KYBER768:
-               case GNUTLS_PK_ML_KEM_768:
+               case GNUTLS_PK_MLKEM768:
                        public_key_size = KYBER768_CIPHERTEXT_SIZE;
                        break;
-               case GNUTLS_PK_ML_KEM_1024:
+               case GNUTLS_PK_MLKEM1024:
                        public_key_size = MLKEM1024_CIPHERTEXT_SIZE;
                        break;
                default:
index 2e3aceb907534e8b2ad4ae07680d1420c5fd9556..b23f55db19c2937af1f067f24d54928338ff69ed 100644 (file)
@@ -874,7 +874,6 @@ typedef enum gnutls_certificate_print_formats {
 #define GNUTLS_PK_EC GNUTLS_PK_ECDSA
 
 #define GNUTLS_PK_ECDHX GNUTLS_PK_ECDH_X25519
-#define GNUTLS_PK_MLKEM768 GNUTLS_PK_ML_KEM_768
 
 /**
  * gnutls_pk_algorithm_t:
@@ -892,8 +891,8 @@ typedef enum gnutls_certificate_print_formats {
  * @GNUTLS_PK_GOST_12_512: GOST R 34.10-2012 algorithm, 512-bit key per rfc7091.
  * @GNUTLS_PK_ECDH_X448: Elliptic curve algorithm, restricted to ECDH as per rfc7748.
  * @GNUTLS_PK_EDDSA_ED448: Edwards curve Digital signature algorithm. Used with SHAKE256 on signatures.
- * @GNUTLS_PK_ML_KEM_768: ML-KEM-768 key encapsulation algorithm as per FIPS 203.
- * @GNUTLS_PK_ML_KEM_1024: ML-KEM-1024 key encapsulation algorithm as per FIPS 203.
+ * @GNUTLS_PK_MLKEM768: ML-KEM-768 key encapsulation algorithm as per FIPS 203.
+ * @GNUTLS_PK_MLKEM1024: ML-KEM-1024 key encapsulation algorithm as per FIPS 203.
  * @GNUTLS_PK_ML_DSA_44: ML-DSA-44 digital signature algorithm as per FIPS 204.
  * @GNUTLS_PK_ML_DSA_65: ML-DSA-65 digital signature algorithm as per FIPS 204.
  * @GNUTLS_PK_ML_DSA_87: ML-DSA-87 digital signature algorithm as per FIPS 204.
@@ -915,12 +914,12 @@ typedef enum {
        GNUTLS_PK_ECDH_X448 = 11,
        GNUTLS_PK_EDDSA_ED448 = 12,
        GNUTLS_PK_RSA_OAEP = 13,
-       GNUTLS_PK_ML_KEM_768 = 14,
+       GNUTLS_PK_MLKEM768 = 14,
        GNUTLS_PK_ML_DSA_44 = 15,
        GNUTLS_PK_ML_DSA_65 = 16,
        GNUTLS_PK_ML_DSA_87 = 17,
-       GNUTLS_PK_ML_KEM_1024 = 18,
-       GNUTLS_PK_MAX = GNUTLS_PK_ML_KEM_1024,
+       GNUTLS_PK_MLKEM1024 = 18,
+       GNUTLS_PK_MAX = GNUTLS_PK_MLKEM1024,
 
        /* Experimental algorithms */
        GNUTLS_PK_EXP_KYBER768 = 256,
index 420bfddcb866d48f69b6e91e40acd9d7ff063a57..271d02161fc8a443db91efe3093fb7d5e7b119f0 100644 (file)
@@ -695,11 +695,11 @@ cleanup:
 static const char *pk_to_liboqs_algo(gnutls_pk_algorithm_t algo)
 {
        switch (algo) {
-       case GNUTLS_PK_ML_KEM_768:
+       case GNUTLS_PK_MLKEM768:
                return OQS_KEM_alg_ml_kem_768;
        case GNUTLS_PK_EXP_KYBER768:
                return OQS_KEM_alg_kyber_768;
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM1024:
                return OQS_KEM_alg_ml_kem_1024;
        case GNUTLS_PK_ML_DSA_44:
                return OQS_SIG_alg_ml_dsa_44;
@@ -723,8 +723,8 @@ static int _wrap_nettle_pk_encaps(gnutls_pk_algorithm_t algo,
 
        switch (algo) {
 #ifdef HAVE_LIBOQS
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768: {
                OQS_KEM *kem = NULL;
                const char *algo_name;
@@ -792,8 +792,8 @@ static int _wrap_nettle_pk_decaps(gnutls_pk_algorithm_t algo,
 
        switch (algo) {
 #ifdef HAVE_LIBOQS
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768: {
                OQS_KEM *kem = NULL;
                const char *algo_name;
@@ -2486,8 +2486,8 @@ static int _wrap_nettle_pk_exists(gnutls_pk_algorithm_t pk)
        case GNUTLS_PK_EDDSA_ED448:
                return 1;
 #ifdef HAVE_LIBOQS
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768: {
                const char *algo_name;
 
@@ -2721,7 +2721,7 @@ static int wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
        case GNUTLS_PK_GOST_12_256:
        case GNUTLS_PK_GOST_12_512:
 #endif
-       case GNUTLS_PK_ML_KEM_768:
+       case GNUTLS_PK_MLKEM768:
        case GNUTLS_PK_ML_DSA_44:
        case GNUTLS_PK_ML_DSA_65:
        case GNUTLS_PK_ML_DSA_87:
@@ -3153,8 +3153,8 @@ static int pct_test(gnutls_pk_algorithm_t algo,
        case GNUTLS_PK_ECDH_X448:
                break;
 #ifdef HAVE_LIBOQS
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768: {
                const char *algo_name;
 
@@ -3919,8 +3919,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
                break;
        }
 #ifdef HAVE_LIBOQS
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768: {
                OQS_KEM *kem = NULL;
                const char *algo_name;
@@ -4290,8 +4290,8 @@ static int wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
                break;
        }
 #ifdef HAVE_LIBOQS
-       case GNUTLS_PK_ML_KEM_768:
-       case GNUTLS_PK_ML_KEM_1024:
+       case GNUTLS_PK_MLKEM768:
+       case GNUTLS_PK_MLKEM1024:
        case GNUTLS_PK_EXP_KYBER768: {
                const char *algo_name;
 
index b3e22d3c32213e7081573dd563a9673e80161e1d..d03625399209694757c58eec5fb256f5f6c819e7 100644 (file)
@@ -162,8 +162,8 @@ void doit(void)
 #endif
                            algorithm == GNUTLS_PK_ECDH_X25519 ||
                            algorithm == GNUTLS_PK_ECDH_X448 ||
-                           algorithm == GNUTLS_PK_ML_KEM_768 ||
-                           algorithm == GNUTLS_PK_ML_KEM_1024)
+                           algorithm == GNUTLS_PK_MLKEM768 ||
+                           algorithm == GNUTLS_PK_MLKEM1024)
                                continue;
 
                        if (algorithm == GNUTLS_PK_GOST_01 ||