]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
keymgmt: Use include file for generated code
authorSimo Sorce <simo@redhat.com>
Thu, 16 Oct 2025 19:48:08 +0000 (15:48 -0400)
committerDmitry Belyavskiy <beldmit@gmail.com>
Mon, 20 Oct 2025 07:45:53 +0000 (09:45 +0200)
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28838)

22 files changed:
.gitignore
build.info
providers/implementations/keymgmt/dh_kmgmt.c [moved from providers/implementations/keymgmt/dh_kmgmt.c.in with 87% similarity]
providers/implementations/keymgmt/dh_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/dsa_kmgmt.c [moved from providers/implementations/keymgmt/dsa_kmgmt.c.in with 89% similarity]
providers/implementations/keymgmt/dsa_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/ecx_kmgmt.c [moved from providers/implementations/keymgmt/ecx_kmgmt.c.in with 93% similarity]
providers/implementations/keymgmt/ecx_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/lms_kmgmt.c [moved from providers/implementations/keymgmt/lms_kmgmt.c.in with 95% similarity]
providers/implementations/keymgmt/lms_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/mac_legacy_kmgmt.c [moved from providers/implementations/keymgmt/mac_legacy_kmgmt.c.in with 90% similarity]
providers/implementations/keymgmt/mac_legacy_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/ml_dsa_kmgmt.c [moved from providers/implementations/keymgmt/ml_dsa_kmgmt.c.in with 93% similarity]
providers/implementations/keymgmt/ml_dsa_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/ml_kem_kmgmt.c [moved from providers/implementations/keymgmt/ml_kem_kmgmt.c.in with 94% similarity]
providers/implementations/keymgmt/ml_kem_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/mlx_kmgmt.c [moved from providers/implementations/keymgmt/mlx_kmgmt.c.in with 95% similarity]
providers/implementations/keymgmt/mlx_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/slh_dsa_kmgmt.c [moved from providers/implementations/keymgmt/slh_dsa_kmgmt.c.in with 92% similarity]
providers/implementations/keymgmt/slh_dsa_kmgmt.inc.in [new file with mode: 0644]
providers/implementations/keymgmt/template_kmgmt.c [moved from providers/implementations/keymgmt/template_kmgmt.c.in with 90% similarity]
providers/implementations/keymgmt/template_kmgmt.inc.in [new file with mode: 0644]

index f5fd9e77aa1aaf6ce9b9c9d5961a57d257351aec..86ce3c69f81044058ff8bfc3ec0e15151a1b8589 100644 (file)
@@ -116,21 +116,21 @@ providers/implementations/kem/ec_kem.inc
 providers/implementations/kem/ecx_kem.inc
 providers/implementations/kem/ml_kem_kem.inc
 providers/implementations/kem/rsa_kem.inc
-providers/implementations/keymgmt/ml_dsa_kmgmt.c
-providers/implementations/keymgmt/ml_kem_kmgmt.c
-providers/implementations/keymgmt/mlx_kmgmt.c
+providers/implementations/keymgmt/ml_dsa_kmgmt.inc
+providers/implementations/keymgmt/ml_kem_kmgmt.inc
+providers/implementations/keymgmt/mlx_kmgmt.inc
 providers/implementations/signature/dsa_sig.c
 providers/implementations/signature/ecdsa_sig.c
-providers/implementations/keymgmt/dh_kmgmt.c
-providers/implementations/keymgmt/dsa_kmgmt.c
-providers/implementations/keymgmt/ecx_kmgmt.c
-providers/implementations/keymgmt/lms_kmgmt.c
-providers/implementations/keymgmt/mac_legacy_kmgmt.c
-providers/implementations/keymgmt/ml_dsa_kmgmt.c
-providers/implementations/keymgmt/ml_kem_kmgmt.c
-providers/implementations/keymgmt/mlx_kmgmt.c
-providers/implementations/keymgmt/slh_dsa_kmgmt.c
-providers/implementations/keymgmt/template_kmgmt.c
+providers/implementations/keymgmt/dh_kmgmt.inc
+providers/implementations/keymgmt/dsa_kmgmt.inc
+providers/implementations/keymgmt/ecx_kmgmt.inc
+providers/implementations/keymgmt/lms_kmgmt.inc
+providers/implementations/keymgmt/mac_legacy_kmgmt.inc
+providers/implementations/keymgmt/ml_dsa_kmgmt.inc
+providers/implementations/keymgmt/ml_kem_kmgmt.inc
+providers/implementations/keymgmt/mlx_kmgmt.inc
+providers/implementations/keymgmt/slh_dsa_kmgmt.inc
+providers/implementations/keymgmt/template_kmgmt.inc
 providers/implementations/signature/eddsa_sig.c
 providers/implementations/signature/ml_dsa_sig.c
 providers/implementations/signature/rsa_sig.c
index be9fb3a5298ea980ca31786203ad4f147fffad64..c22fb273eccca69a852bb6728416d4de0dfb3e90 100644 (file)
@@ -78,16 +78,16 @@ DEPEND[]=include/openssl/asn1.h \
          providers/implementations/kem/ecx_kem.inc \
          providers/implementations/kem/ml_kem_kem.inc \
          providers/implementations/kem/rsa_kem.inc \
-         providers/implementations/keymgmt/dh_kmgmt.c \
-         providers/implementations/keymgmt/dsa_kmgmt.c \
-         providers/implementations/keymgmt/ecx_kmgmt.c \
-         providers/implementations/keymgmt/lms_kmgmt.c \
-         providers/implementations/keymgmt/mac_legacy_kmgmt.c \
-         providers/implementations/keymgmt/ml_dsa_kmgmt.c \
-         providers/implementations/keymgmt/ml_kem_kmgmt.c \
-         providers/implementations/keymgmt/mlx_kmgmt.c \
-         providers/implementations/keymgmt/slh_dsa_kmgmt.c \
-         providers/implementations/keymgmt/template_kmgmt.c \
+         providers/implementations/keymgmt/dh_kmgmt.inc \
+         providers/implementations/keymgmt/dsa_kmgmt.inc \
+         providers/implementations/keymgmt/ecx_kmgmt.inc \
+         providers/implementations/keymgmt/lms_kmgmt.inc \
+         providers/implementations/keymgmt/mac_legacy_kmgmt.inc \
+         providers/implementations/keymgmt/ml_dsa_kmgmt.inc \
+         providers/implementations/keymgmt/ml_kem_kmgmt.inc \
+         providers/implementations/keymgmt/mlx_kmgmt.inc \
+         providers/implementations/keymgmt/slh_dsa_kmgmt.inc \
+         providers/implementations/keymgmt/template_kmgmt.inc \
          providers/implementations/signature/dsa_sig.c \
          providers/implementations/signature/ecdsa_sig.c \
          providers/implementations/signature/eddsa_sig.c \
@@ -196,16 +196,16 @@ DEPEND[providers/implementations/asymciphers/rsa_enc.inc \
        providers/implementations/kem/ecx_kem.inc \
        providers/implementations/kem/ml_kem_kem.inc \
        providers/implementations/kem/rsa_kem.inc \
-       providers/implementations/keymgmt/dh_kmgmt.c \
-       providers/implementations/keymgmt/dsa_kmgmt.c \
-       providers/implementations/keymgmt/ecx_kmgmt.c \
-       providers/implementations/keymgmt/lms_kmgmt.c \
-       providers/implementations/keymgmt/mac_legacy_kmgmt.c \
-       providers/implementations/keymgmt/ml_dsa_kmgmt.c \
-       providers/implementations/keymgmt/ml_kem_kmgmt.c \
-       providers/implementations/keymgmt/mlx_kmgmt.c \
-       providers/implementations/keymgmt/slh_dsa_kmgmt.c \
-       providers/implementations/keymgmt/template_kmgmt.c \
+       providers/implementations/keymgmt/dh_kmgmt.inc \
+       providers/implementations/keymgmt/dsa_kmgmt.inc \
+       providers/implementations/keymgmt/ecx_kmgmt.inc \
+       providers/implementations/keymgmt/lms_kmgmt.inc \
+       providers/implementations/keymgmt/mac_legacy_kmgmt.inc \
+       providers/implementations/keymgmt/ml_dsa_kmgmt.inc \
+       providers/implementations/keymgmt/ml_kem_kmgmt.inc \
+       providers/implementations/keymgmt/mlx_kmgmt.inc \
+       providers/implementations/keymgmt/slh_dsa_kmgmt.inc \
+       providers/implementations/keymgmt/template_kmgmt.inc \
        providers/implementations/signature/dsa_sig.c \
        providers/implementations/signature/ecdsa_sig.c \
        providers/implementations/signature/eddsa_sig.c \
@@ -311,26 +311,26 @@ GENERATE[providers/implementations/kem/ml_kem_kem.inc]=\
     providers/implementations/kem/ml_kem_kem.inc.in
 GENERATE[providers/implementations/kem/rsa_kem.inc]=\
     providers/implementations/kem/rsa_kem.inc.in
-GENERATE[providers/implementations/keymgmt/dh_kmgmt.c]=\
-    providers/implementations/keymgmt/dh_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/dsa_kmgmt.c]=\
-    providers/implementations/keymgmt/dsa_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/ecx_kmgmt.c]=\
-    providers/implementations/keymgmt/ecx_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/lms_kmgmt.c]=\
-    providers/implementations/keymgmt/lms_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/mac_legacy_kmgmt.c]=\
-    providers/implementations/keymgmt/mac_legacy_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/ml_dsa_kmgmt.c]=\
-    providers/implementations/keymgmt/ml_dsa_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/ml_kem_kmgmt.c]=\
-    providers/implementations/keymgmt/ml_kem_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/mlx_kmgmt.c]=\
-    providers/implementations/keymgmt/mlx_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/slh_dsa_kmgmt.c]=\
-    providers/implementations/keymgmt/slh_dsa_kmgmt.c.in
-GENERATE[providers/implementations/keymgmt/template_kmgmt.c]=\
-    providers/implementations/keymgmt/template_kmgmt.c.in
+GENERATE[providers/implementations/keymgmt/dh_kmgmt.inc]=\
+    providers/implementations/keymgmt/dh_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/dsa_kmgmt.inc]=\
+    providers/implementations/keymgmt/dsa_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/ecx_kmgmt.inc]=\
+    providers/implementations/keymgmt/ecx_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/lms_kmgmt.inc]=\
+    providers/implementations/keymgmt/lms_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/mac_legacy_kmgmt.inc]=\
+    providers/implementations/keymgmt/mac_legacy_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/ml_dsa_kmgmt.inc]=\
+    providers/implementations/keymgmt/ml_dsa_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/ml_kem_kmgmt.inc]=\
+    providers/implementations/keymgmt/ml_kem_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/mlx_kmgmt.inc]=\
+    providers/implementations/keymgmt/mlx_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/slh_dsa_kmgmt.inc]=\
+    providers/implementations/keymgmt/slh_dsa_kmgmt.inc.in
+GENERATE[providers/implementations/keymgmt/template_kmgmt.inc]=\
+    providers/implementations/keymgmt/template_kmgmt.inc.in
 GENERATE[providers/implementations/signature/dsa_sig.c]=\
     providers/implementations/signature/dsa_sig.c.in
 GENERATE[providers/implementations/signature/ecdsa_sig.c]=\
similarity index 87%
rename from providers/implementations/keymgmt/dh_kmgmt.c.in
rename to providers/implementations/keymgmt/dh_kmgmt.c
index 44e89999037a112f386f46f29f1752d5ac5b7b3d..7a95ac0d73a2a467fc64edd1740a8d12413c5e6f 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 /*
  * DH low level APIs are deprecated for public use, but still ok for
@@ -333,25 +330,26 @@ struct dh_params_st {
 
 #define dh_get_params_st dh_params_st
 
-{- produce_param_decoder('dh_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',               'bits',           'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',        'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',        'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',         'int'],
-                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpubkey',      'octet_string'],
-                          ['OSSL_PKEY_PARAM_FFC_P',              'ffp.p',          'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_Q',              'ffp.q',          'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_G',              'ffp.g',          'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_COFACTOR',       'ffp.cofactor',   'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_GINDEX',         'ffp.g_index',    'int'],
-                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',       'ffp.p_counter',  'int'],
-                          ['OSSL_PKEY_PARAM_FFC_H',              'ffp.h',          'int'],
-                          ['OSSL_PKEY_PARAM_DH_PRIV_LEN',        'privlen',        'int'],
-                          ['OSSL_PKEY_PARAM_FFC_SEED',           'ffp.seed',       'octet_string'],
-                          ['OSSL_PKEY_PARAM_GROUP_NAME',         'ffp.group_name', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',            'pubkey',         'BN'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'privkey',        'BN'],
-                         )); -}
+struct dh_gen_set_params_st {
+    OSSL_PARAM *type;
+    OSSL_PARAM *group_name;
+    OSSL_PARAM *privlen;
+    OSSL_PARAM *pbits;
+    OSSL_PARAM *qbits;      /* DHX only */
+    OSSL_PARAM *digest;     /* DHX only */
+    OSSL_PARAM *propq;      /* DHX only */
+    OSSL_PARAM *g_index;    /* DHX only */
+    OSSL_PARAM *seed;       /* DHX only */
+    OSSL_PARAM *p_counter;  /* DHX only */
+    OSSL_PARAM *h;          /* DHX only */
+    OSSL_PARAM *generator;  /* DH only */
+};
+
+#define dhx_gen_set_params_st dh_gen_set_params_st
+
+#define dh_gen_set_params_st dh_gen_set_params_st
+
+#include "providers/implementations/keymgmt/dh_kmgmt.inc"
 
 static int dh_get_params(void *key, OSSL_PARAM params[])
 {
@@ -392,10 +390,6 @@ static const OSSL_PARAM *dh_gettable_params(void *provctx)
     return dh_get_params_list;
 }
 
-{- produce_param_decoder('dh_set_params',
-                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpubkey', 'octet_string'],
-                         )); -}
-
 static const OSSL_PARAM *dh_settable_params(void *provctx)
 {
     return dh_set_params_list;
@@ -562,55 +556,6 @@ static int dh_set_gen_seed(struct dh_gen_ctx *gctx, unsigned char *seed,
     return 1;
 }
 
-struct dh_gen_set_params_st {
-    OSSL_PARAM *type;
-    OSSL_PARAM *group_name;
-    OSSL_PARAM *privlen;
-    OSSL_PARAM *pbits;
-    OSSL_PARAM *qbits;      /* DHX only */
-    OSSL_PARAM *digest;     /* DHX only */
-    OSSL_PARAM *propq;      /* DHX only */
-    OSSL_PARAM *g_index;    /* DHX only */
-    OSSL_PARAM *seed;       /* DHX only */
-    OSSL_PARAM *p_counter;  /* DHX only */
-    OSSL_PARAM *h;          /* DHX only */
-    OSSL_PARAM *generator;  /* DH only */
-};
-
-#define dhx_gen_set_params_st dh_gen_set_params_st
-
-{- produce_param_decoder('dhx_gen_set_params',
-                         (['OSSL_PKEY_PARAM_FFC_TYPE',          'type',       'utf8_string'],
-                          ['OSSL_PKEY_PARAM_GROUP_NAME',        'group_name', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_DH_PRIV_LEN',       'privlen',    'int'],
-                          ['OSSL_PKEY_PARAM_FFC_PBITS',         'pbits',      'size_t'],
-                          ['OSSL_PKEY_PARAM_FFC_QBITS',         'qbits',      'size_t'],
-                          ['OSSL_PKEY_PARAM_FFC_DIGEST',        'digest',     'utf8_string'],
-                          ['OSSL_PKEY_PARAM_FFC_DIGEST_PROPS',  'propq',      'utf8_string'],
-                          ['OSSL_PKEY_PARAM_FFC_GINDEX',        'g_index',    'int'],
-                          ['OSSL_PKEY_PARAM_FFC_SEED',          'seed',       'octet_string'],
-                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',      'p_counter',  'int'],
-                          ['OSSL_PKEY_PARAM_FFC_H',             'h',          'int'],
-                          ['OSSL_PKEY_PARAM_DH_GENERATOR',      'invalid param'],
-                         )); -}
-
-#define dh_gen_set_params_st dh_gen_set_params_st
-
-{- produce_param_decoder('dh_gen_set_params',
-                         (['OSSL_PKEY_PARAM_FFC_TYPE',          'type',       'utf8_string'],
-                          ['OSSL_PKEY_PARAM_GROUP_NAME',        'group_name', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_DH_PRIV_LEN',       'privlen',    'int'],
-                          ['OSSL_PKEY_PARAM_FFC_PBITS',         'pbits',      'size_t'],
-                          ['OSSL_PKEY_PARAM_DH_GENERATOR',      'generator',  'int'],
-                          ['OSSL_PKEY_PARAM_FFC_GINDEX',        'invalid param'],
-                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',      'invalid param'],
-                          ['OSSL_PKEY_PARAM_FFC_H',             'invalid param'],
-                          ['OSSL_PKEY_PARAM_FFC_SEED',          'invalid param'],
-                          ['OSSL_PKEY_PARAM_FFC_QBITS',         'invalid param'],
-                          ['OSSL_PKEY_PARAM_FFC_DIGEST',        'invalid param'],
-                          ['OSSL_PKEY_PARAM_FFC_DIGEST_PROPS',  'invalid param'],
-                         )); -}
-
 static int dh_gen_common_set_params(struct dh_gen_ctx *gctx,
                                     const struct dhx_gen_set_params_st *p)
 {
diff --git a/providers/implementations/keymgmt/dh_kmgmt.inc.in b/providers/implementations/keymgmt/dh_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..c9e4c9f
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('dh_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',               'bits',           'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',        'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',        'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',         'int'],
+                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpubkey',      'octet_string'],
+                          ['OSSL_PKEY_PARAM_FFC_P',              'ffp.p',          'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_Q',              'ffp.q',          'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_G',              'ffp.g',          'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_COFACTOR',       'ffp.cofactor',   'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_GINDEX',         'ffp.g_index',    'int'],
+                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',       'ffp.p_counter',  'int'],
+                          ['OSSL_PKEY_PARAM_FFC_H',              'ffp.h',          'int'],
+                          ['OSSL_PKEY_PARAM_DH_PRIV_LEN',        'privlen',        'int'],
+                          ['OSSL_PKEY_PARAM_FFC_SEED',           'ffp.seed',       'octet_string'],
+                          ['OSSL_PKEY_PARAM_GROUP_NAME',         'ffp.group_name', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',            'pubkey',         'BN'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'privkey',        'BN'],
+                         )); -}
+
+{- produce_param_decoder('dh_set_params',
+                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpubkey', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('dhx_gen_set_params',
+                         (['OSSL_PKEY_PARAM_FFC_TYPE',          'type',       'utf8_string'],
+                          ['OSSL_PKEY_PARAM_GROUP_NAME',        'group_name', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_DH_PRIV_LEN',       'privlen',    'int'],
+                          ['OSSL_PKEY_PARAM_FFC_PBITS',         'pbits',      'size_t'],
+                          ['OSSL_PKEY_PARAM_FFC_QBITS',         'qbits',      'size_t'],
+                          ['OSSL_PKEY_PARAM_FFC_DIGEST',        'digest',     'utf8_string'],
+                          ['OSSL_PKEY_PARAM_FFC_DIGEST_PROPS',  'propq',      'utf8_string'],
+                          ['OSSL_PKEY_PARAM_FFC_GINDEX',        'g_index',    'int'],
+                          ['OSSL_PKEY_PARAM_FFC_SEED',          'seed',       'octet_string'],
+                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',      'p_counter',  'int'],
+                          ['OSSL_PKEY_PARAM_FFC_H',             'h',          'int'],
+                          ['OSSL_PKEY_PARAM_DH_GENERATOR',      'invalid param'],
+                         )); -}
+
+{- produce_param_decoder('dh_gen_set_params',
+                         (['OSSL_PKEY_PARAM_FFC_TYPE',          'type',       'utf8_string'],
+                          ['OSSL_PKEY_PARAM_GROUP_NAME',        'group_name', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_DH_PRIV_LEN',       'privlen',    'int'],
+                          ['OSSL_PKEY_PARAM_FFC_PBITS',         'pbits',      'size_t'],
+                          ['OSSL_PKEY_PARAM_DH_GENERATOR',      'generator',  'int'],
+                          ['OSSL_PKEY_PARAM_FFC_GINDEX',        'invalid param'],
+                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',      'invalid param'],
+                          ['OSSL_PKEY_PARAM_FFC_H',             'invalid param'],
+                          ['OSSL_PKEY_PARAM_FFC_SEED',          'invalid param'],
+                          ['OSSL_PKEY_PARAM_FFC_QBITS',         'invalid param'],
+                          ['OSSL_PKEY_PARAM_FFC_DIGEST',        'invalid param'],
+                          ['OSSL_PKEY_PARAM_FFC_DIGEST_PROPS',  'invalid param'],
+                         )); -}
similarity index 89%
rename from providers/implementations/keymgmt/dsa_kmgmt.c.in
rename to providers/implementations/keymgmt/dsa_kmgmt.c
index d329b6ab89b0d682df30b5e79cf24c39c08db718..5b3358e0dde5322a82d93ceb60cf461d78e4f962 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 /*
  * DSA low level APIs are deprecated for public use, but still ok for
@@ -329,23 +326,7 @@ struct dsa_params_st {
 
 #define dsa_get_params_st dsa_params_st
 
-{- produce_param_decoder('dsa_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',               'bits',           'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',        'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',        'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',         'int'],
-                          ['OSSL_PKEY_PARAM_DEFAULT_DIGEST',     'digest',         'utf8_string'],
-                          ['OSSL_PKEY_PARAM_FFC_P',              'ffp.p',          'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_Q',              'ffp.q',          'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_G',              'ffp.g',          'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_COFACTOR',       'ffp.cofactor',   'BN'],
-                          ['OSSL_PKEY_PARAM_FFC_GINDEX',         'ffp.g_index',    'int'],
-                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',       'ffp.p_counter',  'int'],
-                          ['OSSL_PKEY_PARAM_FFC_H',              'ffp.h',          'int'],
-                          ['OSSL_PKEY_PARAM_FFC_SEED',           'ffp.seed',       'octet_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',            'pubkey',         'BN'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'privkey',        'BN'],
-                         )); -}
+#include "providers/implementations/keymgmt/dsa_kmgmt.inc"
 
 static ossl_inline int dsa_get_params(void *key, OSSL_PARAM params[])
 {
@@ -492,19 +473,6 @@ static int dsa_set_gen_seed(struct dsa_gen_ctx *gctx, unsigned char *seed,
     return 1;
 }
 
-{- produce_param_decoder('dsa_gen_set_params',
-                         (['OSSL_PKEY_PARAM_FFC_TYPE',         'type',      'utf8_string'],
-                          ['OSSL_PKEY_PARAM_FFC_PBITS',        'pbits',     'size_t'],
-                          ['OSSL_PKEY_PARAM_FFC_QBITS',        'qbits',     'size_t'],
-                          ['OSSL_PKEY_PARAM_FFC_DIGEST',       'digest',    'utf8_string'],
-                          ['OSSL_PKEY_PARAM_FFC_DIGEST_PROPS', 'propq',     'utf8_string'],
-                          ['OSSL_PKEY_PARAM_FFC_GINDEX',       'g_index',   'int'],
-                          ['OSSL_PKEY_PARAM_FFC_SEED',         'seed',      'octet_string'],
-                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',     'p_counter', 'int'],
-                          ['OSSL_PKEY_PARAM_FFC_H',            'h',         'int'],
-                          ['OSSL_PKEY_PARAM_FIPS_SIGN_CHECK',  'ind_sign',  'int', 'fips'],
-                         )); -}
-
 static int dsa_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct dsa_gen_ctx *gctx = genctx;
@@ -580,10 +548,6 @@ static const OSSL_PARAM *dsa_gen_settable_params(ossl_unused void *genctx,
     return dsa_gen_set_params_list;
 }
 
-{- produce_param_decoder('dsa_gen_get_params',
-                         (['OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR', 'ind', 'int', 'fips'],
-                         )); -}
-
 static int dsa_gen_get_params(void *genctx, OSSL_PARAM *params)
 {
     struct dsa_gen_ctx *gctx = genctx;
diff --git a/providers/implementations/keymgmt/dsa_kmgmt.inc.in b/providers/implementations/keymgmt/dsa_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..ed0d8a0
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('dsa_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',               'bits',           'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',        'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',        'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',         'int'],
+                          ['OSSL_PKEY_PARAM_DEFAULT_DIGEST',     'digest',         'utf8_string'],
+                          ['OSSL_PKEY_PARAM_FFC_P',              'ffp.p',          'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_Q',              'ffp.q',          'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_G',              'ffp.g',          'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_COFACTOR',       'ffp.cofactor',   'BN'],
+                          ['OSSL_PKEY_PARAM_FFC_GINDEX',         'ffp.g_index',    'int'],
+                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',       'ffp.p_counter',  'int'],
+                          ['OSSL_PKEY_PARAM_FFC_H',              'ffp.h',          'int'],
+                          ['OSSL_PKEY_PARAM_FFC_SEED',           'ffp.seed',       'octet_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',            'pubkey',         'BN'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'privkey',        'BN'],
+                         )); -}
+
+{- produce_param_decoder('dsa_gen_set_params',
+                         (['OSSL_PKEY_PARAM_FFC_TYPE',         'type',      'utf8_string'],
+                          ['OSSL_PKEY_PARAM_FFC_PBITS',        'pbits',     'size_t'],
+                          ['OSSL_PKEY_PARAM_FFC_QBITS',        'qbits',     'size_t'],
+                          ['OSSL_PKEY_PARAM_FFC_DIGEST',       'digest',    'utf8_string'],
+                          ['OSSL_PKEY_PARAM_FFC_DIGEST_PROPS', 'propq',     'utf8_string'],
+                          ['OSSL_PKEY_PARAM_FFC_GINDEX',       'g_index',   'int'],
+                          ['OSSL_PKEY_PARAM_FFC_SEED',         'seed',      'octet_string'],
+                          ['OSSL_PKEY_PARAM_FFC_PCOUNTER',     'p_counter', 'int'],
+                          ['OSSL_PKEY_PARAM_FFC_H',            'h',         'int'],
+                          ['OSSL_PKEY_PARAM_FIPS_SIGN_CHECK',  'ind_sign',  'int', 'fips'],
+                         )); -}
+
+{- produce_param_decoder('dsa_gen_get_params',
+                         (['OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR', 'ind', 'int', 'fips'],
+                         )); -}
similarity index 93%
rename from providers/implementations/keymgmt/ecx_kmgmt.c.in
rename to providers/implementations/keymgmt/ecx_kmgmt.c
index cd1a8fa354d9b3cd3e22ef7338a101a68fea86c5..c9e4ceca50949f24b52d9b8b2344392927213e69 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <assert.h>
 #include <string.h>
@@ -206,10 +203,22 @@ static int ecx_match(const void *keydata1, const void *keydata2, int selection)
     return ok;
 }
 
-{- produce_param_decoder('ecx_imexport_types',
-                         (['OSSL_PKEY_PARAM_PUB_KEY',  'pub',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY', 'priv', 'octet_string'],
-                         )); -}
+struct ecx_ed_common_get_params_st {
+    OSSL_PARAM *bits;
+    OSSL_PARAM *secbits;
+    OSSL_PARAM *size;
+    OSSL_PARAM *seccat;
+    OSSL_PARAM *pub;
+    OSSL_PARAM *priv;
+    OSSL_PARAM *encpub; /* ECX only */
+    OSSL_PARAM *ind;    /* ECX only */
+    OSSL_PARAM *digest; /* Ed only */
+};
+
+#define ecx_get_params_st ecx_ed_common_get_params_st
+#define ed_get_params_st ecx_ed_common_get_params_st
+
+#include "providers/implementations/keymgmt/ecx_kmgmt.inc"
 
 static int ecx_import(void *keydata, int selection, const OSSL_PARAM params[])
 {
@@ -296,43 +305,6 @@ static const OSSL_PARAM *ecx_imexport_types(int selection)
     return NULL;
 }
 
-struct ecx_ed_common_get_params_st {
-    OSSL_PARAM *bits;
-    OSSL_PARAM *secbits;
-    OSSL_PARAM *size;
-    OSSL_PARAM *seccat;
-    OSSL_PARAM *pub;
-    OSSL_PARAM *priv;
-    OSSL_PARAM *encpub; /* ECX only */
-    OSSL_PARAM *ind;    /* ECX only */
-    OSSL_PARAM *digest; /* Ed only */
-};
-
-#define ecx_get_params_st   ecx_ed_common_get_params_st
-
-{- produce_param_decoder('ecx_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',                    'bits',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',           'secbits', 'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',                'size',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',       'seccat',  'int'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',                 'pub',     'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',                'priv',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY',      'encpub',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR', 'ind',     'int', 'fips'],
-                         )); -}
-
-#define ed_get_params_st   ecx_ed_common_get_params_st
-
-{- produce_param_decoder('ed_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',              'bits',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',     'secbits', 'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',          'size',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY', 'seccat',  'int'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'priv',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_MANDATORY_DIGEST',  'digest',  'utf8_string'],
-                         )); -}
-
 /* This getter is shared by ED25519, ED448, X25519 and X448 */
 static int ecx_ed_common_get_params(void *key,
                                     const struct ecx_ed_common_get_params_st *p,
@@ -445,11 +417,6 @@ static int set_property_query(ECX_KEY *ecxkey, const char *propq)
     return 1;
 }
 
-{- produce_param_decoder('ecx_set_params',
-                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY',  'pub',   'octet_string'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES',          'propq', 'utf8_string'],
-                         )); -}
-
 static int ecx_set_params(void *key, const OSSL_PARAM params[])
 {
     ECX_KEY *ecxkey = key;
@@ -579,12 +546,6 @@ static void *ed448_gen_init(void *provctx, int selection,
     return ecx_gen_init(provctx, selection, params, ECX_KEY_TYPE_ED448, NULL);
 }
 
-{- produce_param_decoder('ecx_gen_set_params',
-                         (['OSSL_PKEY_PARAM_GROUP_NAME', 'group',    'utf8_string'],
-                          ['OSSL_KDF_PARAM_PROPERTIES',  'kdfpropq', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_DHKEM_IKM',  'ikm',      'octet_string'],
-                         )); -}
-
 static int ecx_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct ecx_gen_ctx *gctx = genctx;
diff --git a/providers/implementations/keymgmt/ecx_kmgmt.inc.in b/providers/implementations/keymgmt/ecx_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..ac27544
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('ecx_imexport_types',
+                         (['OSSL_PKEY_PARAM_PUB_KEY',  'pub',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY', 'priv', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('ecx_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',                    'bits',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',           'secbits', 'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',                'size',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',       'seccat',  'int'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',                 'pub',     'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',                'priv',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY',      'encpub',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_FIPS_APPROVED_INDICATOR', 'ind',     'int', 'fips'],
+                         )); -}
+
+{- produce_param_decoder('ed_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',              'bits',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',     'secbits', 'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',          'size',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY', 'seccat',  'int'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'priv',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_MANDATORY_DIGEST',  'digest',  'utf8_string'],
+                         )); -}
+
+{- produce_param_decoder('ecx_set_params',
+                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY',  'pub',   'octet_string'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES',          'propq', 'utf8_string'],
+                         )); -}
+
+{- produce_param_decoder('ecx_gen_set_params',
+                         (['OSSL_PKEY_PARAM_GROUP_NAME', 'group',    'utf8_string'],
+                          ['OSSL_KDF_PARAM_PROPERTIES',  'kdfpropq', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_DHKEM_IKM',  'ikm',      'octet_string'],
+                         )); -}
similarity index 95%
rename from providers/implementations/keymgmt/lms_kmgmt.c.in
rename to providers/implementations/keymgmt/lms_kmgmt.c
index 8b6a941444d1536ce051612ab135d7d210a9cffa..867b56b57337e6f357fb58c5801bb1b3b0e70ddd 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>
@@ -19,6 +16,7 @@ use OpenSSL::paramnames qw(produce_param_decoder);
 #include "prov/implementations.h"
 #include "prov/providercommon.h"
 #include "prov/provider_ctx.h"
+#include "providers/implementations/keymgmt/lms_kmgmt.inc"
 
 static OSSL_FUNC_keymgmt_new_fn lms_new_key;
 static OSSL_FUNC_keymgmt_free_fn lms_free_key;
@@ -67,10 +65,6 @@ static int lms_match(const void *keydata1, const void *keydata2, int selection)
     return ossl_lms_key_equal(key1, key2, selection);
 }
 
-{- produce_param_decoder('lms_import',
-                         (['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
-                         )); -}
-
 static int lms_import(void *keydata, int selection, const OSSL_PARAM params[])
 {
     LMS_KEY *key = keydata;
diff --git a/providers/implementations/keymgmt/lms_kmgmt.inc.in b/providers/implementations/keymgmt/lms_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..59e1ed9
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('lms_import',
+                         (['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
+                         )); -}
similarity index 90%
rename from providers/implementations/keymgmt/mac_legacy_kmgmt.c.in
rename to providers/implementations/keymgmt/mac_legacy_kmgmt.c
index 2eefe6bc9a3a18998e345355392f02cdf68b0324..85da34dad6e92c028aecaba9aa5d5bde41e0422e 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 /* We need to use some engine deprecated APIs */
 #define OPENSSL_SUPPRESS_DEPRECATED
@@ -192,6 +189,16 @@ struct mac_common_params_st {
     OSSL_PARAM *engine;
 };
 
+#define mac_import_st mac_common_params_st
+#define cmac_import_st mac_common_params_st
+#define mac_get_params_st mac_common_params_st
+#define cmac_get_params_st mac_common_params_st
+#define mac_set_params_st mac_common_params_st
+#define mac_gen_set_params_st mac_common_params_st
+#define cmac_gen_set_params_st mac_common_params_st
+
+#include "providers/implementations/keymgmt/mac_legacy_kmgmt.inc"
+
 static int mac_key_fromdata(MAC_KEY *key, const struct mac_common_params_st *p)
 {
     if (p->key != NULL) {
@@ -232,13 +239,6 @@ static int mac_key_fromdata(MAC_KEY *key, const struct mac_common_params_st *p)
     return 0;
 }
 
-#define mac_import_st  mac_common_params_st
-
-{- produce_param_decoder('mac_import',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY',   'key',   'octet_string'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES', 'propq', 'utf8_string'],
-                         )); -}
-
 static int mac_import(void *keydata, int selection, const OSSL_PARAM params[])
 {
     MAC_KEY *key = keydata;
@@ -260,15 +260,6 @@ static const OSSL_PARAM *mac_imexport_types(int selection)
     return NULL;
 }
 
-#define cmac_import_st  mac_common_params_st
-
-{- produce_param_decoder('cmac_import',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY',   'key',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_CIPHER',     'cipher', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_ENGINE',     'engine', 'utf8_string', 'hidden'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES', 'propq',  'utf8_string'],
-                         )); -}
-
 static int cmac_import(void *keydata, int selection, const OSSL_PARAM params[])
 {
     MAC_KEY *key = keydata;
@@ -353,12 +344,6 @@ err:
     return ret;
 }
 
-#define mac_get_params_st mac_common_params_st
-
-{- produce_param_decoder('mac_get_params',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key', 'octet_string'],
-                         )); -}
-
 static int mac_get_params(void *keydata, OSSL_PARAM params[])
 {
     struct mac_common_params_st p;
@@ -375,14 +360,6 @@ static const OSSL_PARAM *mac_gettable_params(void *provctx)
     return mac_get_params_list;
 }
 
-#define cmac_get_params_st mac_common_params_st
-
-{- produce_param_decoder('cmac_get_params',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_CIPHER',   'cipher', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_ENGINE',   'engine', 'utf8_string', 'hidden'],
-                        )); -}
-
 static int cmac_get_params(void *keydata, OSSL_PARAM params[])
 {
     struct mac_common_params_st p;
@@ -394,18 +371,11 @@ static int cmac_get_params(void *keydata, OSSL_PARAM params[])
     return key_to_params(key, NULL, &p);
 }
 
-
 static const OSSL_PARAM *cmac_gettable_params(void *provctx)
 {
     return cmac_get_params_list;
 }
 
-#define mac_set_params_st mac_common_params_st
-
-{- produce_param_decoder('mac_set_params',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key', 'octet_string'],
-                         )); -}
-
 static int mac_set_params(void *keydata, const OSSL_PARAM params[])
 {
     MAC_KEY *key = keydata;
@@ -482,12 +452,6 @@ static int mac_gen_set_params_common(struct mac_gen_ctx *gctx,
     return 1;
 }
 
-#define mac_gen_set_params_st mac_common_params_st
-
-{- produce_param_decoder('mac_gen_set_params',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key', 'octet_string'],
-                         )); -}
-
 static int mac_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct mac_gen_ctx *gctx = genctx;
@@ -499,15 +463,6 @@ static int mac_gen_set_params(void *genctx, const OSSL_PARAM params[])
     return mac_gen_set_params_common(gctx, &p);
 }
 
-#define cmac_gen_set_params_st mac_common_params_st
-
-{- produce_param_decoder('cmac_gen_set_params',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY',   'key',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_CIPHER',     'cipher', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES', 'propq',  'utf8_string'],
-                          ['OSSL_PKEY_PARAM_ENGINE',     'engine', 'utf8_string', 'hidden'],
-                         )); -}
-
 static int cmac_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct mac_gen_ctx *gctx = genctx;
@@ -638,4 +593,3 @@ const OSSL_DISPATCH ossl_cmac_legacy_keymgmt_functions[] = {
     { OSSL_FUNC_KEYMGMT_GEN_CLEANUP, (void (*)(void))mac_gen_cleanup },
     OSSL_DISPATCH_END
 };
-
diff --git a/providers/implementations/keymgmt/mac_legacy_kmgmt.inc.in b/providers/implementations/keymgmt/mac_legacy_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..3d90287
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('mac_import',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY',   'key',   'octet_string'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES', 'propq', 'utf8_string'],
+                         )); -}
+
+{- produce_param_decoder('cmac_import',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY',   'key',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_CIPHER',     'cipher', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_ENGINE',     'engine', 'utf8_string', 'hidden'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES', 'propq',  'utf8_string'],
+                         )); -}
+
+{- produce_param_decoder('mac_get_params',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('cmac_get_params',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_CIPHER',   'cipher', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_ENGINE',   'engine', 'utf8_string', 'hidden'],
+                        )); -}
+
+{- produce_param_decoder('mac_set_params',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('mac_gen_set_params',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'key', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('cmac_gen_set_params',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY',   'key',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_CIPHER',     'cipher', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES', 'propq',  'utf8_string'],
+                          ['OSSL_PKEY_PARAM_ENGINE',     'engine', 'utf8_string', 'hidden'],
+                         )); -}
similarity index 93%
rename from providers/implementations/keymgmt/ml_dsa_kmgmt.c.in
rename to providers/implementations/keymgmt/ml_dsa_kmgmt.c
index 9a550133cbc9c4f85fa8d92b7b2f9889f5fe355f..aa76053d76606b2b8e6ae386fbb4f97eeb4f9f73 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>
@@ -23,6 +20,7 @@ use OpenSSL::paramnames qw(produce_param_decoder);
 #include "prov/providercommon.h"
 #include "prov/provider_ctx.h"
 #include "prov/ml_dsa.h"
+#include "providers/implementations/keymgmt/ml_dsa_kmgmt.inc"
 
 static OSSL_FUNC_keymgmt_free_fn ml_dsa_free_key;
 static OSSL_FUNC_keymgmt_has_fn ml_dsa_has;
@@ -182,12 +180,6 @@ static int ml_dsa_validate(const void *key_data, int selection, int check_type)
     return 1;
 }
 
-{- produce_param_decoder('ml_dsa_key_type_params',
-                         (['OSSL_PKEY_PARAM_ML_DSA_SEED', 'seed',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',     'pubkey',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',    'privkey', 'octet_string'],
-                         )); -}
-
 /**
  * @brief Load a ML_DSA key from raw data.
  *
@@ -310,17 +302,6 @@ static const OSSL_PARAM *ml_dsa_imexport_types(int selection)
     return ml_dsa_key_type_params_list;
 }
 
-{- produce_param_decoder('ml_dsa_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',              'bits',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',     'secbits', 'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',          'maxsize', 'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY', 'seccat',  'int'],
-                          ['OSSL_PKEY_PARAM_MANDATORY_DIGEST',  'dgstp',   'utf8_string'],
-                          ['OSSL_PKEY_PARAM_ML_DSA_SEED',       'seed',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',           'pubkey',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'privkey', 'octet_string'],
-                         )); -}
-
 static const OSSL_PARAM *ml_dsa_gettable_params(void *provctx)
 {
     return ml_dsa_get_params_list;
@@ -352,7 +333,6 @@ static int ml_dsa_get_params(void *keydata, OSSL_PARAM params[])
             && !OSSL_PARAM_set_int(p.seccat, ossl_ml_dsa_key_get_security_category(key)))
         return 0;
 
-
     if (p.seed != NULL) {
         d = ossl_ml_dsa_key_get_seed(key);
         if (d != NULL && !OSSL_PARAM_set_octet_string(p.seed, d,
@@ -519,11 +499,6 @@ static void *ml_dsa_gen(void *genctx, int evp_type)
     return NULL;
 }
 
-{- produce_param_decoder('ml_dsa_gen_set_params',
-                         (['OSSL_PKEY_PARAM_ML_DSA_SEED', 'seed',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES',  'propq', 'utf8_string'],
-                         )); -}
-
 static int ml_dsa_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct ml_dsa_gen_ctx *gctx = genctx;
diff --git a/providers/implementations/keymgmt/ml_dsa_kmgmt.inc.in b/providers/implementations/keymgmt/ml_dsa_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..e23d4cd
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('ml_dsa_key_type_params',
+                         (['OSSL_PKEY_PARAM_ML_DSA_SEED', 'seed',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',     'pubkey',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',    'privkey', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('ml_dsa_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',              'bits',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',     'secbits', 'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',          'maxsize', 'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY', 'seccat',  'int'],
+                          ['OSSL_PKEY_PARAM_MANDATORY_DIGEST',  'dgstp',   'utf8_string'],
+                          ['OSSL_PKEY_PARAM_ML_DSA_SEED',       'seed',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',           'pubkey',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'privkey', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('ml_dsa_gen_set_params',
+                         (['OSSL_PKEY_PARAM_ML_DSA_SEED', 'seed',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES',  'propq', 'utf8_string'],
+                         )); -}
similarity index 94%
rename from providers/implementations/keymgmt/ml_kem_kmgmt.c.in
rename to providers/implementations/keymgmt/ml_kem_kmgmt.c
index e92241a845822695894467539fabb3d0bbde2981..c63c9d1fa7593cc8d5189128c16747aed43d5bff 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>
@@ -31,6 +28,7 @@ use OpenSSL::paramnames qw(produce_param_decoder);
 #include "prov/provider_ctx.h"
 #include "prov/securitycheck.h"
 #include "prov/ml_kem.h"
+#include "providers/implementations/keymgmt/ml_kem_kmgmt.inc"
 
 static OSSL_FUNC_keymgmt_new_fn ml_kem_512_new;
 static OSSL_FUNC_keymgmt_new_fn ml_kem_768_new;
@@ -332,12 +330,6 @@ err:
     return ret;
 }
 
-{- produce_param_decoder('ml_kem_key_type_params',
-                         (['OSSL_PKEY_PARAM_ML_KEM_SEED', 'seed',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',    'privkey', 'octet_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',     'pubkey',  'octet_string'],
-                         )); -}
-
 static const OSSL_PARAM *ml_kem_imexport_types(int selection)
 {
     if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0)
@@ -490,19 +482,6 @@ static int ml_kem_import(void *vkey, int selection, const OSSL_PARAM params[])
     return res;
 }
 
-{- produce_param_decoder('ml_kem_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',               'bits',      'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',   'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',   'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',    'int'],
-                          ['OSSL_PKEY_PARAM_ML_KEM_SEED',        'seed',      'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'privkey',   'octet_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',            'pubkey',    'octet_string'],
-                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpubkey', 'octet_string'],
-                          ['OSSL_PKEY_PARAM_CMS_RI_TYPE',        'ri_type',   'int'],
-                          ['OSSL_PKEY_PARAM_CMS_KEMRI_KDF_ALGORITHM', 'kemri_kdf_alg', 'octet_string'],
-                          )); -}
-
 static const OSSL_PARAM *ml_kem_gettable_params(void *provctx)
 {
     return ml_kem_get_params_list;
@@ -657,10 +636,6 @@ static int ml_kem_get_params(void *vkey, OSSL_PARAM params[])
     return 1;
 }
 
-{- produce_param_decoder('ml_kem_set_params',
-                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub', 'octet_string'],
-                         )); -}
-
 static const OSSL_PARAM *ml_kem_settable_params(void *provctx)
 {
     return ml_kem_set_params_list;
@@ -698,11 +673,6 @@ static int ml_kem_set_params(void *vkey, const OSSL_PARAM params[])
     return ossl_ml_kem_parse_public_key(pubenc, publen, key);
 }
 
-{- produce_param_decoder('ml_kem_gen_set_params',
-                         (['OSSL_PKEY_PARAM_ML_DSA_SEED', 'seed',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES',  'propq', 'utf8_string'],
-                         )); -}
-
 static int ml_kem_gen_set_params(void *vgctx, const OSSL_PARAM params[])
 {
     PROV_ML_KEM_GEN_CTX *gctx = vgctx;
diff --git a/providers/implementations/keymgmt/ml_kem_kmgmt.inc.in b/providers/implementations/keymgmt/ml_kem_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..ddb0c7c
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('ml_kem_key_type_params',
+                         (['OSSL_PKEY_PARAM_ML_KEM_SEED', 'seed',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',    'privkey', 'octet_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',     'pubkey',  'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('ml_kem_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',               'bits',      'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',   'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',   'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',    'int'],
+                          ['OSSL_PKEY_PARAM_ML_KEM_SEED',        'seed',      'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'privkey',   'octet_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',            'pubkey',    'octet_string'],
+                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpubkey', 'octet_string'],
+                          ['OSSL_PKEY_PARAM_CMS_RI_TYPE',        'ri_type',   'int'],
+                          ['OSSL_PKEY_PARAM_CMS_KEMRI_KDF_ALGORITHM', 'kemri_kdf_alg', 'octet_string'],
+                          )); -}
+
+{- produce_param_decoder('ml_kem_set_params',
+                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('ml_kem_gen_set_params',
+                         (['OSSL_PKEY_PARAM_ML_DSA_SEED', 'seed',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES',  'propq', 'utf8_string'],
+                         )); -}
similarity index 95%
rename from providers/implementations/keymgmt/mlx_kmgmt.c.in
rename to providers/implementations/keymgmt/mlx_kmgmt.c
index b52bd343df8dc028bb6f58598ac2797f19e85f66..3b557d537dcfe00235bb84fdb6fd50680864d6a9 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>
@@ -25,6 +22,7 @@ use OpenSSL::paramnames qw(produce_param_decoder);
 #include "prov/provider_ctx.h"
 #include "prov/providercommon.h"
 #include "prov/securitycheck.h"
+#include "providers/implementations/keymgmt/mlx_kmgmt.inc"
 
 static OSSL_FUNC_keymgmt_gen_fn mlx_kem_gen;
 static OSSL_FUNC_keymgmt_gen_cleanup_fn mlx_kem_gen_cleanup;
@@ -100,7 +98,6 @@ mlx_kem_key_new(unsigned int v, OSSL_LIB_CTX *libctx, char *propq)
     return NULL;
 }
 
-
 static int mlx_kem_has(const void *vkey, int selection)
 {
     const MLX_KEY *key = vkey;
@@ -147,11 +144,6 @@ static int mlx_kem_match(const void *vkey1, const void *vkey2, int selection)
         && EVP_PKEY_eq(key1->xkey, key2->xkey);
 }
 
-{- produce_param_decoder('ml_kem_import_export',
-                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'privkey', 'octet_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',  'pubkey',  'octet_string'],
-                         )); -}
-
 typedef struct export_cb_arg_st {
     const char *algorithm_name;
     uint8_t *pubenc;
@@ -475,15 +467,6 @@ static int mlx_kem_import(void *vkey, int selection, const OSSL_PARAM params[])
     return mlx_kem_key_fromdata(key, params, include_private);
 }
 
-{- produce_param_decoder('mlx_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',               'bits',     'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',  'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',  'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',   'int'],
-                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub',      'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'priv',     'octet_string'],
-                         )); -}
-
 static const OSSL_PARAM *mlx_kem_gettable_params(void *provctx)
 {
     return mlx_get_params_list;
@@ -584,11 +567,6 @@ static int mlx_kem_get_params(void *vkey, OSSL_PARAM params[])
     return 1;
 }
 
-{- produce_param_decoder('mlx_set_params',
-                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub',   'octet_string'],
-                          ['OSSL_PKEY_PARAM_PROPERTIES',         'propq', 'utf8_string'],
-                         )); -}
-
 static const OSSL_PARAM *mlx_kem_settable_params(void *provctx)
 {
     return mlx_set_params_list;
@@ -633,10 +611,6 @@ static int mlx_kem_set_params(void *vkey, const OSSL_PARAM params[])
     return load_keys(key, pubenc, publen, NULL, 0);
 }
 
-{- produce_param_decoder('mlx_gen_set_params',
-                         (['OSSL_PKEY_PARAM_PROPERTIES', 'propq', 'utf8_string'],
-                         )); -}
-
 static int mlx_kem_gen_set_params(void *vgctx, const OSSL_PARAM params[])
 {
     PROV_ML_KEM_GEN_CTX *gctx = vgctx;
diff --git a/providers/implementations/keymgmt/mlx_kmgmt.inc.in b/providers/implementations/keymgmt/mlx_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..e810441
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('ml_kem_import_export',
+                         (['OSSL_PKEY_PARAM_PRIV_KEY', 'privkey', 'octet_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',  'pubkey',  'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('mlx_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',               'bits',     'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits',  'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'maxsize',  'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',   'int'],
+                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub',      'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',           'priv',     'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('mlx_set_params',
+                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub',   'octet_string'],
+                          ['OSSL_PKEY_PARAM_PROPERTIES',         'propq', 'utf8_string'],
+                         )); -}
+
+{- produce_param_decoder('mlx_gen_set_params',
+                         (['OSSL_PKEY_PARAM_PROPERTIES', 'propq', 'utf8_string'],
+                         )); -}
similarity index 92%
rename from providers/implementations/keymgmt/slh_dsa_kmgmt.c.in
rename to providers/implementations/keymgmt/slh_dsa_kmgmt.c
index 129a11f92e9cefddc503e3072198e41a604784a1..0bec4642b0a1ee627ddc14d422e879b219a51e64 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>
@@ -22,6 +19,7 @@ use OpenSSL::paramnames qw(produce_param_decoder);
 #include "prov/implementations.h"
 #include "prov/providercommon.h"
 #include "prov/provider_ctx.h"
+#include "providers/implementations/keymgmt/slh_dsa_kmgmt.inc"
 
 #ifdef FIPS_MODULE
 static int slh_dsa_fips140_pairwise_test(const SLH_DSA_KEY *key,
@@ -111,11 +109,6 @@ static int slh_dsa_validate(const void *key_data, int selection, int check_type)
     return 1;
 }
 
-{- produce_param_decoder('slh_dsa_import',
-                         (['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'priv',    'octet_string'],
-                         )); -}
-
 static int slh_dsa_import(void *keydata, int selection, const OSSL_PARAM params[])
 {
     SLH_DSA_KEY *key = keydata;
@@ -141,16 +134,6 @@ static const OSSL_PARAM *slh_dsa_imexport_types(int selection)
     return slh_dsa_import_list;
 }
 
-{- produce_param_decoder('slh_dsa_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',              'bits',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',     'secbits', 'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',          'maxsize', 'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY', 'seccat',  'int'],
-                          ['OSSL_PKEY_PARAM_MANDATORY_DIGEST',  'mandgst', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'priv',    'octet_string'],
-                         )); -}
-
 static const OSSL_PARAM *slh_dsa_gettable_params(void *provctx)
 {
     return slh_dsa_get_params_list;
@@ -386,11 +369,6 @@ static void *slh_dsa_gen(void *genctx, const char *alg)
     return NULL;
 }
 
-{- produce_param_decoder('slh_dsa_gen_set_params',
-                         (['OSSL_PKEY_PARAM_PROPERTIES',   'propq', 'utf8_string'],
-                          ['OSSL_PKEY_PARAM_SLH_DSA_SEED', 'seed',  'octet_string'],
-                         )); -}
-
 static int slh_dsa_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct slh_dsa_gen_ctx *gctx = genctx;
diff --git a/providers/implementations/keymgmt/slh_dsa_kmgmt.inc.in b/providers/implementations/keymgmt/slh_dsa_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..5529aa5
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('slh_dsa_import',
+                         (['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'priv',    'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('slh_dsa_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',              'bits',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',     'secbits', 'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',          'maxsize', 'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY', 'seccat',  'int'],
+                          ['OSSL_PKEY_PARAM_MANDATORY_DIGEST',  'mandgst', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_PUB_KEY',           'pub',     'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY',          'priv',    'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('slh_dsa_gen_set_params',
+                         (['OSSL_PKEY_PARAM_PROPERTIES',   'propq', 'utf8_string'],
+                          ['OSSL_PKEY_PARAM_SLH_DSA_SEED', 'seed',  'octet_string'],
+                         )); -}
similarity index 90%
rename from providers/implementations/keymgmt/template_kmgmt.c.in
rename to providers/implementations/keymgmt/template_kmgmt.c
index 9095188b1e03afcd0c74baae6825d25e69c83019..1987244124edebacce7c64b51dd128de0312c8b7 100644 (file)
@@ -6,9 +6,6 @@
  * in the file LICENSE in the source distribution or at
  * https://www.openssl.org/source/license.html
  */
-{-
-use OpenSSL::paramnames qw(produce_param_decoder);
--}
 
 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>
@@ -25,6 +22,8 @@ use OpenSSL::paramnames qw(produce_param_decoder);
 #include "prov/provider_ctx.h"
 #include "prov/securitycheck.h"
 
+#include "providers/implementations/keymgmt/template_kmgmt.inc"
+
 extern const OSSL_DISPATCH ossl_template_keymgmt_functions[];
 
 #define BUFSIZE 1000
@@ -181,11 +180,6 @@ err:
     return ret;
 }
 
-{- produce_param_decoder('template_key_types',
-                         (['OSSL_PKEY_PARAM_PUB_KEY',  'pub_key',  'octet_string'],
-                          ['OSSL_PKEY_PARAM_PRIV_KEY', 'priv_key', 'octet_string'],
-                         )); -}
-
 static int ossl_template_key_fromdata(void *key,
                                       const OSSL_PARAM params[],
                                       int include_private)
@@ -237,14 +231,6 @@ static const OSSL_PARAM *template_imexport_types(int selection)
     return NULL;
 }
 
-{- produce_param_decoder('template_get_params',
-                         (['OSSL_PKEY_PARAM_BITS',               'bits',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits', 'int'],
-                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'size',    'int'],
-                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',  'int'],
-                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpub',  'octet_string'],
-                         )); -}
-
 static int template_get_params(void *key, OSSL_PARAM params[])
 {
     struct template_get_params_st p;
@@ -277,10 +263,6 @@ static const OSSL_PARAM *template_gettable_params(void *provctx)
     return template_get_params_list;
 }
 
-{- produce_param_decoder('template_set_params',
-                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub', 'octet_string'],
-                         )); -}
-
 static int template_set_params(void *key, const OSSL_PARAM params[])
 {
     struct template_set_params_st p;
@@ -303,10 +285,6 @@ static const OSSL_PARAM *template_settable_params(void *provctx)
     return template_set_params_list;
 }
 
-{- produce_param_decoder('template_gen_set_params',
-                         (['OSSL_PKEY_PARAM_GROUP_NAME', 'name', 'utf8_string'],
-                        )); -}
-
 static int template_gen_set_params(void *genctx, const OSSL_PARAM params[])
 {
     struct template_gen_ctx *gctx = genctx;
diff --git a/providers/implementations/keymgmt/template_kmgmt.inc.in b/providers/implementations/keymgmt/template_kmgmt.inc.in
new file mode 100644 (file)
index 0000000..0dfcee8
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the \"License\").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
+
+{- produce_param_decoder('template_key_types',
+                         (['OSSL_PKEY_PARAM_PUB_KEY',  'pub_key',  'octet_string'],
+                          ['OSSL_PKEY_PARAM_PRIV_KEY', 'priv_key', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('template_get_params',
+                         (['OSSL_PKEY_PARAM_BITS',               'bits',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_BITS',      'secbits', 'int'],
+                          ['OSSL_PKEY_PARAM_MAX_SIZE',           'size',    'int'],
+                          ['OSSL_PKEY_PARAM_SECURITY_CATEGORY',  'seccat',  'int'],
+                          ['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'encpub',  'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('template_set_params',
+                         (['OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY', 'pub', 'octet_string'],
+                         )); -}
+
+{- produce_param_decoder('template_gen_set_params',
+                         (['OSSL_PKEY_PARAM_GROUP_NAME', 'name', 'utf8_string'],
+                        )); -}