use OpenSSL::paramnames qw(produce_param_decoder);
-}
-{- produce_param_decoder('hkdf_set_ctx_params',
- (['OSSL_KDF_PARAM_MODE', 'mode', 'utf8_string'],
- ['OSSL_KDF_PARAM_MODE', 'mode', 'int'],
- ['OSSL_KDF_PARAM_PROPERTIES', 'propq', 'utf8_string'],
- ['OSSL_ALG_PARAM_ENGINE', 'engine', 'utf8_string', 'hidden'],
- ['OSSL_KDF_PARAM_DIGEST', 'digest', 'utf8_string'],
- ['OSSL_KDF_PARAM_KEY', 'key', 'octet_string'],
- ['OSSL_KDF_PARAM_SALT', 'salt', 'octet_string'],
+{- our @HKDF_COMMON_SET_CTX_PARAMS = (
+ ['OSSL_KDF_PARAM_MODE', 'mode', 'utf8_string'],
+ ['OSSL_KDF_PARAM_MODE', 'mode', 'int'],
+ ['OSSL_KDF_PARAM_KEY', 'key', 'octet_string'],
+ ['OSSL_KDF_PARAM_SALT', 'salt', 'octet_string'],
+ );
+ our @HKDF_DIGEST_SET_CTX_PARAMS = (
+ ['OSSL_KDF_PARAM_PROPERTIES', 'propq', 'utf8_string'],
+ ['OSSL_ALG_PARAM_ENGINE', 'engine', 'utf8_string', 'hidden'],
+ ['OSSL_KDF_PARAM_DIGEST', 'digest', 'utf8_string'],
+ );
+ our @HKDF_INFO_SET_CTX_PARAMS = (
+ ['OSSL_KDF_PARAM_INFO', 'info', 'octet_string', HKDF_MAX_INFOS],
+ );
+
+ produce_param_decoder('hkdf_set_ctx_params',
+ (@HKDF_COMMON_SET_CTX_PARAMS,
+ @HKDF_DIGEST_SET_CTX_PARAMS,
+ @HKDF_INFO_SET_CTX_PARAMS,
['OSSL_KDF_PARAM_FIPS_KEY_CHECK', 'ind_k', 'int', 'fips'],
- ['OSSL_KDF_PARAM_INFO', 'info', 'octet_string', HKDF_MAX_INFOS],
)); -}
{- produce_param_decoder('hkdf_get_ctx_params',
)); -}
{- produce_param_decoder('hkdf_fixed_digest_set_ctx_params',
- (['OSSL_KDF_PARAM_MODE', 'mode', 'utf8_string'],
- ['OSSL_KDF_PARAM_MODE', 'mode', 'int'],
- ['OSSL_KDF_PARAM_DIGEST', 'digest', 'utf8_string', 'hidden'],
- ['OSSL_KDF_PARAM_KEY', 'key', 'octet_string'],
- ['OSSL_KDF_PARAM_SALT', 'salt', 'octet_string'],
+ (@HKDF_COMMON_SET_CTX_PARAMS,
+ @HKDF_INFO_SET_CTX_PARAMS,
['OSSL_KDF_PARAM_FIPS_KEY_CHECK', 'ind_k', 'int', 'fips'],
- ['OSSL_KDF_PARAM_INFO', 'info', 'octet_string', HKDF_MAX_INFOS],
+ ['OSSL_KDF_PARAM_DIGEST', 'invalid param'],
)); -}
{- produce_param_decoder('kdf_tls1_3_set_ctx_params',
- (['OSSL_KDF_PARAM_MODE', 'mode', 'utf8_string'],
- ['OSSL_KDF_PARAM_MODE', 'mode', 'int'],
- ['OSSL_KDF_PARAM_PROPERTIES', 'propq', 'utf8_string'],
- ['OSSL_ALG_PARAM_ENGINE', 'engine', 'utf8_string', 'hidden'],
- ['OSSL_KDF_PARAM_DIGEST', 'digest', 'utf8_string'],
- ['OSSL_KDF_PARAM_KEY', 'key', 'octet_string'],
- ['OSSL_KDF_PARAM_SALT', 'salt', 'octet_string'],
+ (@HKDF_COMMON_SET_CTX_PARAMS,
+ @HKDF_DIGEST_SET_CTX_PARAMS,
['OSSL_KDF_PARAM_FIPS_KEY_CHECK', 'ind_k', 'int', 'fips'],
['OSSL_KDF_PARAM_FIPS_DIGEST_CHECK', 'ind_d', 'int', 'fips'],
['OSSL_KDF_PARAM_PREFIX', 'prefix', 'octet_string'],