]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
ecx/ml-kem: add security category support
authorPauli <ppzgs1@gmail.com>
Tue, 6 May 2025 03:34:33 +0000 (13:34 +1000)
committerPauli <ppzgs1@gmail.com>
Tue, 27 May 2025 08:01:44 +0000 (18:01 +1000)
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/27571)

providers/implementations/keymgmt/mlx_kmgmt.c

index bea8783276093b0efcbd4108f47867fc4166e184..3c00aa2f0dfd24f4fb0b5c2ec27736f5f0863eeb 100644 (file)
@@ -478,6 +478,7 @@ static const OSSL_PARAM *mlx_kem_gettable_params(void *provctx)
         OSSL_PARAM_int(OSSL_PKEY_PARAM_BITS, NULL),
         OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_BITS, NULL),
         OSSL_PARAM_int(OSSL_PKEY_PARAM_MAX_SIZE, NULL),
+        OSSL_PARAM_int(OSSL_PKEY_PARAM_SECURITY_CATEGORY, NULL),
         OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY, NULL, 0),
         OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PRIV_KEY, NULL, 0),
         OSSL_PARAM_END
@@ -510,6 +511,12 @@ static int mlx_kem_get_params(void *vkey, OSSL_PARAM params[])
         if (!OSSL_PARAM_set_int(p, key->minfo->secbits))
             return 0;
 
+    /* The reported security category are those of the ML-KEM key */
+    p = OSSL_PARAM_locate(params, OSSL_PKEY_PARAM_SECURITY_CATEGORY);
+    if (p != NULL)
+        if (!OSSL_PARAM_set_int(p, key->minfo->security_category))
+            return 0;
+
     /* The ciphertext sizes are additive */
     p = OSSL_PARAM_locate(params, OSSL_PKEY_PARAM_MAX_SIZE);
     if (p != NULL)