mirror of https://github.com/wolfSSL/wolfssl.git
Merge pull request #3941 from JacobBarthelmeh/Compatibility-Layer
add implementation of EC_KEY_set_grouppull/3952/head
commit
de8653be35
26
src/ssl.c
26
src/ssl.c
|
@ -36387,8 +36387,8 @@ WOLFSSL_EC_KEY *wolfSSL_EC_KEY_new(void)
|
|||
goto error;
|
||||
}
|
||||
|
||||
/* curve group */
|
||||
external->group = wolfSSL_EC_GROUP_new_by_curve_name(ECC_CURVE_DEF);
|
||||
/* Group unknown at creation */
|
||||
external->group = wolfSSL_EC_GROUP_new_by_curve_name(NID_undef);
|
||||
if (external->group == NULL) {
|
||||
WOLFSSL_MSG("wolfSSL_EC_KEY_new malloc WOLFSSL_EC_GROUP failure");
|
||||
goto error;
|
||||
|
@ -36433,18 +36433,28 @@ void wolfSSL_EC_KEY_free(WOLFSSL_EC_KEY *key)
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef NO_WOLFSSL_STUB
|
||||
|
||||
/* set the group in WOLFSSL_EC_KEY and return WOLFSSL_SUCCESS on success */
|
||||
int wolfSSL_EC_KEY_set_group(WOLFSSL_EC_KEY *key, WOLFSSL_EC_GROUP *group)
|
||||
{
|
||||
(void)key;
|
||||
(void)group;
|
||||
if (key == NULL || group == NULL)
|
||||
return WOLFSSL_FAILURE;
|
||||
|
||||
WOLFSSL_ENTER("wolfSSL_EC_KEY_set_group");
|
||||
WOLFSSL_STUB("EC_KEY_set_group");
|
||||
|
||||
return -1;
|
||||
if (key->group != NULL) {
|
||||
/* free the current group */
|
||||
wolfSSL_EC_GROUP_free(key->group);
|
||||
}
|
||||
|
||||
key->group = wolfSSL_EC_GROUP_dup(group);
|
||||
if (key->group == NULL) {
|
||||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
int wolfSSL_EC_KEY_generate_key(WOLFSSL_EC_KEY *key)
|
||||
{
|
||||
|
|
23
tests/api.c
23
tests/api.c
|
@ -36901,6 +36901,28 @@ static void test_wolfSSL_NCONF(void)
|
|||
}
|
||||
#endif /* OPENSSL_ALL */
|
||||
|
||||
static void test_wolfSSL_EC_KEY_set_group(void)
|
||||
{
|
||||
#if defined(HAVE_ECC) && !defined(NO_ECC256) && !defined(NO_ECC_SECP) && \
|
||||
defined(OPENSSL_EXTRA)
|
||||
EC_KEY *key = NULL;
|
||||
EC_GROUP *group = NULL;
|
||||
const EC_GROUP *group2 = NULL;
|
||||
|
||||
printf(testingFmt, "wolfSSL_EC_KEY_dup()");
|
||||
|
||||
AssertNotNull(group = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1));
|
||||
AssertNotNull(key = EC_KEY_new());
|
||||
AssertIntEQ(EC_KEY_set_group(key, group), WOLFSSL_SUCCESS);
|
||||
AssertNotNull(group2 = EC_KEY_get0_group(key));
|
||||
AssertIntEQ(EC_GROUP_cmp(group2, group, NULL), 0);
|
||||
|
||||
EC_GROUP_free(group);
|
||||
EC_KEY_free(key);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void test_wolfSSL_X509V3_EXT_get(void) {
|
||||
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL)
|
||||
|
@ -42433,6 +42455,7 @@ void ApiTest(void)
|
|||
test_CRYPTO_THREADID_xxx();
|
||||
test_ENGINE_cleanup();
|
||||
|
||||
test_wolfSSL_EC_KEY_set_group();
|
||||
#if defined(OPENSSL_ALL)
|
||||
test_wolfSSL_X509_PUBKEY_get();
|
||||
test_wolfSSL_sk_CIPHER_description();
|
||||
|
|
Loading…
Reference in New Issue