|
@@ -435,26 +435,8 @@ static EVP_PKEY *load_example_rsa_key(void)
|
|
|
#ifndef OPENSSL_NO_DSA
|
|
|
static EVP_PKEY *load_example_dsa_key(void)
|
|
|
{
|
|
|
- EVP_PKEY *ret = NULL;
|
|
|
- const unsigned char *derp = kExampleDSAKeyDER;
|
|
|
- EVP_PKEY *pkey = NULL;
|
|
|
- DSA *dsa = NULL;
|
|
|
-
|
|
|
- if (!TEST_true(d2i_DSAPrivateKey(&dsa, &derp, sizeof(kExampleDSAKeyDER))))
|
|
|
- return NULL;
|
|
|
-
|
|
|
- if (!TEST_ptr(pkey = EVP_PKEY_new())
|
|
|
- || !TEST_true(EVP_PKEY_set1_DSA(pkey, dsa)))
|
|
|
- goto end;
|
|
|
-
|
|
|
- ret = pkey;
|
|
|
- pkey = NULL;
|
|
|
-
|
|
|
-end:
|
|
|
- EVP_PKEY_free(pkey);
|
|
|
- DSA_free(dsa);
|
|
|
-
|
|
|
- return ret;
|
|
|
+ return load_example_key("DSA", kExampleDSAKeyDER,
|
|
|
+ sizeof(kExampleDSAKeyDER));
|
|
|
}
|
|
|
#endif
|
|
|
|
|
@@ -1684,8 +1666,10 @@ static int test_EVP_PKEY_CTX_get_set_params(EVP_PKEY *pkey)
|
|
|
#ifndef OPENSSL_NO_DSA
|
|
|
static int test_DSA_get_set_params(void)
|
|
|
{
|
|
|
- DSA *dsa = NULL;
|
|
|
+ OSSL_PARAM_BLD *bld = NULL;
|
|
|
+ OSSL_PARAM *params = NULL;
|
|
|
BIGNUM *p = NULL, *q = NULL, *g = NULL, *pub = NULL, *priv = NULL;
|
|
|
+ EVP_PKEY_CTX *pctx = NULL;
|
|
|
EVP_PKEY *pkey = NULL;
|
|
|
int ret = 0;
|
|
|
|
|
@@ -1693,34 +1677,39 @@ static int test_DSA_get_set_params(void)
|
|
|
* Setup the parameters for our DSA object. For our purposes they don't
|
|
|
* have to actually be *valid* parameters. We just need to set something.
|
|
|
*/
|
|
|
- dsa = DSA_new();
|
|
|
- p = BN_new();
|
|
|
- q = BN_new();
|
|
|
- g = BN_new();
|
|
|
- pub = BN_new();
|
|
|
- priv = BN_new();
|
|
|
- if (!TEST_ptr(dsa)
|
|
|
- || !TEST_ptr(p)
|
|
|
- || !TEST_ptr(q)
|
|
|
- || !TEST_ptr(g)
|
|
|
- || !TEST_ptr(pub)
|
|
|
- || !DSA_set0_pqg(dsa, p, q, g)
|
|
|
- || !DSA_set0_key(dsa, pub, priv))
|
|
|
+ if (!TEST_ptr(pctx = EVP_PKEY_CTX_new_from_name(testctx, "DSA", NULL))
|
|
|
+ || !TEST_ptr(bld = OSSL_PARAM_BLD_new())
|
|
|
+ || !TEST_ptr(p = BN_new())
|
|
|
+ || !TEST_ptr(q = BN_new())
|
|
|
+ || !TEST_ptr(g = BN_new())
|
|
|
+ || !TEST_ptr(pub = BN_new())
|
|
|
+ || !TEST_ptr(priv = BN_new()))
|
|
|
+ goto err;
|
|
|
+ if (!TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_FFC_P, p))
|
|
|
+ || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_FFC_Q, q))
|
|
|
+ || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_FFC_G, g))
|
|
|
+ || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_PUB_KEY,
|
|
|
+ pub))
|
|
|
+ || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, OSSL_PKEY_PARAM_PRIV_KEY,
|
|
|
+ priv)))
|
|
|
+ goto err;
|
|
|
+ if (!TEST_ptr(params = OSSL_PARAM_BLD_to_param(bld)))
|
|
|
goto err;
|
|
|
- p = q = g = pub = priv = NULL;
|
|
|
|
|
|
- pkey = EVP_PKEY_new();
|
|
|
- if (!TEST_ptr(pkey)
|
|
|
- || !TEST_true(EVP_PKEY_assign_DSA(pkey, dsa)))
|
|
|
+ if (!TEST_int_gt(EVP_PKEY_key_fromdata_init(pctx), 0)
|
|
|
+ || !TEST_int_gt(EVP_PKEY_fromdata(pctx, &pkey, params), 0))
|
|
|
goto err;
|
|
|
|
|
|
- dsa = NULL;
|
|
|
+ if (!TEST_ptr(pkey))
|
|
|
+ goto err;
|
|
|
|
|
|
ret = test_EVP_PKEY_CTX_get_set_params(pkey);
|
|
|
|
|
|
err:
|
|
|
EVP_PKEY_free(pkey);
|
|
|
- DSA_free(dsa);
|
|
|
+ EVP_PKEY_CTX_free(pctx);
|
|
|
+ OSSL_PARAM_BLD_free_params(params);
|
|
|
+ OSSL_PARAM_BLD_free(bld);
|
|
|
BN_free(p);
|
|
|
BN_free(q);
|
|
|
BN_free(g);
|