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
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 \
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 \
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]=\
* 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
#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[])
{
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;
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)
{
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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
#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[])
{
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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
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[])
{
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,
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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
#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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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
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) {
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;
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;
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;
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;
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;
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;
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;
{ OSSL_FUNC_KEYMGMT_GEN_CLEANUP, (void (*)(void))mac_gen_cleanup },
OSSL_DISPATCH_END
};
-
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
#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;
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.
*
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;
&& !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,
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
#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;
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)
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;
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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
#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;
return NULL;
}
-
static int mlx_kem_has(const void *vkey, int selection)
{
const MLX_KEY *key = vkey;
&& 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;
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;
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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
#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,
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;
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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}
* 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>
#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
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)
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;
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;
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;
--- /dev/null
+/*
+ * 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'],
+ )); -}