diff options
-rw-r--r-- | crypto/dh/dh_ameth.c | 18 | ||||
-rw-r--r-- | crypto/dsa/dsa_ameth.c | 18 | ||||
-rw-r--r-- | crypto/ec/ec_ameth.c | 16 | ||||
-rw-r--r-- | crypto/ec/ecx_meth.c | 12 | ||||
-rw-r--r-- | crypto/param_build.c | 42 | ||||
-rw-r--r-- | crypto/rsa/rsa_ameth.c | 20 | ||||
-rw-r--r-- | crypto/rsa/rsa_lib.c | 10 | ||||
-rw-r--r-- | doc/man3/OSSL_PARAM_BLD_init.pod (renamed from doc/internal/man3/ossl_param_bld_init.pod) | 104 | ||||
-rw-r--r-- | include/openssl/param_build.h (renamed from include/internal/param_build.h) | 38 | ||||
-rw-r--r-- | providers/fips/fipsprov.c | 56 | ||||
-rw-r--r-- | providers/implementations/keymgmt/dh_kmgmt.c | 16 | ||||
-rw-r--r-- | providers/implementations/keymgmt/dsa_kmgmt.c | 18 | ||||
-rw-r--r-- | providers/implementations/keymgmt/ec_kmgmt.c | 16 | ||||
-rw-r--r-- | providers/implementations/keymgmt/ecx_kmgmt.c | 14 | ||||
-rw-r--r-- | providers/implementations/keymgmt/rsa_kmgmt.c | 16 | ||||
-rw-r--r-- | test/evp_pkey_provided_test.c | 14 | ||||
-rw-r--r-- | test/param_build_test.c | 46 |
17 files changed, 238 insertions, 236 deletions
diff --git a/crypto/dh/dh_ameth.c b/crypto/dh/dh_ameth.c index d0eaceccb4..505211054f 100644 --- a/crypto/dh/dh_ameth.c +++ b/crypto/dh/dh_ameth.c @@ -24,7 +24,7 @@ #include "crypto/evp.h" #include <openssl/cms.h> #include <openssl/core_names.h> -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "internal/ffc.h" /* @@ -512,34 +512,34 @@ static int dh_pkey_export_to(const EVP_PKEY *from, void *to_keydata, if (p == NULL || g == NULL) return 0; - ossl_param_bld_init(&tmpl); - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_P, p) - || !ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_G, g)) + OSSL_PARAM_BLD_init(&tmpl); + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_P, p) + || !OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_G, g)) return 0; if (q != NULL) { - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_Q, q)) + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_Q, q)) return 0; } selection |= OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS; if (pub_key != NULL) { - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) return 0; selection |= OSSL_KEYMGMT_SELECT_PUBLIC_KEY; } if (priv_key != NULL) { - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_PRIV_KEY, + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key)) return 0; selection |= OSSL_KEYMGMT_SELECT_PRIVATE_KEY; } - if ((params = ossl_param_bld_to_param(&tmpl)) == NULL) + if ((params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; /* We export, the provider imports */ rv = evp_keymgmt_import(to_keymgmt, to_keydata, selection, params); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return rv; } diff --git a/crypto/dsa/dsa_ameth.c b/crypto/dsa/dsa_ameth.c index 53daf33d30..1de5a2da9b 100644 --- a/crypto/dsa/dsa_ameth.c +++ b/crypto/dsa/dsa_ameth.c @@ -23,7 +23,7 @@ #include "crypto/asn1.h" #include "crypto/dsa.h" #include "crypto/evp.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "internal/ffc.h" #include "dsa_local.h" @@ -541,32 +541,32 @@ static int dsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata, if (p == NULL || q == NULL || g == NULL) return 0; - ossl_param_bld_init(&tmpl); - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_P, p) - || !ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_Q, q) - || !ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_G, g)) + OSSL_PARAM_BLD_init(&tmpl); + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_P, p) + || !OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_Q, q) + || !OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_FFC_G, g)) return 0; selection |= OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS; if (pub_key != NULL) { - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) return 0; selection |= OSSL_KEYMGMT_SELECT_PUBLIC_KEY; } if (priv_key != NULL) { - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_PRIV_KEY, + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key)) return 0; selection |= OSSL_KEYMGMT_SELECT_PRIVATE_KEY; } - if ((params = ossl_param_bld_to_param(&tmpl)) == NULL) + if ((params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; /* We export, the provider imports */ rv = evp_keymgmt_import(to_keymgmt, to_keydata, selection, params); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return rv; } diff --git a/crypto/ec/ec_ameth.c b/crypto/ec/ec_ameth.c index f3812e46b5..85427cf456 100644 --- a/crypto/ec/ec_ameth.c +++ b/crypto/ec/ec_ameth.c @@ -23,7 +23,7 @@ #include "crypto/asn1.h" #include "crypto/evp.h" #include <openssl/core_names.h> -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "ec_local.h" #ifndef OPENSSL_NO_CMS @@ -611,7 +611,7 @@ int ecparams_to_params(const EC_KEY *eckey, OSSL_PARAM_BLD *tmpl) if ((curve_name = OBJ_nid2sn(curve_nid)) == NULL) return 0; - if (!ossl_param_bld_push_utf8_string(tmpl, OSSL_PKEY_PARAM_EC_NAME, curve_name, 0)) + if (!OSSL_PARAM_BLD_push_utf8_string(tmpl, OSSL_PKEY_PARAM_EC_NAME, curve_name, 0)) return 0; } @@ -645,7 +645,7 @@ int ec_pkey_export_to(const EVP_PKEY *from, void *to_keydata, if (EC_KEY_get_method(eckey) != EC_KEY_OpenSSL()) return 0; - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); /* export the domain parameters */ if (!ecparams_to_params(eckey, &tmpl)) @@ -660,7 +660,7 @@ int ec_pkey_export_to(const EVP_PKEY *from, void *to_keydata, if ((pub_key_buflen = EC_POINT_point2buf(ecg, pub_point, POINT_CONVERSION_COMPRESSED, &pub_key_buf, NULL)) == 0 - || !ossl_param_bld_push_octet_string(&tmpl, + || !OSSL_PARAM_BLD_push_octet_string(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key_buf, pub_key_buflen)) @@ -711,7 +711,7 @@ int ec_pkey_export_to(const EVP_PKEY *from, void *to_keydata, goto err; sz = (ecbits + 7 ) / 8; - if (!ossl_param_bld_push_BN_pad(&tmpl, + if (!OSSL_PARAM_BLD_push_BN_pad(&tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key, sz)) goto err; @@ -726,20 +726,20 @@ int ec_pkey_export_to(const EVP_PKEY *from, void *to_keydata, (EC_KEY_get_flags(eckey) & EC_FLAG_COFACTOR_ECDH) ? 1 : 0; /* Export the ECDH_COFACTOR_MODE parameter */ - if (!ossl_param_bld_push_int(&tmpl, + if (!OSSL_PARAM_BLD_push_int(&tmpl, OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, ecdh_cofactor_mode)) goto err; selection |= OSSL_KEYMGMT_SELECT_OTHER_PARAMETERS; } - params = ossl_param_bld_to_param(&tmpl); + params = OSSL_PARAM_BLD_to_param(&tmpl); /* We export, the provider imports */ rv = evp_keymgmt_import(to_keymgmt, to_keydata, selection, params); err: - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); OPENSSL_free(pub_key_buf); return rv; } diff --git a/crypto/ec/ecx_meth.c b/crypto/ec/ecx_meth.c index 97d1b13f5a..8a48b28f38 100644 --- a/crypto/ec/ecx_meth.c +++ b/crypto/ec/ecx_meth.c @@ -19,7 +19,7 @@ #include <openssl/ec.h> #include <openssl/rand.h> #include <openssl/core_names.h> -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "crypto/asn1.h" #include "crypto/evp.h" #include "crypto/ecx.h" @@ -414,29 +414,29 @@ static int ecx_pkey_export_to(const EVP_PKEY *from, void *to_keydata, int selection = 0; int rv = 0; - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); /* A key must at least have a public part */ - if (!ossl_param_bld_push_octet_string(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, + if (!OSSL_PARAM_BLD_push_octet_string(&tmpl, OSSL_PKEY_PARAM_PUB_KEY, key->pubkey, key->keylen)) goto err; selection |= OSSL_KEYMGMT_SELECT_PUBLIC_KEY; if (key->privkey != NULL) { - if (!ossl_param_bld_push_octet_string(&tmpl, + if (!OSSL_PARAM_BLD_push_octet_string(&tmpl, OSSL_PKEY_PARAM_PRIV_KEY, key->privkey, key->keylen)) goto err; selection |= OSSL_KEYMGMT_SELECT_PRIVATE_KEY; } - params = ossl_param_bld_to_param(&tmpl); + params = OSSL_PARAM_BLD_to_param(&tmpl); /* We export, the provider imports */ rv = evp_keymgmt_import(to_keymgmt, to_keydata, selection, params); err: - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return rv; } diff --git a/crypto/param_build.c b/crypto/param_build.c index 7c3b1a597a..ca4fc4af7e 100644 --- a/crypto/param_build.c +++ b/crypto/param_build.c @@ -13,7 +13,7 @@ #include <openssl/cryptoerr.h> #include <openssl/params.h> #include "internal/cryptlib.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" #define OSSL_PARAM_ALLOCATED_END 127 @@ -66,83 +66,83 @@ static int param_push_num(OSSL_PARAM_BLD *bld, const char *key, return 1; } -void ossl_param_bld_init(OSSL_PARAM_BLD *bld) +void OSSL_PARAM_BLD_init(OSSL_PARAM_BLD *bld) { memset(bld, 0, sizeof(*bld)); } -int ossl_param_bld_push_int(OSSL_PARAM_BLD *bld, const char *key, int num) +int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER); } -int ossl_param_bld_push_uint(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key, unsigned int num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_UNSIGNED_INTEGER); } -int ossl_param_bld_push_long(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key, long int num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER); } -int ossl_param_bld_push_ulong(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key, unsigned long int num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_UNSIGNED_INTEGER); } -int ossl_param_bld_push_int32(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key, int32_t num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER); } -int ossl_param_bld_push_uint32(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key, uint32_t num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_UNSIGNED_INTEGER); } -int ossl_param_bld_push_int64(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key, int64_t num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_INTEGER); } -int ossl_param_bld_push_uint64(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key, uint64_t num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_UNSIGNED_INTEGER); } -int ossl_param_bld_push_size_t(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key, size_t num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_UNSIGNED_INTEGER); } -int ossl_param_bld_push_double(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key, double num) { return param_push_num(bld, key, &num, sizeof(num), OSSL_PARAM_REAL); } -int ossl_param_bld_push_BN(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key, const BIGNUM *bn) { - return ossl_param_bld_push_BN_pad(bld, key, bn, + return OSSL_PARAM_BLD_push_BN_pad(bld, key, bn, bn == NULL ? 0 : BN_num_bytes(bn)); } -int ossl_param_bld_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, const BIGNUM *bn, size_t sz) { int n, secure = 0; @@ -168,7 +168,7 @@ int ossl_param_bld_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, return 1; } -int ossl_param_bld_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, const char *buf, size_t bsize) { OSSL_PARAM_BLD_DEF *pd; @@ -187,7 +187,7 @@ int ossl_param_bld_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, return 1; } -int ossl_param_bld_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, char *buf, size_t bsize) { OSSL_PARAM_BLD_DEF *pd; @@ -206,7 +206,7 @@ int ossl_param_bld_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, return 1; } -int ossl_param_bld_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, const void *buf, size_t bsize) { OSSL_PARAM_BLD_DEF *pd; @@ -223,7 +223,7 @@ int ossl_param_bld_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, return 1; } -int ossl_param_bld_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, void *buf, size_t bsize) { OSSL_PARAM_BLD_DEF *pd; @@ -288,7 +288,7 @@ static OSSL_PARAM *param_bld_convert(OSSL_PARAM_BLD *bld, OSSL_PARAM *param, return param + i; } -OSSL_PARAM *ossl_param_bld_to_param(OSSL_PARAM_BLD *bld) +OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld) { OSSL_PARAM_BLD_BLOCK *blk, *s = NULL; OSSL_PARAM *params, *last; @@ -318,7 +318,7 @@ OSSL_PARAM *ossl_param_bld_to_param(OSSL_PARAM_BLD *bld) return params; } -void ossl_param_bld_free(OSSL_PARAM *params) +void OSSL_PARAM_BLD_free(OSSL_PARAM *params) { if (params != NULL) { OSSL_PARAM *p; diff --git a/crypto/rsa/rsa_ameth.c b/crypto/rsa/rsa_ameth.c index 58341a928a..ba82f6ccb7 100644 --- a/crypto/rsa/rsa_ameth.c +++ b/crypto/rsa/rsa_ameth.c @@ -20,7 +20,7 @@ #include <openssl/bn.h> #include <openssl/cms.h> #include <openssl/core_names.h> -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "crypto/asn1.h" #include "crypto/evp.h" #include "crypto/rsa.h" @@ -1104,12 +1104,12 @@ static int rsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata, if (n == NULL || e == NULL) goto err; - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); /* |e| and |n| are always present */ - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_E, e)) + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_E, e)) goto err; - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_N, n)) + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_N, n)) goto err; selection |= OSSL_KEYMGMT_SELECT_PUBLIC_KEY; @@ -1144,14 +1144,14 @@ static int rsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata, <= OSSL_PARAM_BLD_MAX)) goto err; - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_D, d)) + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_D, d)) goto err; selection |= OSSL_KEYMGMT_SELECT_PRIVATE_KEY; for (i = 0; i < numprimes; i++) { const BIGNUM *num = sk_BIGNUM_const_value(primes, i); - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_FACTOR, + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_FACTOR, num)) goto err; } @@ -1159,7 +1159,7 @@ static int rsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata, for (i = 0; i < numexps; i++) { const BIGNUM *num = sk_BIGNUM_const_value(exps, i); - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_EXPONENT, + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_EXPONENT, num)) goto err; } @@ -1167,13 +1167,13 @@ static int rsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata, for (i = 0; i < numcoeffs; i++) { const BIGNUM *num = sk_BIGNUM_const_value(coeffs, i); - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_COEFFICIENT, + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_COEFFICIENT, num)) goto err; } } - if ((params = ossl_param_bld_to_param(&tmpl)) == NULL) + if ((params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) goto err; /* We export, the provider imports */ @@ -1183,7 +1183,7 @@ static int rsa_pkey_export_to(const EVP_PKEY *from, void *to_keydata, sk_BIGNUM_const_free(primes); sk_BIGNUM_const_free(exps); sk_BIGNUM_const_free(coeffs); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return rv; } diff --git a/crypto/rsa/rsa_lib.c b/crypto/rsa/rsa_lib.c index 08365708a6..e65e303735 100644 --- a/crypto/rsa/rsa_lib.c +++ b/crypto/rsa/rsa_lib.c @@ -20,7 +20,7 @@ #include <openssl/evp.h> #include "internal/cryptlib.h" #include "internal/refcount.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "crypto/bn.h" #include "crypto/evp.h" #include "crypto/rsa.h" @@ -1315,13 +1315,13 @@ int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp) return EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp); - ossl_param_bld_init(&tmpl); - if (!ossl_param_bld_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_E, pubexp) - || (params = ossl_param_bld_to_param(&tmpl)) == NULL) + OSSL_PARAM_BLD_init(&tmpl); + if (!OSSL_PARAM_BLD_push_BN(&tmpl, OSSL_PKEY_PARAM_RSA_E, pubexp) + || (params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; ret = EVP_PKEY_CTX_set_params(ctx, params); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return ret; } diff --git a/doc/internal/man3/ossl_param_bld_init.pod b/doc/man3/OSSL_PARAM_BLD_init.pod index 8ae0dccb73..0b61ece8bc 100644 --- a/doc/internal/man3/ossl_param_bld_init.pod +++ b/doc/man3/OSSL_PARAM_BLD_init.pod @@ -2,44 +2,44 @@ =head1 NAME -ossl_param_bld_init, ossl_param_bld_to_param, -ossl_param_bld_free, ossl_param_bld_push_int, ossl_param_bld_push_uint, -ossl_param_bld_push_long, ossl_param_bld_push_ulong, -ossl_param_bld_push_int32, ossl_param_bld_push_uint32, -ossl_param_bld_push_int64, ossl_param_bld_push_uint64, -ossl_param_bld_push_size_t, ossl_param_bld_push_double, -ossl_param_bld_push_BN, ossl_param_bld_push_BN_pad, -ossl_param_bld_push_utf8_string, ossl_param_bld_push_utf8_ptr, -ossl_param_bld_push_octet_string, ossl_param_bld_push_octet_ptr +OSSL_PARAM_BLD_init, OSSL_PARAM_BLD_to_param, +OSSL_PARAM_BLD_free, OSSL_PARAM_BLD_push_int, OSSL_PARAM_BLD_push_uint, +OSSL_PARAM_BLD_push_long, OSSL_PARAM_BLD_push_ulong, +OSSL_PARAM_BLD_push_int32, OSSL_PARAM_BLD_push_uint32, +OSSL_PARAM_BLD_push_int64, OSSL_PARAM_BLD_push_uint64, +OSSL_PARAM_BLD_push_size_t, OSSL_PARAM_BLD_push_double, +OSSL_PARAM_BLD_push_BN, OSSL_PARAM_BLD_push_BN_pad, +OSSL_PARAM_BLD_push_utf8_string, OSSL_PARAM_BLD_push_utf8_ptr, +OSSL_PARAM_BLD_push_octet_string, OSSL_PARAM_BLD_push_octet_ptr - functions to assist in the creation of OSSL_PARAM arrays =head1 SYNOPSIS =for openssl generic - #include "internal/params_build.h" + #include "openssl/param_build.h" #define OSSL_PARAM_BLD_MAX 10 typedef struct { ... } OSSL_PARAM_BLD; - void ossl_param_bld_init(OSSL_PARAM_BLD *bld); - OSSL_PARAM *ossl_param_bld_to_param(OSSL_PARAM_BLD *bld); - void ossl_param_bld_free(OSSL_PARAM *params); + void OSSL_PARAM_BLD_init(OSSL_PARAM_BLD *bld); + OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld); + void OSSL_PARAM_BLD_free(OSSL_PARAM *params); - int ossl_param_bld_push_TYPE(OSSL_PARAM_BLD *bld, const char *key, TYPE val); + int OSSL_PARAM_BLD_push_TYPE(OSSL_PARAM_BLD *bld, const char *key, TYPE val); - int ossl_param_bld_push_BN(OSSL_PARAM_BLD *bld, const char *key, + int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key, const BIGNUM *bn); - int ossl_param_bld_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, + int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, const BIGNUM *bn, size_t sz); - int ossl_param_bld_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, + int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, const char *buf, size_t bsize); - int ossl_param_bld_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, + int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, char *buf, size_t bsize); - int ossl_param_bld_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, + int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key, const void *buf, size_t bsize); - int ossl_param_bld_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, + int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key, void *buf, size_t bsize); @@ -48,17 +48,17 @@ ossl_param_bld_push_octet_string, ossl_param_bld_push_octet_ptr A collection of utility functions that simplify the creation of OSSL_PARAM arrays. The B<I<TYPE>> names are as per L<OSSL_PARAM_int(3)>. -ossl_param_bld_init() initialises the OSSL_PARAM_BLD structure so that values +OSSL_PARAM_BLD_init() initialises the OSSL_PARAM_BLD structure so that values can be added. Any existing values are cleared. -ossl_param_bld_to_param() converts a built up OSSL_PARAM_BLD structure +OSSL_PARAM_BLD_to_param() converts a built up OSSL_PARAM_BLD structure I<bld> into an allocated OSSL_PARAM array. The OSSL_PARAM array and all associated storage must be freed by calling -ossl_param_bld_free() with the functions return value. +OSSL_PARAM_BLD_free() with the functions return value. -ossl_param_bld_free() deallocates the memory allocated by -ossl_param_bld_to_param(). +OSSL_PARAM_BLD_free() deallocates the memory allocated by +OSSL_PARAM_BLD_to_param(). =begin comment @@ -68,55 +68,55 @@ the processor along =end comment -B<ossl_param_bld_push_I<TYPE>>() are a series of functions which will create +B<OSSL_PARAM_BLD_push_I<TYPE>>() are a series of functions which will create OSSL_PARAM objects of the specified size and correct type for the I<val> argument. I<val> is stored by value and an expression or auto variable can be used. -ossl_param_bld_push_BN() is a function that will create an OSSL_PARAM object +OSSL_PARAM_BLD_push_BN() is a function that will create an OSSL_PARAM object that holds the specified BIGNUM I<bn>. If I<bn> is marked as being securely allocated, its OSSL_PARAM representation will also be securely allocated. The I<bn> argument is stored by reference and the underlying BIGNUM object -must exist until after ossl_param_bld_to_param() has been called. +must exist until after OSSL_PARAM_BLD_to_param() has been called. -ossl_param_bld_push_BN_pad() is a function that will create an OSSL_PARAM object +OSSL_PARAM_BLD_push_BN_pad() is a function that will create an OSSL_PARAM object that holds the specified BIGNUM I<bn>. The object will be padded to occupy exactly I<sz> bytes, if insufficient space is specified an error results. If I<bn> is marked as being securely allocated, its OSSL_PARAM representation will also be securely allocated. The I<bn> argument is stored by reference and the underlying BIGNUM object -must exist until after ossl_param_bld_to_param() has been called. +must exist until after OSSL_PARAM_BLD_to_param() has been called. -ossl_param_bld_push_utf8_string() is a function that will create an OSSL_PARAM +OSSL_PARAM_BLD_push_utf8_string() is a function that will create an OSSL_PARAM object that references the UTF8 string specified by I<buf>. If the length of the string, I<bsize>, is zero then it will be calculated. The string that I<buf> points to is stored by reference and must remain in -scope until after ossl_param_bld_to_param() has been called. +scope until after OSSL_PARAM_BLD_to_param() has been called. -ossl_param_bld_push_octet_string() is a function that will create an OSSL_PARAM +OSSL_PARAM_BLD_push_octet_string() is a function that will create an OSSL_PARAM object that references the octet string specified by I<buf> and <bsize>. The memory that I<buf> points to is stored by reference and must remain in -scope until after ossl_param_bld_to_param() has been called. +scope until after OSSL_PARAM_BLD_to_param() has been called. -ossl_param_bld_push_utf8_ptr() is a function that will create an OSSL_PARAM +OSSL_PARAM_BLD_push_utf8_ptr() is a function that will create an OSSL_PARAM object that references the UTF8 string specified by I<buf>. If the length of the string, I<bsize>, is zero then it will be calculated. The string I<buf> points to is stored by reference and must remain in scope until the OSSL_PARAM array is freed. -ossl_param_bld_push_octet_ptr() is a function that will create an OSSL_PARAM +OSSL_PARAM_BLD_push_octet_ptr() is a function that will create an OSSL_PARAM object that references the octet string specified by I<buf>. The memory I<buf> points to is stored by reference and must remain in scope until the OSSL_PARAM array is freed. =head1 RETURN VALUES -ossl_param_bld_to_param() returns the allocated OSSL_PARAM array, or NULL +OSSL_PARAM_BLD_to_param() returns the allocated OSSL_PARAM array, or NULL on error. -All of the ossl_param_bld_push_TYPE functions return 1 on success and 0 +All of the OSSL_PARAM_BLD_push_TYPE functions return 1 on success and 0 on error. =head1 NOTES @@ -124,6 +124,8 @@ on error. The constant B<OSSL_PARAM_BLD_MAX> specifies the maximum number of parameters that can be added. Exceeding this will result in the push functions returning errors. +The define used for this will always be at least 10 but otherwise no assumption +should be made about it's specific value. The structure B<OSSL_PARAM_BLD> should be considered opaque and subject to change between versions. @@ -146,17 +148,17 @@ private key. OSSL_PARAM_BLD bld; OSSL_PARAM *params; - ossl_param_bld_init(&bld, &secure); - if (!ossl_param_bld_push_BN(&bld, "p", p) - || !ossl_param_bld_push_BN(&bld, "q", q) - || !ossl_param_bld_push_uint(&bld, "e", e) - || !ossl_param_bld_push_BN(&bld, "n", n) - || !ossl_param_bld_push_BN(&bld, "d", d) - || (params = ossl_param_bld_to_param(&bld)) == NULL) + OSSL_PARAM_BLD_init(&bld, &secure); + if (!OSSL_PARAM_BLD_push_BN(&bld, "p", p) + || !OSSL_PARAM_BLD_push_BN(&bld, "q", q) + || !OSSL_PARAM_BLD_push_uint(&bld, "e", e) + || !OSSL_PARAM_BLD_push_BN(&bld, "n", n) + || !OSSL_PARAM_BLD_push_BN(&bld, "d", d) + || (params = OSSL_PARAM_BLD_to_param(&bld)) == NULL) goto err; /* Use params */ ... - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); =head2 Example 2 @@ -166,14 +168,14 @@ public key. OSSL_PARAM_BLD bld; OSSL_PARAM *params; - ossl_param_bld_init(&bld, &secure); - if (!ossl_param_bld_push_BN(&bld, "n", n) - || !ossl_param_bld_push_BN(&bld, "d", d) - || (params = ossl_param_bld_to_param(&bld)) == NULL) + OSSL_PARAM_BLD_init(&bld, &secure); + if (!OSSL_PARAM_BLD_push_BN(&bld, "n", n) + || !OSSL_PARAM_BLD_push_BN(&bld, "d", d) + || (params = OSSL_PARAM_BLD_to_param(&bld)) == NULL) goto err; /* Use params */ ... - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); =head1 SEE ALSO diff --git a/include/internal/param_build.h b/include/openssl/param_build.h index 59104b93aa..68b58e5768 100644 --- a/include/internal/param_build.h +++ b/include/openssl/param_build.h @@ -39,38 +39,38 @@ typedef struct { OSSL_PARAM_BLD_DEF params[OSSL_PARAM_BLD_MAX]; } OSSL_PARAM_BLD; -void ossl_param_bld_init(OSSL_PARAM_BLD *bld); -OSSL_PARAM *ossl_param_bld_to_param(OSSL_PARAM_BLD *bld); -void ossl_param_bld_free(OSSL_PARAM *params); +void OSSL_PARAM_BLD_init(OSSL_PARAM_BLD *bld); +OSSL_PARAM *OSSL_PARAM_BLD_to_param(OSSL_PARAM_BLD *bld); +void OSSL_PARAM_BLD_free(OSSL_PARAM *params); -int ossl_param_bld_push_int(OSSL_PARAM_BLD *bld, const char *key, int val); -int ossl_param_bld_push_uint(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_int(OSSL_PARAM_BLD *bld, const char *key, int val); +int OSSL_PARAM_BLD_push_uint(OSSL_PARAM_BLD *bld, const char *key, unsigned int val); -int ossl_param_bld_push_long(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_long(OSSL_PARAM_BLD *bld, const char *key, long int val); -int ossl_param_bld_push_ulong(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_ulong(OSSL_PARAM_BLD *bld, const char *key, unsigned long int val); -int ossl_param_bld_push_int32(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_int32(OSSL_PARAM_BLD *bld, const char *key, int32_t val); -int ossl_param_bld_push_uint32(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_uint32(OSSL_PARAM_BLD *bld, const char *key, uint32_t val); -int ossl_param_bld_push_int64(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_int64(OSSL_PARAM_BLD *bld, const char *key, int64_t val); -int ossl_param_bld_push_uint64(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_uint64(OSSL_PARAM_BLD *bld, const char *key, uint64_t val); -int ossl_param_bld_push_size_t(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_size_t(OSSL_PARAM_BLD *bld, const char *key, size_t val); -int ossl_param_bld_push_double(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_double(OSSL_PARAM_BLD *bld, const char *key, double val); -int ossl_param_bld_push_BN(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key, const BIGNUM *bn); -int ossl_param_bld_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key, const BIGNUM *bn, size_t sz); -int ossl_param_bld_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_utf8_string(OSSL_PARAM_BLD *bld, const char *key, const char *buf, size_t bsize); -int ossl_param_bld_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key, +int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key |