aboutsummaryrefslogtreecommitdiff
path: root/providers
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2020-03-24 14:58:57 +1000
committerPauli <paul.dale@oracle.com>2020-03-28 12:27:20 +1000
commit110bff618b5bd3c700f2f0a290612ca642672ce6 (patch)
tree48a183a9f54b95c847f1e0222b82eaafec53da1a /providers
parent9e885a707d604e9528b5491b78fb9c00f41193fc (diff)
downloadopenssl-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.c56
-rw-r--r--providers/implementations/keymgmt/dh_kmgmt.c16
-rw-r--r--providers/implementations/keymgmt/dsa_kmgmt.c18
-rw-r--r--providers/implementations/keymgmt/ec_kmgmt.c16
-rw-r--r--providers/implementations/keymgmt/ecx_kmgmt.c14
-rw-r--r--providers/implementations/keymgmt/rsa_kmgmt.c16
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;
}