Latest update.
This commit is contained in:
+70
-13
@@ -29,6 +29,8 @@
|
||||
#include "internal/sizes.h"
|
||||
#include "crypto/evp.h"
|
||||
|
||||
static OPENSSL_CTX *testctx = NULL;
|
||||
|
||||
/*
|
||||
* kExampleRSAKeyDER is an RSA private key in ASN.1, DER format. Of course, you
|
||||
* should never use this key anywhere but in an example.
|
||||
@@ -765,7 +767,7 @@ static int test_EVP_PKCS82PKEY(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(OPENSSL_NO_SM2) && !defined(FIPS_MODE)
|
||||
#if !defined(OPENSSL_NO_SM2) && !defined(FIPS_MODULE)
|
||||
|
||||
static int test_EVP_SM2_verify(void)
|
||||
{
|
||||
@@ -1005,7 +1007,7 @@ static struct keys_st {
|
||||
#endif
|
||||
};
|
||||
|
||||
static int test_set_get_raw_keys_int(int tst, int pub)
|
||||
static int test_set_get_raw_keys_int(int tst, int pub, int uselibctx)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned char buf[80];
|
||||
@@ -1022,17 +1024,34 @@ static int test_set_get_raw_keys_int(int tst, int pub)
|
||||
if (pub) {
|
||||
inlen = strlen(keys[tst].pub);
|
||||
in = (unsigned char *)keys[tst].pub;
|
||||
pkey = EVP_PKEY_new_raw_public_key(keys[tst].type,
|
||||
NULL,
|
||||
in,
|
||||
inlen);
|
||||
if (uselibctx) {
|
||||
pkey = EVP_PKEY_new_raw_public_key_with_libctx(
|
||||
testctx,
|
||||
OBJ_nid2sn(keys[tst].type),
|
||||
NULL,
|
||||
in,
|
||||
inlen);
|
||||
} else {
|
||||
pkey = EVP_PKEY_new_raw_public_key(keys[tst].type,
|
||||
NULL,
|
||||
in,
|
||||
inlen);
|
||||
}
|
||||
} else {
|
||||
inlen = strlen(keys[tst].priv);
|
||||
in = (unsigned char *)keys[tst].priv;
|
||||
pkey = EVP_PKEY_new_raw_private_key(keys[tst].type,
|
||||
NULL,
|
||||
in,
|
||||
inlen);
|
||||
if (uselibctx) {
|
||||
pkey = EVP_PKEY_new_raw_private_key_with_libctx(
|
||||
testctx, OBJ_nid2sn(keys[tst].type),
|
||||
NULL,
|
||||
in,
|
||||
inlen);
|
||||
} else {
|
||||
pkey = EVP_PKEY_new_raw_private_key(keys[tst].type,
|
||||
NULL,
|
||||
in,
|
||||
inlen);
|
||||
}
|
||||
}
|
||||
|
||||
if (!TEST_ptr(pkey)
|
||||
@@ -1052,8 +1071,10 @@ static int test_set_get_raw_keys_int(int tst, int pub)
|
||||
|
||||
static int test_set_get_raw_keys(int tst)
|
||||
{
|
||||
return test_set_get_raw_keys_int(tst, 0)
|
||||
&& test_set_get_raw_keys_int(tst, 1);
|
||||
return test_set_get_raw_keys_int(tst, 0, 0)
|
||||
&& test_set_get_raw_keys_int(tst, 0, 1)
|
||||
&& test_set_get_raw_keys_int(tst, 1, 0)
|
||||
&& test_set_get_raw_keys_int(tst, 1, 1);
|
||||
}
|
||||
|
||||
static int pkey_custom_check(EVP_PKEY *pkey)
|
||||
@@ -1158,6 +1179,29 @@ static int test_EVP_PKEY_check(int i)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifndef OPENSSL_NO_CMAC
|
||||
static int test_CMAC_keygen(void)
|
||||
{
|
||||
/*
|
||||
* This is a legacy method for CMACs, but should still work.
|
||||
* This verifies that it works without an ENGINE.
|
||||
*/
|
||||
EVP_PKEY_CTX *kctx = EVP_PKEY_CTX_new_id(EVP_PKEY_CMAC, NULL);
|
||||
int ret = 0;
|
||||
|
||||
if (!TEST_true(EVP_PKEY_keygen_init(kctx) > 0)
|
||||
&& !TEST_true(EVP_PKEY_CTX_ctrl(kctx, -1, EVP_PKEY_OP_KEYGEN,
|
||||
EVP_PKEY_CTRL_CIPHER,
|
||||
0, (void *)EVP_aes_256_ecb()) > 0))
|
||||
goto done;
|
||||
ret = 1;
|
||||
|
||||
done:
|
||||
EVP_PKEY_CTX_free(kctx);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int test_HKDF(void)
|
||||
{
|
||||
EVP_PKEY_CTX *pctx;
|
||||
@@ -1583,6 +1627,11 @@ static int test_keygen_with_empty_template(int n)
|
||||
|
||||
int setup_tests(void)
|
||||
{
|
||||
testctx = OPENSSL_CTX_new();
|
||||
|
||||
if (!TEST_ptr(testctx))
|
||||
return 0;
|
||||
|
||||
ADD_ALL_TESTS(test_EVP_DigestSignInit, 9);
|
||||
ADD_TEST(test_EVP_DigestVerifyInit);
|
||||
ADD_TEST(test_EVP_Enveloped);
|
||||
@@ -1590,7 +1639,7 @@ int setup_tests(void)
|
||||
#ifndef OPENSSL_NO_EC
|
||||
ADD_TEST(test_EVP_PKCS82PKEY);
|
||||
#endif
|
||||
#if !defined(OPENSSL_NO_SM2) && !defined(FIPS_MODE)
|
||||
#if !defined(OPENSSL_NO_SM2) && !defined(FIPS_MODULE)
|
||||
ADD_TEST(test_EVP_SM2);
|
||||
ADD_TEST(test_EVP_SM2_verify);
|
||||
#endif
|
||||
@@ -1604,6 +1653,9 @@ int setup_tests(void)
|
||||
if (!TEST_int_eq(EVP_PKEY_meth_add0(custom_pmeth), 1))
|
||||
return 0;
|
||||
ADD_ALL_TESTS(test_EVP_PKEY_check, OSSL_NELEM(keycheckdata));
|
||||
#ifndef OPENSSL_NO_CMAC
|
||||
ADD_TEST(test_CMAC_keygen);
|
||||
#endif
|
||||
ADD_TEST(test_HKDF);
|
||||
#ifndef OPENSSL_NO_EC
|
||||
ADD_TEST(test_X509_PUBKEY_inplace);
|
||||
@@ -1624,3 +1676,8 @@ int setup_tests(void)
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void cleanup_tests(void)
|
||||
{
|
||||
OPENSSL_CTX_free(testctx);
|
||||
}
|
||||
Reference in New Issue
Block a user