Latest update.
This commit is contained in:
+34
-26
@@ -25,6 +25,7 @@
|
||||
#include <openssl/dh.h>
|
||||
#include "testutil.h"
|
||||
#include "internal/nelem.h"
|
||||
#include "internal/sizes.h"
|
||||
#include "crypto/evp.h"
|
||||
|
||||
/*
|
||||
@@ -1239,13 +1240,13 @@ static int test_EVP_PKEY_CTX_get_set_params(void)
|
||||
EVP_PKEY_CTX *ctx = NULL;
|
||||
EVP_SIGNATURE *dsaimpl = NULL;
|
||||
const OSSL_PARAM *params;
|
||||
OSSL_PARAM ourparams[2], *param = ourparams;
|
||||
OSSL_PARAM ourparams[2], *param = ourparams, *param_md;
|
||||
DSA *dsa = NULL;
|
||||
BIGNUM *p = NULL, *q = NULL, *g = NULL, *pub = NULL, *priv = NULL;
|
||||
EVP_PKEY *pkey = NULL;
|
||||
int ret = 0;
|
||||
const EVP_MD *md;
|
||||
size_t mdsize = SHA512_DIGEST_LENGTH;
|
||||
char mdname[OSSL_MAX_NAME_SIZE];
|
||||
char ssl3ms[48];
|
||||
|
||||
/*
|
||||
@@ -1288,39 +1289,36 @@ static int test_EVP_PKEY_CTX_get_set_params(void)
|
||||
*/
|
||||
params = EVP_PKEY_CTX_settable_params(ctx);
|
||||
if (!TEST_ptr(params)
|
||||
|| !TEST_int_eq(strcmp(params[0].key,
|
||||
OSSL_SIGNATURE_PARAM_DIGEST_SIZE), 0)
|
||||
|| !TEST_int_eq(strcmp(params[1].key, OSSL_SIGNATURE_PARAM_DIGEST),
|
||||
0)
|
||||
/* The final key should be NULL */
|
||||
|| !TEST_ptr_null(params[2].key))
|
||||
|| !TEST_ptr(OSSL_PARAM_locate_const(params,
|
||||
OSSL_SIGNATURE_PARAM_DIGEST)))
|
||||
goto err;
|
||||
|
||||
/* Gettable params are the same as the settable ones */
|
||||
params = EVP_PKEY_CTX_gettable_params(ctx);
|
||||
if (!TEST_ptr(params)
|
||||
|| !TEST_int_eq(strcmp(params[0].key,
|
||||
OSSL_SIGNATURE_PARAM_DIGEST_SIZE), 0)
|
||||
|| !TEST_int_eq(strcmp(params[1].key, OSSL_SIGNATURE_PARAM_DIGEST),
|
||||
0)
|
||||
/* The final key should be NULL */
|
||||
|| !TEST_ptr_null(params[2].key))
|
||||
|| !TEST_ptr(OSSL_PARAM_locate_const(params,
|
||||
OSSL_SIGNATURE_PARAM_ALGORITHM_ID))
|
||||
|| !TEST_ptr(OSSL_PARAM_locate_const(params,
|
||||
OSSL_SIGNATURE_PARAM_DIGEST)))
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Test getting and setting params via EVP_PKEY_CTX_set_params() and
|
||||
* EVP_PKEY_CTX_get_params()
|
||||
*/
|
||||
*param++ = OSSL_PARAM_construct_size_t(OSSL_SIGNATURE_PARAM_DIGEST_SIZE,
|
||||
&mdsize);
|
||||
strcpy(mdname, "SHA512");
|
||||
param_md = param;
|
||||
*param++ = OSSL_PARAM_construct_utf8_string(OSSL_SIGNATURE_PARAM_DIGEST,
|
||||
mdname, 0);
|
||||
*param++ = OSSL_PARAM_construct_end();
|
||||
|
||||
if (!TEST_true(EVP_PKEY_CTX_set_params(ctx, ourparams)))
|
||||
goto err;
|
||||
|
||||
mdsize = 0;
|
||||
mdname[0] = '\0';
|
||||
*param_md = OSSL_PARAM_construct_utf8_string(OSSL_SIGNATURE_PARAM_DIGEST,
|
||||
mdname, sizeof(mdname));
|
||||
if (!TEST_true(EVP_PKEY_CTX_get_params(ctx, ourparams))
|
||||
|| !TEST_size_t_eq(mdsize, SHA512_DIGEST_LENGTH))
|
||||
|| !TEST_str_eq(mdname, "SHA512"))
|
||||
goto err;
|
||||
|
||||
/*
|
||||
@@ -1447,16 +1445,25 @@ static int test_decrypt_null_chunks(void)
|
||||
#ifndef OPENSSL_NO_DH
|
||||
static int test_EVP_PKEY_set1_DH(void)
|
||||
{
|
||||
DH *x942dh, *pkcs3dh;
|
||||
EVP_PKEY *pkey1, *pkey2;
|
||||
DH *x942dh = NULL, *noqdh = NULL;
|
||||
EVP_PKEY *pkey1 = NULL, *pkey2 = NULL;
|
||||
int ret = 0;
|
||||
BIGNUM *p, *g = NULL;
|
||||
|
||||
if (!TEST_ptr(p = BN_new())
|
||||
|| !TEST_ptr(g = BN_new())
|
||||
|| !BN_set_word(p, 9999)
|
||||
|| !BN_set_word(g, 2)
|
||||
|| !TEST_ptr(noqdh = DH_new())
|
||||
|| !DH_set0_pqg(noqdh, p, NULL, g))
|
||||
goto err;
|
||||
p = g = NULL;
|
||||
|
||||
x942dh = DH_get_2048_256();
|
||||
pkcs3dh = DH_new_by_nid(NID_ffdhe2048);
|
||||
pkey1 = EVP_PKEY_new();
|
||||
pkey2 = EVP_PKEY_new();
|
||||
if (!TEST_ptr(x942dh)
|
||||
|| !TEST_ptr(pkcs3dh)
|
||||
|| !TEST_ptr(noqdh)
|
||||
|| !TEST_ptr(pkey1)
|
||||
|| !TEST_ptr(pkey2))
|
||||
goto err;
|
||||
@@ -1465,17 +1472,18 @@ static int test_EVP_PKEY_set1_DH(void)
|
||||
|| !TEST_int_eq(EVP_PKEY_id(pkey1), EVP_PKEY_DHX))
|
||||
goto err;
|
||||
|
||||
|
||||
if(!TEST_true(EVP_PKEY_set1_DH(pkey2, pkcs3dh))
|
||||
if(!TEST_true(EVP_PKEY_set1_DH(pkey2, noqdh))
|
||||
|| !TEST_int_eq(EVP_PKEY_id(pkey2), EVP_PKEY_DH))
|
||||
goto err;
|
||||
|
||||
ret = 1;
|
||||
err:
|
||||
BN_free(p);
|
||||
BN_free(g);
|
||||
EVP_PKEY_free(pkey1);
|
||||
EVP_PKEY_free(pkey2);
|
||||
DH_free(x942dh);
|
||||
DH_free(pkcs3dh);
|
||||
DH_free(noqdh);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user