Copy RSA-PSS saltlen in EVP_PKEY_CTX_dup.
pkey_rsa_copy was missing a field. Test this by repeating the operation through an EVP_PKEY_CTX_dup copy in evp_test. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8759)
This commit is contained in:
parent
5ee08f45bc
commit
d7fcf1feac
2 changed files with 27 additions and 0 deletions
|
@ -89,6 +89,7 @@ static int pkey_rsa_copy(EVP_PKEY_CTX *dst, const EVP_PKEY_CTX *src)
|
|||
dctx->pad_mode = sctx->pad_mode;
|
||||
dctx->md = sctx->md;
|
||||
dctx->mgf1md = sctx->mgf1md;
|
||||
dctx->saltlen = sctx->saltlen;
|
||||
if (sctx->oaep_label) {
|
||||
OPENSSL_free(dctx->oaep_label);
|
||||
dctx->oaep_label = OPENSSL_memdup(sctx->oaep_label, sctx->oaep_labellen);
|
||||
|
|
|
@ -1378,6 +1378,7 @@ static int pkey_test_run(EVP_TEST *t)
|
|||
PKEY_DATA *expected = t->data;
|
||||
unsigned char *got = NULL;
|
||||
size_t got_len;
|
||||
EVP_PKEY_CTX *copy = NULL;
|
||||
|
||||
if (expected->keyop(expected->ctx, NULL, &got_len,
|
||||
expected->input, expected->input_len) <= 0
|
||||
|
@ -1396,8 +1397,33 @@ static int pkey_test_run(EVP_TEST *t)
|
|||
goto err;
|
||||
|
||||
t->err = NULL;
|
||||
OPENSSL_free(got);
|
||||
got = NULL;
|
||||
|
||||
/* Repeat the test on a copy. */
|
||||
if (!TEST_ptr(copy = EVP_PKEY_CTX_dup(expected->ctx))) {
|
||||
t->err = "INTERNAL_ERROR";
|
||||
goto err;
|
||||
}
|
||||
if (expected->keyop(copy, NULL, &got_len, expected->input,
|
||||
expected->input_len) <= 0
|
||||
|| !TEST_ptr(got = OPENSSL_malloc(got_len))) {
|
||||
t->err = "KEYOP_LENGTH_ERROR";
|
||||
goto err;
|
||||
}
|
||||
if (expected->keyop(copy, got, &got_len, expected->input,
|
||||
expected->input_len) <= 0) {
|
||||
t->err = "KEYOP_ERROR";
|
||||
goto err;
|
||||
}
|
||||
if (!memory_err_compare(t, "KEYOP_MISMATCH",
|
||||
expected->output, expected->output_len,
|
||||
got, got_len))
|
||||
goto err;
|
||||
|
||||
err:
|
||||
OPENSSL_free(got);
|
||||
EVP_PKEY_CTX_free(copy);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue