mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Fix merge conflict resolution in ECC_populate_EVP_PKEY
This commit is contained in:
@ -42480,7 +42480,7 @@ int wolfSSL_CTX_use_PrivateKey(WOLFSSL_CTX *ctx, WOLFSSL_EVP_PKEY *pkey)
|
||||
#ifdef HAVE_ECC
|
||||
case EVP_PKEY_EC:
|
||||
WOLFSSL_MSG("populating ECC key");
|
||||
if (ECC_populate_EVP_PKEY(pkey, (ecc_key*)pkey->ecc->internal)
|
||||
if (ECC_populate_EVP_PKEY(pkey, pkey->ecc)
|
||||
!= WOLFSSL_SUCCESS)
|
||||
return WOLFSSL_FAILURE;
|
||||
break;
|
||||
|
@ -6587,18 +6587,20 @@ int wolfSSL_EVP_PKEY_assign(WOLFSSL_EVP_PKEY *pkey, int type, void *key)
|
||||
/* try and populate public pkey_sz and pkey.ptr */
|
||||
static int ECC_populate_EVP_PKEY(EVP_PKEY* pkey, WOLFSSL_EC_KEY *key)
|
||||
{
|
||||
<<<<<<< master
|
||||
int derSz = 0;
|
||||
byte* derBuf = NULL;
|
||||
ecc_key* ecc;
|
||||
|
||||
if (pkey == NULL || key == NULL || key->internal == NULL)
|
||||
return WOLFSSL_FAILURE;
|
||||
|
||||
ecc = (ecc_key*)key->internal;
|
||||
if (ecc->type == ECC_PRIVATEKEY || ecc->type == ECC_PRIVATEKEY_ONLY) {
|
||||
#ifdef HAVE_PKCS8
|
||||
if (key->pkcs8HeaderSz) {
|
||||
/* when key has pkcs8 header the pkey should too */
|
||||
if (wc_EccKeyToPKCS8(ecc, NULL, (word32*)&derSz) == LENGTH_ONLY_E) {
|
||||
byte* derBuf = (byte*)XMALLOC(derSz, pkey->heap, DYNAMIC_TYPE_OPENSSL);
|
||||
derBuf = (byte*)XMALLOC(derSz, pkey->heap, DYNAMIC_TYPE_OPENSSL);
|
||||
if (derBuf) {
|
||||
if (wc_EccKeyToPKCS8(ecc, derBuf, (word32*)&derSz) >= 0) {
|
||||
if (pkey->pkey.ptr) {
|
||||
@ -6611,46 +6613,17 @@ static int ECC_populate_EVP_PKEY(EVP_PKEY* pkey, WOLFSSL_EC_KEY *key)
|
||||
}
|
||||
else {
|
||||
XFREE(derBuf, pkey->heap, DYNAMIC_TYPE_OPENSSL);
|
||||
=======
|
||||
word32 derSz = 0;
|
||||
byte* derBuf = NULL;
|
||||
if (!pkey || !ecc)
|
||||
return WOLFSSL_FAILURE;
|
||||
if (ecc->type == ECC_PRIVATEKEY || ecc->type == ECC_PRIVATEKEY_ONLY) {
|
||||
#ifdef HAVE_PKCS8
|
||||
if (wc_EccKeyToPKCS8(ecc, NULL, &derSz) == LENGTH_ONLY_E) {
|
||||
derBuf = (byte*)XREALLOC(pkey->pkey.ptr, derSz, NULL,
|
||||
DYNAMIC_TYPE_OPENSSL);
|
||||
if (derBuf != NULL) {
|
||||
pkey->pkey.ptr = (char*)derBuf;
|
||||
if (wc_EccKeyToPKCS8(ecc, derBuf, &derSz) < 0) {
|
||||
XFREE(derBuf, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||
>>>>>>> WIP
|
||||
derBuf = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
derSz = (word32)wc_EccKeyDerSize(ecc, 1);
|
||||
if (derSz > 0) {
|
||||
derBuf = (byte*)XREALLOC(pkey->pkey.ptr, derSz, NULL,
|
||||
DYNAMIC_TYPE_OPENSSL);
|
||||
if (derBuf != NULL) {
|
||||
pkey->pkey.ptr = (char*)derBuf;
|
||||
if (wc_EccKeyToDer(ecc, derBuf, derSz) < 0) {
|
||||
XFREE(derBuf, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||
derBuf = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
#endif /* HAVE_PKCS8 */
|
||||
}
|
||||
<<<<<<< master
|
||||
else {
|
||||
{
|
||||
/* if not, the pkey will be traditional ecc key */
|
||||
if ((derSz = wc_EccKeyDerSize(ecc, 1)) > 0) {
|
||||
byte* derBuf = (byte*)XMALLOC(derSz, pkey->heap, DYNAMIC_TYPE_OPENSSL);
|
||||
derBuf = (byte*)XMALLOC(derSz, pkey->heap, DYNAMIC_TYPE_OPENSSL);
|
||||
if (derBuf) {
|
||||
if (wc_EccKeyToDer(ecc, derBuf, derSz) >= 0) {
|
||||
if (pkey->pkey.ptr) {
|
||||
@ -6662,7 +6635,12 @@ static int ECC_populate_EVP_PKEY(EVP_PKEY* pkey, WOLFSSL_EC_KEY *key)
|
||||
}
|
||||
else {
|
||||
XFREE(derBuf, pkey->heap, DYNAMIC_TYPE_OPENSSL);
|
||||
=======
|
||||
derBuf = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (ecc->type == ECC_PUBLICKEY) {
|
||||
if ((derSz = (word32)wc_EccPublicKeyDerSize(ecc, 1)) > 0) {
|
||||
derBuf = (byte*)XREALLOC(pkey->pkey.ptr, derSz, NULL,
|
||||
@ -6671,7 +6649,6 @@ static int ECC_populate_EVP_PKEY(EVP_PKEY* pkey, WOLFSSL_EC_KEY *key)
|
||||
pkey->pkey.ptr = (char*)derBuf;
|
||||
if (wc_EccPublicKeyToDer(ecc, derBuf, derSz, 1) < 0) {
|
||||
XFREE(derBuf, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||
>>>>>>> WIP
|
||||
derBuf = NULL;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user