diff options
author | Pauli <paul.dale@oracle.com> | 2020-03-24 14:58:57 +1000 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2020-03-28 12:27:20 +1000 |
commit | 110bff618b5bd3c700f2f0a290612ca642672ce6 (patch) | |
tree | 48a183a9f54b95c847f1e0222b82eaafec53da1a /providers | |
parent | 9e885a707d604e9528b5491b78fb9c00f41193fc (diff) | |
download | openssl-110bff618b5bd3c700f2f0a290612ca642672ce6.zip openssl-110bff618b5bd3c700f2f0a290612ca642672ce6.tar.gz openssl-110bff618b5bd3c700f2f0a290612ca642672ce6.tar.bz2 |
Param builder: make the OSSL_PARAM_BLD APIs public.
The catalyst for this is the difficult of passing BNs through the other
OSSL_PARAM APIs.
Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/11390)
Diffstat (limited to 'providers')
-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 |
6 files changed, 68 insertions, 68 deletions
diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c index b5bf5aa..4664232 100644 --- a/providers/fips/fipsprov.c +++ b/providers/fips/fipsprov.c @@ -26,7 +26,7 @@ #include "internal/cryptlib.h" #include "internal/property.h" #include "internal/nelem.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "crypto/evp.h" #include "prov/implementations.h" #include "prov/provider_ctx.h" @@ -255,14 +255,14 @@ static int dsa_key_signature_test(OPENSSL_CTX *libctx) || !hextobn(dsa_priv_hex, &priv)) goto err; - ossl_param_bld_init(&bld); - if (!ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_P, p) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_Q, q) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_G, g) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_PUB_KEY, pub) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_PRIV_KEY, priv)) + OSSL_PARAM_BLD_init(&bld); + if (!OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_P, p) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_Q, q) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_G, g) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_PUB_KEY, pub) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_PRIV_KEY, priv)) goto err; - params = ossl_param_bld_to_param(&bld); + params = OSSL_PARAM_BLD_to_param(&bld); /* Create a EVP_PKEY_CTX to load the DSA key into */ kctx = EVP_PKEY_CTX_new_from_name(libctx, SN_dsa, ""); @@ -279,11 +279,11 @@ static int dsa_key_signature_test(OPENSSL_CTX *libctx) goto err; /* set signature parameters */ - ossl_param_bld_init(&bld); - if (!ossl_param_bld_push_utf8_string(&bld, OSSL_SIGNATURE_PARAM_DIGEST, + OSSL_PARAM_BLD_init(&bld); + if (!OSSL_PARAM_BLD_push_utf8_string(&bld, OSSL_SIGNATURE_PARAM_DIGEST, SN_sha256,strlen(SN_sha256) + 1)) goto err; - params_sig = ossl_param_bld_to_param(&bld); + params_sig = OSSL_PARAM_BLD_to_param(&bld); if (EVP_PKEY_CTX_set_params(sctx, params_sig) <= 0) goto err; @@ -293,8 +293,8 @@ static int dsa_key_signature_test(OPENSSL_CTX *libctx) goto err; ret = 1; err: - ossl_param_bld_free(params); - ossl_param_bld_free(params_sig); + OSSL_PARAM_BLD_free(params); + OSSL_PARAM_BLD_free(params_sig); BN_free(p); BN_free(q); BN_free(g); @@ -404,23 +404,23 @@ static int dh_key_exchange_test(OPENSSL_CTX *libctx) || !hextobin(dh_secret_exptd_hex, &kat_secret, &kat_secret_len)) goto err; - ossl_param_bld_init(&bld); - if (!ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_P, p) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_Q, q) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_G, g) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_PUB_KEY, pub) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_PRIV_KEY, priv)) + OSSL_PARAM_BLD_init(&bld); + if (!OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_P, p) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_Q, q) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_G, g) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_PUB_KEY, pub) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_PRIV_KEY, priv)) goto err; - params = ossl_param_bld_to_param(&bld); + params = OSSL_PARAM_BLD_to_param(&bld); - ossl_param_bld_init(&bld); - if (!ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_P, p) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_Q, q) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_FFC_G, g) - || !ossl_param_bld_push_BN(&bld, OSSL_PKEY_PARAM_PUB_KEY, pub_peer)) + OSSL_PARAM_BLD_init(&bld); + if (!OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_P, p) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_Q, q) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_FFC_G, g) + || !OSSL_PARAM_BLD_push_BN(&bld, OSSL_PKEY_PARAM_PUB_KEY, pub_peer)) goto err; - params_peer = ossl_param_bld_to_param(&bld); + params_peer = OSSL_PARAM_BLD_to_param(&bld); if (params == NULL || params_peer == NULL) goto err; @@ -450,8 +450,8 @@ static int dh_key_exchange_test(OPENSSL_CTX *libctx) goto err; ret = 1; err: - ossl_param_bld_free(params_peer); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params_peer); + OSSL_PARAM_BLD_free(params); BN_free(p); BN_free(q); BN_free(g); diff --git a/providers/implementations/keymgmt/dh_kmgmt.c b/providers/implementations/keymgmt/dh_kmgmt.c index 4ec48fe..bb316e4 100644 --- a/providers/implementations/keymgmt/dh_kmgmt.c +++ b/providers/implementations/keymgmt/dh_kmgmt.c @@ -22,7 +22,7 @@ #include "prov/providercommon.h" #include "prov/provider_ctx.h" #include "crypto/dh.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" static OSSL_OP_keymgmt_new_fn dh_newdata; static OSSL_OP_keymgmt_free_fn dh_freedata; @@ -48,10 +48,10 @@ static int domparams_to_params(DH *dh, OSSL_PARAM_BLD *tmpl) DH_get0_pqg(dh, &dh_p, NULL, &dh_g); if (dh_p != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_P, dh_p)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_P, dh_p)) return 0; if (dh_g != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_G, dh_g)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_G, dh_g)) return 0; return 1; @@ -68,10 +68,10 @@ static int key_to_params(DH *dh, OSSL_PARAM_BLD *tmpl) DH_get0_key(dh, &pub_key, &priv_key); if (priv_key != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key)) return 0; if (pub_key != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) return 0; return 1; @@ -155,7 +155,7 @@ static int dh_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (dh == NULL) return 0; - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); if ((selection & OSSL_KEYMGMT_SELECT_ALL_PARAMETERS) != 0) ok = ok && domparams_to_params(dh, &tmpl); @@ -163,11 +163,11 @@ static int dh_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, ok = ok && key_to_params(dh, &tmpl); if (!ok - || (params = ossl_param_bld_to_param(&tmpl)) == NULL) + || (params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; ok = param_cb(params, cbarg); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return ok; } diff --git a/providers/implementations/keymgmt/dsa_kmgmt.c b/providers/implementations/keymgmt/dsa_kmgmt.c index 080ba74..40995eb 100644 --- a/providers/implementations/keymgmt/dsa_kmgmt.c +++ b/providers/implementations/keymgmt/dsa_kmgmt.c @@ -21,7 +21,7 @@ #include "prov/providercommon.h" #include "prov/provider_ctx.h" #include "crypto/dsa.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" static OSSL_OP_keymgmt_new_fn dsa_newdata; static OSSL_OP_keymgmt_free_fn dsa_freedata; @@ -48,13 +48,13 @@ static int domparams_to_params(DSA *dsa, OSSL_PARAM_BLD *tmpl) DSA_get0_pqg(dsa, &dsa_p, &dsa_q, &dsa_g); if (dsa_p != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_P, dsa_p)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_P, dsa_p)) return 0; if (dsa_q != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_Q, dsa_q)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_Q, dsa_q)) return 0; if (dsa_g != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_G, dsa_g)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_G, dsa_g)) return 0; return 1; @@ -71,10 +71,10 @@ static int key_to_params(DSA *dsa, OSSL_PARAM_BLD *tmpl) DSA_get0_key(dsa, &pub_key, &priv_key); if (priv_key != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_PRIV_KEY, priv_key)) return 0; if (pub_key != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key)) return 0; return 1; @@ -160,7 +160,7 @@ static int dsa_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (dsa == NULL) return 0; - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); if ((selection & OSSL_KEYMGMT_SELECT_ALL_PARAMETERS) != 0) ok = ok && domparams_to_params(dsa, &tmpl); @@ -168,11 +168,11 @@ static int dsa_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, ok = ok && key_to_params(dsa, &tmpl); if (!ok - || (params = ossl_param_bld_to_param(&tmpl)) == NULL) + || (params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; ok = param_cb(params, cbarg); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return ok; } diff --git a/providers/implementations/keymgmt/ec_kmgmt.c b/providers/implementations/keymgmt/ec_kmgmt.c index e2cc9ca..ed0470c 100644 --- a/providers/implementations/keymgmt/ec_kmgmt.c +++ b/providers/implementations/keymgmt/ec_kmgmt.c @@ -20,7 +20,7 @@ #include <openssl/params.h> #include "crypto/bn.h" #include "crypto/ec.h" -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "prov/implementations.h" #include "prov/providercommon.h" #include "prov/provider_ctx.h" @@ -84,7 +84,7 @@ int domparams_to_params(const EC_KEY *ec, OSSL_PARAM_BLD *tmpl) if ((curve_name = ec_curve_nid2name(curve_nid)) == NULL) return 0; - if (!ossl_param_bld_push_utf8_string(tmpl, OSSL_PKEY_PARAM_EC_NAME, + if (!OSSL_PARAM_BLD_push_utf8_string(tmpl, OSSL_PKEY_PARAM_EC_NAME, curve_name, 0)) return 0; } @@ -121,7 +121,7 @@ int key_to_params(const EC_KEY *eckey, OSSL_PARAM_BLD *tmpl, int include_private if ((pub_key_len = EC_POINT_point2buf(ecg, pub_point, POINT_CONVERSION_COMPRESSED, &pub_key, NULL)) == 0 - || !ossl_param_bld_push_octet_string(tmpl, + || !OSSL_PARAM_BLD_push_octet_string(tmpl, OSSL_PKEY_PARAM_PUB_KEY, pub_key, pub_key_len)) goto err; @@ -168,7 +168,7 @@ int key_to_params(const EC_KEY *eckey, OSSL_PARAM_BLD *tmpl, int include_private if (ecbits <= 0) 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; @@ -191,7 +191,7 @@ int otherparams_to_params(const EC_KEY *ec, OSSL_PARAM_BLD *tmpl) ecdh_cofactor_mode = (EC_KEY_get_flags(ec) & EC_FLAG_COFACTOR_ECDH) ? 1 : 0; - if (!ossl_param_bld_push_int(tmpl, + if (!OSSL_PARAM_BLD_push_int(tmpl, OSSL_PKEY_PARAM_USE_COFACTOR_ECDH, ecdh_cofactor_mode)) return 0; @@ -341,7 +341,7 @@ int ec_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, && (selection & OSSL_KEYMGMT_SELECT_KEYPAIR) == 0) return 0; - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); if ((selection & OSSL_KEYMGMT_SELECT_DOMAIN_PARAMETERS) != 0) ok = ok && domparams_to_params(ec, &tmpl); @@ -355,11 +355,11 @@ int ec_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, ok = ok && otherparams_to_params(ec, &tmpl); if (!ok - || (params = ossl_param_bld_to_param(&tmpl)) == NULL) + || (params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; ok = param_cb(params, cbarg); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return ok; } diff --git a/providers/implementations/keymgmt/ecx_kmgmt.c b/providers/implementations/keymgmt/ecx_kmgmt.c index 221287b..8d82f6b 100644 --- a/providers/implementations/keymgmt/ecx_kmgmt.c +++ b/providers/implementations/keymgmt/ecx_kmgmt.c @@ -11,7 +11,7 @@ #include <openssl/core_numbers.h> #include <openssl/core_names.h> #include <openssl/params.h> -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "crypto/ecx.h" #include "prov/implementations.h" #include "prov/providercommon.h" @@ -95,12 +95,12 @@ static int key_to_params(ECX_KEY *key, OSSL_PARAM_BLD *tmpl) if (key == NULL) return 0; - 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)) return 0; if (key->privkey != NULL - && !ossl_param_bld_push_octet_string(tmpl, OSSL_PKEY_PARAM_PRIV_KEY, + && !OSSL_PARAM_BLD_push_octet_string(tmpl, OSSL_PKEY_PARAM_PRIV_KEY, key->privkey, key->keylen)) return 0; @@ -122,15 +122,15 @@ static int ecx_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, && !key_to_params(key, &tmpl)) return 0; - ossl_param_bld_init(&tmpl); - params = ossl_param_bld_to_param(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); + params = OSSL_PARAM_BLD_to_param(&tmpl); if (params == NULL) { - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return 0; } ret = param_cb(params, cbarg); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return ret; } diff --git a/providers/implementations/keymgmt/rsa_kmgmt.c b/providers/implementations/keymgmt/rsa_kmgmt.c index 176cf34..d7331c8 100644 --- a/providers/implementations/keymgmt/rsa_kmgmt.c +++ b/providers/implementations/keymgmt/rsa_kmgmt.c @@ -21,7 +21,7 @@ #include <openssl/evp.h> #include <openssl/params.h> #include <openssl/types.h> -#include "internal/param_build.h" +#include "openssl/param_build.h" #include "prov/implementations.h" #include "prov/providercommon.h" #include "prov/provider_ctx.h" @@ -62,7 +62,7 @@ static int export_numbers(OSSL_PARAM_BLD *tmpl, const char *key, nnum = sk_BIGNUM_const_num(numbers); for (i = 0; i < nnum; i++) { - if (!ossl_param_bld_push_BN(tmpl, key, + if (!OSSL_PARAM_BLD_push_BN(tmpl, key, sk_BIGNUM_const_value(numbers, i))) return 0; } @@ -85,13 +85,13 @@ static int key_to_params(RSA *rsa, OSSL_PARAM_BLD *tmpl) rsa_get0_all_params(rsa, factors, exps, coeffs); if (rsa_n != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_RSA_N, rsa_n)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_RSA_N, rsa_n)) goto err; if (rsa_e != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_RSA_E, rsa_e)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_RSA_E, rsa_e)) goto err; if (rsa_d != NULL - && !ossl_param_bld_push_BN(tmpl, OSSL_PKEY_PARAM_RSA_D, rsa_d)) + && !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_RSA_D, rsa_d)) goto err; if (!export_numbers(tmpl, OSSL_PKEY_PARAM_RSA_FACTOR, factors) @@ -184,17 +184,17 @@ static int rsa_export(void *keydata, int selection, /* TODO(3.0) PSS and OAEP should bring on parameters */ - ossl_param_bld_init(&tmpl); + OSSL_PARAM_BLD_init(&tmpl); if ((selection & OSSL_KEYMGMT_SELECT_KEYPAIR) != 0) ok = ok && key_to_params(rsa, &tmpl); if (!ok - || (params = ossl_param_bld_to_param(&tmpl)) == NULL) + || (params = OSSL_PARAM_BLD_to_param(&tmpl)) == NULL) return 0; ok = param_callback(params, cbarg); - ossl_param_bld_free(params); + OSSL_PARAM_BLD_free(params); return ok; } |