mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +02:00
Keep compatibility with old OPENSSL_EXTRA_X509_SMALL functions
This commit is contained in:
@ -19733,7 +19733,6 @@ int wolfSSL_X509_NAME_get_text_by_NID(WOLFSSL_X509_NAME* name,
|
||||
return (textSz - 1); /* do not include null character in size */
|
||||
}
|
||||
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
#ifdef HAVE_ECC
|
||||
static int SetECKeyExternal(WOLFSSL_EC_KEY* eckey);
|
||||
#endif
|
||||
@ -19845,7 +19844,6 @@ WOLFSSL_EVP_PKEY* wolfSSL_X509_get_pubkey(WOLFSSL_X509* x509)
|
||||
}
|
||||
return key;
|
||||
}
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
#endif /* OPENSSL_EXTRA_X509_SMALL */
|
||||
#endif /* !NO_CERTS */
|
||||
|
||||
@ -30693,7 +30691,7 @@ static int SetECPointInternal(WOLFSSL_EC_POINT *p)
|
||||
#endif /* HAVE_ECC */
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#if defined(HAVE_ECC) && defined(OPENSSL_EXTRA)
|
||||
#if defined(HAVE_ECC) && defined(OPENSSL_EXTRA_X509_SMALL)
|
||||
|
||||
/* EC_POINT WolfSSL -> OpenSSL */
|
||||
static int SetECPointExternal(WOLFSSL_EC_POINT *p)
|
||||
|
@ -22186,7 +22186,7 @@ static void test_wolfSSL_CTX_add_client_CA(void)
|
||||
|
||||
static void test_wolfSSL_X509_NID(void)
|
||||
{
|
||||
#if defined(OPENSSL_EXTRA) && \
|
||||
#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)) && \
|
||||
!defined(NO_RSA) && defined(USE_CERT_BUFFERS_2048) && !defined(NO_ASN)
|
||||
int sigType;
|
||||
int nameSz;
|
||||
|
@ -5400,116 +5400,6 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
||||
/* nothing to do here */
|
||||
}
|
||||
|
||||
WOLFSSL_EVP_PKEY* wolfSSL_EVP_PKEY_new(void){
|
||||
return wolfSSL_EVP_PKEY_new_ex(NULL);
|
||||
}
|
||||
|
||||
|
||||
WOLFSSL_EVP_PKEY* wolfSSL_EVP_PKEY_new_ex(void* heap)
|
||||
{
|
||||
WOLFSSL_EVP_PKEY* pkey;
|
||||
int ret;
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_PKEY_new");
|
||||
pkey = (WOLFSSL_EVP_PKEY*)XMALLOC(sizeof(WOLFSSL_EVP_PKEY), heap,
|
||||
DYNAMIC_TYPE_PUBLIC_KEY);
|
||||
if (pkey != NULL) {
|
||||
XMEMSET(pkey, 0, sizeof(WOLFSSL_EVP_PKEY));
|
||||
pkey->heap = heap;
|
||||
pkey->type = WOLFSSL_EVP_PKEY_DEFAULT;
|
||||
#ifndef HAVE_FIPS
|
||||
ret = wc_InitRng_ex(&pkey->rng, heap, INVALID_DEVID);
|
||||
#else
|
||||
ret = wc_InitRng(&pkey->rng);
|
||||
#endif
|
||||
if (ret != 0){
|
||||
wolfSSL_EVP_PKEY_free(pkey);
|
||||
WOLFSSL_MSG("memory failure");
|
||||
return NULL;
|
||||
}
|
||||
pkey->references = 1;
|
||||
wc_InitMutex(&pkey->refMutex);
|
||||
}
|
||||
else {
|
||||
WOLFSSL_MSG("memory failure");
|
||||
}
|
||||
|
||||
return pkey;
|
||||
}
|
||||
|
||||
|
||||
void wolfSSL_EVP_PKEY_free(WOLFSSL_EVP_PKEY* key)
|
||||
{
|
||||
int doFree = 0;
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_PKEY_free");
|
||||
if (key != NULL) {
|
||||
if (wc_LockMutex(&key->refMutex) != 0) {
|
||||
WOLFSSL_MSG("Couldn't lock pkey mutex");
|
||||
}
|
||||
|
||||
/* only free if all references to it are done */
|
||||
key->references--;
|
||||
if (key->references == 0) {
|
||||
doFree = 1;
|
||||
}
|
||||
wc_UnLockMutex(&key->refMutex);
|
||||
|
||||
if (doFree) {
|
||||
wc_FreeRng(&key->rng);
|
||||
|
||||
if (key->pkey.ptr != NULL) {
|
||||
XFREE(key->pkey.ptr, key->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
||||
key->pkey.ptr = NULL;
|
||||
}
|
||||
switch(key->type)
|
||||
{
|
||||
#ifndef NO_RSA
|
||||
case EVP_PKEY_RSA:
|
||||
if (key->rsa != NULL && key->ownRsa == 1) {
|
||||
wolfSSL_RSA_free(key->rsa);
|
||||
key->rsa = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* NO_RSA */
|
||||
|
||||
#ifdef HAVE_ECC
|
||||
case EVP_PKEY_EC:
|
||||
if (key->ecc != NULL && key->ownEcc == 1) {
|
||||
wolfSSL_EC_KEY_free(key->ecc);
|
||||
key->ecc = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* HAVE_ECC */
|
||||
|
||||
#ifndef NO_DSA
|
||||
case EVP_PKEY_DSA:
|
||||
if (key->dsa != NULL && key->ownDsa == 1) {
|
||||
wolfSSL_DSA_free(key->dsa);
|
||||
key->dsa = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* NO_DSA */
|
||||
|
||||
#if !defined(NO_DH) && (defined(WOLFSSL_QT) || defined(OPENSSL_ALL))
|
||||
case EVP_PKEY_DH:
|
||||
if (key->dh != NULL && key->ownDh == 1) {
|
||||
wolfSSL_DH_free(key->dh);
|
||||
key->dh = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* ! NO_DH ... */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (wc_FreeMutex(&key->refMutex) != 0) {
|
||||
WOLFSSL_MSG("Couldn't free pkey mutex");
|
||||
}
|
||||
XFREE(key, key->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const WOLFSSL_EVP_MD* wolfSSL_EVP_get_digestbynid(int id)
|
||||
{
|
||||
WOLFSSL_MSG("wolfSSL_get_digestbynid");
|
||||
@ -6492,4 +6382,117 @@ int wolfSSL_EVP_PKEY_assign_DH(EVP_PKEY* pkey, WOLFSSL_DH* key)
|
||||
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#ifdef OPENSSL_EXTRA_X509_SMALL
|
||||
|
||||
WOLFSSL_EVP_PKEY* wolfSSL_EVP_PKEY_new(void){
|
||||
return wolfSSL_EVP_PKEY_new_ex(NULL);
|
||||
}
|
||||
|
||||
|
||||
WOLFSSL_EVP_PKEY* wolfSSL_EVP_PKEY_new_ex(void* heap)
|
||||
{
|
||||
WOLFSSL_EVP_PKEY* pkey;
|
||||
int ret;
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_PKEY_new");
|
||||
pkey = (WOLFSSL_EVP_PKEY*)XMALLOC(sizeof(WOLFSSL_EVP_PKEY), heap,
|
||||
DYNAMIC_TYPE_PUBLIC_KEY);
|
||||
if (pkey != NULL) {
|
||||
XMEMSET(pkey, 0, sizeof(WOLFSSL_EVP_PKEY));
|
||||
pkey->heap = heap;
|
||||
pkey->type = WOLFSSL_EVP_PKEY_DEFAULT;
|
||||
#ifndef HAVE_FIPS
|
||||
ret = wc_InitRng_ex(&pkey->rng, heap, INVALID_DEVID);
|
||||
#else
|
||||
ret = wc_InitRng(&pkey->rng);
|
||||
#endif
|
||||
if (ret != 0){
|
||||
wolfSSL_EVP_PKEY_free(pkey);
|
||||
WOLFSSL_MSG("memory failure");
|
||||
return NULL;
|
||||
}
|
||||
pkey->references = 1;
|
||||
wc_InitMutex(&pkey->refMutex);
|
||||
}
|
||||
else {
|
||||
WOLFSSL_MSG("memory failure");
|
||||
}
|
||||
|
||||
return pkey;
|
||||
}
|
||||
|
||||
void wolfSSL_EVP_PKEY_free(WOLFSSL_EVP_PKEY* key)
|
||||
{
|
||||
int doFree = 0;
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_PKEY_free");
|
||||
if (key != NULL) {
|
||||
if (wc_LockMutex(&key->refMutex) != 0) {
|
||||
WOLFSSL_MSG("Couldn't lock pkey mutex");
|
||||
}
|
||||
|
||||
/* only free if all references to it are done */
|
||||
key->references--;
|
||||
if (key->references == 0) {
|
||||
doFree = 1;
|
||||
}
|
||||
wc_UnLockMutex(&key->refMutex);
|
||||
|
||||
if (doFree) {
|
||||
wc_FreeRng(&key->rng);
|
||||
|
||||
if (key->pkey.ptr != NULL) {
|
||||
XFREE(key->pkey.ptr, key->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
||||
key->pkey.ptr = NULL;
|
||||
}
|
||||
switch(key->type)
|
||||
{
|
||||
#ifndef NO_RSA
|
||||
case EVP_PKEY_RSA:
|
||||
if (key->rsa != NULL && key->ownRsa == 1) {
|
||||
wolfSSL_RSA_free(key->rsa);
|
||||
key->rsa = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* NO_RSA */
|
||||
|
||||
#ifdef HAVE_ECC
|
||||
case EVP_PKEY_EC:
|
||||
if (key->ecc != NULL && key->ownEcc == 1) {
|
||||
wolfSSL_EC_KEY_free(key->ecc);
|
||||
key->ecc = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* HAVE_ECC */
|
||||
|
||||
#ifndef NO_DSA
|
||||
case EVP_PKEY_DSA:
|
||||
if (key->dsa != NULL && key->ownDsa == 1) {
|
||||
wolfSSL_DSA_free(key->dsa);
|
||||
key->dsa = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* NO_DSA */
|
||||
|
||||
#if !defined(NO_DH) && (defined(WOLFSSL_QT) || defined(OPENSSL_ALL))
|
||||
case EVP_PKEY_DH:
|
||||
if (key->dh != NULL && key->ownDh == 1) {
|
||||
wolfSSL_DH_free(key->dh);
|
||||
key->dh = NULL;
|
||||
}
|
||||
break;
|
||||
#endif /* ! NO_DH ... */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (wc_FreeMutex(&key->refMutex) != 0) {
|
||||
WOLFSSL_MSG("Couldn't free pkey mutex");
|
||||
}
|
||||
XFREE(key, key->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* OPENSSL_EXTRA_X509_SMALL */
|
||||
|
||||
#endif /* WOLFSSL_EVP_INCLUDED */
|
||||
|
@ -1165,7 +1165,7 @@ WOLFSSL_API WOLFSSL_SESSION* wolfSSL_get1_session(WOLFSSL* ssl);
|
||||
/* what's ref count */
|
||||
|
||||
WOLFSSL_API WOLFSSL_X509* wolfSSL_X509_new(void);
|
||||
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)
|
||||
#if defined(OPENSSL_EXTRA_X509_SMALL) || defined(OPENSSL_ALL)
|
||||
WOLFSSL_API int wolfSSL_RSA_up_ref(WOLFSSL_RSA* rsa);
|
||||
WOLFSSL_API int wolfSSL_X509_up_ref(WOLFSSL_X509* x509);
|
||||
WOLFSSL_API int wolfSSL_EVP_PKEY_up_ref(WOLFSSL_EVP_PKEY* pkey);
|
||||
|
Reference in New Issue
Block a user