* 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 <string.h>
#include <openssl/crypto.h>
return ossl_cipher_generic_get_params(params, 0, 0, 0, 8, 0);
}
-static const OSSL_PARAM null_known_gettable_ctx_params[] = {
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_KEYLEN, NULL),
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_IVLEN, NULL),
- { OSSL_CIPHER_PARAM_TLS_MAC, OSSL_PARAM_OCTET_PTR, NULL, 0, OSSL_PARAM_UNMODIFIED },
- OSSL_PARAM_END
-};
+{- produce_param_decoder('null_get_ctx_params',
+ (['OSSL_CIPHER_PARAM_KEYLEN', 'keylen', 'size_t'],
+ ['OSSL_CIPHER_PARAM_IVLEN', 'ivlen', 'size_t'],
+ ['OSSL_CIPHER_PARAM_TLS_MAC', 'mac', 'octet_ptr'],
+ )); -}
static OSSL_FUNC_cipher_gettable_ctx_params_fn null_gettable_ctx_params;
static const OSSL_PARAM *null_gettable_ctx_params(ossl_unused void *cctx,
ossl_unused void *provctx)
{
- return null_known_gettable_ctx_params;
+ return null_get_ctx_params_list;
}
static OSSL_FUNC_cipher_get_ctx_params_fn null_get_ctx_params;
static int null_get_ctx_params(void *vctx, OSSL_PARAM params[])
{
PROV_CIPHER_NULL_CTX *ctx = (PROV_CIPHER_NULL_CTX *)vctx;
- OSSL_PARAM *p;
+ struct null_get_ctx_params_st p;
+
+ if (ctx == NULL || !null_get_ctx_params_decoder(params, &p))
+ return 0;
- p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_IVLEN);
- if (p != NULL && !OSSL_PARAM_set_size_t(p, 0)) {
+ if (p.ivlen != NULL && !OSSL_PARAM_set_size_t(p.ivlen, 0)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}
- p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_KEYLEN);
- if (p != NULL && !OSSL_PARAM_set_size_t(p, 0)) {
+
+ if (p.keylen != NULL && !OSSL_PARAM_set_size_t(p.keylen, 0)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}
- p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_TLS_MAC);
- if (p != NULL
- && !OSSL_PARAM_set_octet_ptr(p, ctx->tlsmac, ctx->tlsmacsize)) {
+
+ if (p.mac != NULL
+ && !OSSL_PARAM_set_octet_ptr(p.mac, ctx->tlsmac, ctx->tlsmacsize)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}
return 1;
}
-static const OSSL_PARAM null_known_settable_ctx_params[] = {
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_TLS_MAC_SIZE, NULL),
- OSSL_PARAM_END
-};
+{- produce_param_decoder('null_set_ctx_params',
+ (['OSSL_CIPHER_PARAM_TLS_MAC_SIZE', 'macsize', 'size_t'],
+ )); -}
static OSSL_FUNC_cipher_settable_ctx_params_fn null_settable_ctx_params;
static const OSSL_PARAM *null_settable_ctx_params(ossl_unused void *cctx,
ossl_unused void *provctx)
{
- return null_known_settable_ctx_params;
+ return null_set_ctx_params_list;
}
static int null_set_ctx_params(void *vctx, const OSSL_PARAM params[])
{
PROV_CIPHER_NULL_CTX *ctx = (PROV_CIPHER_NULL_CTX *)vctx;
- const OSSL_PARAM *p;
+ struct null_set_ctx_params_st p;
- p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_TLS_MAC_SIZE);
- if (p != NULL) {
- if (!OSSL_PARAM_get_size_t(p, &ctx->tlsmacsize)) {
- ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
- return 0;
- }
+ if (ctx == NULL || !null_set_ctx_params_decoder(params, &p))
+ return 0;
+
+ if (p.macsize != NULL
+ && !OSSL_PARAM_get_size_t(p.macsize, &ctx->tlsmacsize)) {
+ ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
+ return 0;
}
return 1;
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
+{-
+use OpenSSL::paramnames qw(produce_param_decoder);
+-}
/* Dispatch functions for RC4_HMAC_MD5 cipher */
return rc4_hmac_md5_set_ctx_params(ctx, params);
}
-static const OSSL_PARAM rc4_hmac_md5_known_gettable_ctx_params[] = {
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_KEYLEN, NULL),
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_IVLEN, NULL),
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD, NULL),
- OSSL_PARAM_END
-};
-const OSSL_PARAM *rc4_hmac_md5_gettable_ctx_params(ossl_unused void *cctx,
- ossl_unused void *provctx)
+{- produce_param_decoder('rc4_hmac_md5_get_ctx_params',
+ (['OSSL_CIPHER_PARAM_KEYLEN', 'keylen', 'size_t'],
+ ['OSSL_CIPHER_PARAM_IVLEN', 'ivlen', 'size_t'],
+ ['OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD', 'pad', 'size_t'],
+ )); -}
+
+static const OSSL_PARAM *rc4_hmac_md5_gettable_ctx_params(ossl_unused void *cctx,
+ ossl_unused void *provctx)
{
- return rc4_hmac_md5_known_gettable_ctx_params;
+ return rc4_hmac_md5_get_ctx_params_list;
}
static int rc4_hmac_md5_get_ctx_params(void *vctx, OSSL_PARAM params[])
{
PROV_RC4_HMAC_MD5_CTX *ctx = (PROV_RC4_HMAC_MD5_CTX *)vctx;
- OSSL_PARAM *p;
+ struct rc4_hmac_md5_get_ctx_params_st p;
+
+ if (ctx == NULL || !rc4_hmac_md5_get_ctx_params_decoder(params, &p))
+ return 0;
- p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_KEYLEN);
- if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->base.keylen)) {
+ if (p.keylen != NULL && !OSSL_PARAM_set_size_t(p.keylen, ctx->base.keylen)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}
- p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_IVLEN);
- if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->base.ivlen)) {
+ if (p.ivlen != NULL && !OSSL_PARAM_set_size_t(p.ivlen, ctx->base.ivlen)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}
- p = OSSL_PARAM_locate(params, OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD);
- if (p != NULL && !OSSL_PARAM_set_size_t(p, ctx->tls_aad_pad_sz)) {
+
+ if (p.pad != NULL && !OSSL_PARAM_set_size_t(p.pad, ctx->tls_aad_pad_sz)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER);
return 0;
}
return 1;
}
-static const OSSL_PARAM rc4_hmac_md5_known_settable_ctx_params[] = {
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_KEYLEN, NULL),
- OSSL_PARAM_size_t(OSSL_CIPHER_PARAM_IVLEN, NULL),
- OSSL_PARAM_octet_string(OSSL_CIPHER_PARAM_AEAD_TLS1_AAD, NULL, 0),
- OSSL_PARAM_END
-};
-const OSSL_PARAM *rc4_hmac_md5_settable_ctx_params(ossl_unused void *cctx,
- ossl_unused void *provctx)
+{- produce_param_decoder('rc4_hmac_md5_set_ctx_params',
+ (['OSSL_CIPHER_PARAM_KEYLEN', 'keylen', 'size_t'],
+ ['OSSL_CIPHER_PARAM_IVLEN', 'ivlen', 'size_t'],
+ ['OSSL_CIPHER_PARAM_AEAD_TLS1_AAD', 'aad', 'octet_string'],
+ ['OSSL_CIPHER_PARAM_AEAD_MAC_KEY', 'mackey', 'octet_string'],
+ ['OSSL_CIPHER_PARAM_TLS_VERSION', 'tlsver', 'uint'],
+ )); -}
+
+static const OSSL_PARAM *rc4_hmac_md5_settable_ctx_params(ossl_unused void *cctx,
+ ossl_unused void *provctx)
{
- return rc4_hmac_md5_known_settable_ctx_params;
+ return rc4_hmac_md5_set_ctx_params_list;
}
static int rc4_hmac_md5_set_ctx_params(void *vctx, const OSSL_PARAM params[])
{
PROV_RC4_HMAC_MD5_CTX *ctx = (PROV_RC4_HMAC_MD5_CTX *)vctx;
- const OSSL_PARAM *p;
+ struct rc4_hmac_md5_set_ctx_params_st p;
size_t sz;
- if (ossl_param_is_empty(params))
- return 1;
+ if (ctx == NULL || !rc4_hmac_md5_set_ctx_params_decoder(params, &p))
+ return 0;
- p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_KEYLEN);
- if (p != NULL) {
- if (!OSSL_PARAM_get_size_t(p, &sz)) {
+ if (p.keylen != NULL) {
+ if (!OSSL_PARAM_get_size_t(p.keylen, &sz)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
return 0;
}
}
}
- p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_IVLEN);
- if (p != NULL) {
- if (!OSSL_PARAM_get_size_t(p, &sz)) {
+ if (p.ivlen != NULL) {
+ if (!OSSL_PARAM_get_size_t(p.ivlen, &sz)) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
return 0;
}
}
}
- p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_AEAD_TLS1_AAD);
- if (p != NULL) {
- if (p->data_type != OSSL_PARAM_OCTET_STRING) {
+ if (p.aad != NULL) {
+ if (p.aad->data_type != OSSL_PARAM_OCTET_STRING) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
return 0;
}
- sz = GET_HW(ctx)->tls_init(&ctx->base, p->data, p->data_size);
+ sz = GET_HW(ctx)->tls_init(&ctx->base, p.aad->data, p.aad->data_size);
if (sz == 0) {
ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_DATA);
return 0;
}
ctx->tls_aad_pad_sz = sz;
}
- p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_AEAD_MAC_KEY);
- if (p != NULL) {
- if (p->data_type != OSSL_PARAM_OCTET_STRING) {
+
+ if (p.mackey != NULL) {
+ if (p.mackey->data_type != OSSL_PARAM_OCTET_STRING) {
ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
return 0;
}
- GET_HW(ctx)->init_mackey(&ctx->base, p->data, p->data_size);
+ GET_HW(ctx)->init_mackey(&ctx->base, p.mackey->data,
+ p.mackey->data_size);
}
- p = OSSL_PARAM_locate_const(params, OSSL_CIPHER_PARAM_TLS_VERSION);
- if (p != NULL) {
- if (!OSSL_PARAM_get_uint(p, &ctx->base.tlsversion)) {
- ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
- return 0;
- }
+
+ if (p.tlsver != NULL
+ && !OSSL_PARAM_get_uint(p.tlsver, &ctx->base.tlsversion)) {
+ ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER);
+ return 0;
}
return 1;