Fixes for building with `HAVE_EX_DATA` no compat layer.

pull/4931/head
David Garske 2022-03-07 15:16:41 -08:00 committed by Daniel Pouzzner
parent 0231304607
commit 9b808bde20
5 changed files with 78 additions and 60 deletions

View File

@ -47574,32 +47574,32 @@ static int get_ex_new_index(int class_index)
int idx = -1;
switch(class_index) {
case CRYPTO_EX_INDEX_SSL:
case WOLF_CRYPTO_EX_INDEX_SSL:
idx = ssl_idx++;
break;
case CRYPTO_EX_INDEX_SSL_CTX:
case WOLF_CRYPTO_EX_INDEX_SSL_CTX:
idx = ctx_idx++;
break;
case CRYPTO_EX_INDEX_X509:
case WOLF_CRYPTO_EX_INDEX_X509:
idx = x509_idx++;
break;
case CRYPTO_EX_INDEX_SSL_SESSION:
case WOLF_CRYPTO_EX_INDEX_SSL_SESSION:
idx = ssl_session_idx++;
break;
/* following class indexes are not supoprted */
case CRYPTO_EX_INDEX_X509_STORE:
case CRYPTO_EX_INDEX_X509_STORE_CTX:
case CRYPTO_EX_INDEX_DH:
case CRYPTO_EX_INDEX_DSA:
case CRYPTO_EX_INDEX_EC_KEY:
case CRYPTO_EX_INDEX_RSA:
case CRYPTO_EX_INDEX_ENGINE:
case CRYPTO_EX_INDEX_UI:
case CRYPTO_EX_INDEX_BIO:
case CRYPTO_EX_INDEX_APP:
case CRYPTO_EX_INDEX_UI_METHOD:
case CRYPTO_EX_INDEX_DRBG:
case WOLF_CRYPTO_EX_INDEX_X509_STORE:
case WOLF_CRYPTO_EX_INDEX_X509_STORE_CTX:
case WOLF_CRYPTO_EX_INDEX_DH:
case WOLF_CRYPTO_EX_INDEX_DSA:
case WOLF_CRYPTO_EX_INDEX_EC_KEY:
case WOLF_CRYPTO_EX_INDEX_RSA:
case WOLF_CRYPTO_EX_INDEX_ENGINE:
case WOLF_CRYPTO_EX_INDEX_UI:
case WOLF_CRYPTO_EX_INDEX_BIO:
case WOLF_CRYPTO_EX_INDEX_APP:
case WOLF_CRYPTO_EX_INDEX_UI_METHOD:
case WOLF_CRYPTO_EX_INDEX_DRBG:
default:
break;
}
@ -47633,7 +47633,7 @@ int wolfSSL_CTX_get_ex_new_index(long idx, void* arg, void* a, void* b,
(void)b;
(void)c;
return get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX);
return get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL_CTX);
}
/* Return the index that can be used for the WOLFSSL structure to store
@ -47653,7 +47653,7 @@ int wolfSSL_get_ex_new_index(long argValue, void* arg,
(void)cb2;
(void)cb3;
return get_ex_new_index(CRYPTO_EX_INDEX_SSL);
return get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL);
}
@ -49121,7 +49121,7 @@ int wolfSSL_SESSION_get_ex_new_index(long idx, void* data, void* cb1,
(void)cb2;
(void)cb3;
(void)data;
return get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION);
return get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL_SESSION);
}
#endif
@ -58123,9 +58123,9 @@ int wolfSSL_CRYPTO_set_ex_data_with_cleanup(
* Issues unique index for the class specified by class_index.
* Other parameter except class_index are ignored.
* Currently, following class_index are accepted:
* - CRYPTO_EX_INDEX_SSL
* - CRYPTO_EX_INDEX_SSL_CTX
* - CRYPTO_EX_INDEX_X509
* - WOLF_CRYPTO_EX_INDEX_SSL
* - WOLF_CRYPTO_EX_INDEX_SSL_CTX
* - WOLF_CRYPTO_EX_INDEX_X509
* @param class_index index one of CRYPTO_EX_INDEX_xxx
* @param argp parameters to be saved
* @param argl parameters to be saved

View File

@ -51226,61 +51226,61 @@ static void test_wolfSSL_CRYPTO_get_ex_new_index(void)
printf(testingFmt, "test_wolfSSL_CRYPTO_get_ex_new_index()");
/* test for unsupported class index */
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_X509_STORE,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_X509_STORE_CTX,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_DH,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_DSA,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_EC_KEY,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_RSA,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_ENGINE,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_UI,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_BIO,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_APP,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_APP,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI_METHOD,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_UI_METHOD,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DRBG,
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_DRBG,
0,NULL, NULL, NULL, NULL ), -1);
AssertIntEQ(wolfSSL_CRYPTO_get_ex_new_index(20, 0,NULL, NULL, NULL, NULL ), -1);
/* test for supported class index */
idx1 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL,
idx1 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL,
0,NULL, NULL, NULL, NULL );
idx2 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL,
idx2 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL,
0,NULL, NULL, NULL, NULL );
AssertIntNE(idx1, -1);
AssertIntNE(idx2, -1);
AssertIntNE(idx1, idx2);
idx1 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX,
idx1 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL_CTX,
0,NULL, NULL, NULL, NULL );
idx2 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX,
idx2 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL_CTX,
0,NULL, NULL, NULL, NULL );
AssertIntNE(idx1, -1);
AssertIntNE(idx2, -1);
AssertIntNE(idx1, idx2);
idx1 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509,
idx1 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_X509,
0,NULL, NULL, NULL, NULL );
idx2 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509,
idx2 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_X509,
0,NULL, NULL, NULL, NULL );
AssertIntNE(idx1, -1);
AssertIntNE(idx2, -1);
AssertIntNE(idx1, idx2);
idx1 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION,
idx1 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL_SESSION,
0,NULL, NULL, NULL, NULL );
idx2 = wolfSSL_CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION,
idx2 = wolfSSL_CRYPTO_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL_SESSION,
0,NULL, NULL, NULL, NULL );
AssertIntNE(idx1, -1);
AssertIntNE(idx2, -1);

View File

@ -68,23 +68,23 @@ WOLFSSL_API int wolfSSL_OPENSSL_init_crypto(word64 opts, const OPENSSL_INIT_SETT
#endif
/* class index for wolfSSL_CRYPTO_get_ex_new_index */
#define CRYPTO_EX_INDEX_SSL 0
#define CRYPTO_EX_INDEX_SSL_CTX 1
#define CRYPTO_EX_INDEX_SSL_SESSION 2
#define CRYPTO_EX_INDEX_X509 3
#define CRYPTO_EX_INDEX_X509_STORE 4
#define CRYPTO_EX_INDEX_X509_STORE_CTX 5
#define CRYPTO_EX_INDEX_DH 6
#define CRYPTO_EX_INDEX_DSA 7
#define CRYPTO_EX_INDEX_EC_KEY 8
#define CRYPTO_EX_INDEX_RSA 9
#define CRYPTO_EX_INDEX_ENGINE 10
#define CRYPTO_EX_INDEX_UI 11
#define CRYPTO_EX_INDEX_BIO 12
#define CRYPTO_EX_INDEX_APP 13
#define CRYPTO_EX_INDEX_UI_METHOD 14
#define CRYPTO_EX_INDEX_DRBG 15
#define CRYPTO_EX_INDEX__COUNT 16
#define CRYPTO_EX_INDEX_SSL WOLF_CRYPTO_EX_INDEX_SSL
#define CRYPTO_EX_INDEX_SSL_CTX WOLF_CRYPTO_EX_INDEX_SSL_CTX
#define CRYPTO_EX_INDEX_SSL_SESSION WOLF_CRYPTO_EX_INDEX_SSL_SESSION
#define CRYPTO_EX_INDEX_X509 WOLF_CRYPTO_EX_INDEX_X509
#define CRYPTO_EX_INDEX_X509_STORE WOLF_CRYPTO_EX_INDEX_X509_STORE
#define CRYPTO_EX_INDEX_X509_STORE_CTX WOLF_CRYPTO_EX_INDEX_X509_STORE_CTX
#define CRYPTO_EX_INDEX_DH WOLF_CRYPTO_EX_INDEX_DH
#define CRYPTO_EX_INDEX_DSA WOLF_CRYPTO_EX_INDEX_DSA
#define CRYPTO_EX_INDEX_EC_KEY WOLF_CRYPTO_EX_INDEX_EC_KEY
#define CRYPTO_EX_INDEX_RSA WOLF_CRYPTO_EX_INDEX_RSA
#define CRYPTO_EX_INDEX_ENGINE WOLF_CRYPTO_EX_INDEX_ENGINE
#define CRYPTO_EX_INDEX_UI WOLF_CRYPTO_EX_INDEX_UI
#define CRYPTO_EX_INDEX_BIO WOLF_CRYPTO_EX_INDEX_BIO
#define CRYPTO_EX_INDEX_APP WOLF_CRYPTO_EX_INDEX_APP
#define CRYPTO_EX_INDEX_UI_METHOD WOLF_CRYPTO_EX_INDEX_UI_METHOD
#define CRYPTO_EX_INDEX_DRBG WOLF_CRYPTO_EX_INDEX_DRBG
#define CRYPTO_EX_INDEX__COUNT WOLF_CRYPTO_EX_INDEX__COUNT
#define crypto_threadid_st WOLFSSL_CRYPTO_THREADID
#define CRYPTO_THREADID WOLFSSL_CRYPTO_THREADID

View File

@ -1277,7 +1277,6 @@ typedef WOLFSSL_SRTP_PROTECTION_PROFILE SRTP_PROTECTION_PROFILE;
#define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L
#define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L
#define CRYPTO_EX_INDEX_SSL 0
#define TLS_ANY_VERSION 0x10000
#define DTLS1_2_VERSION 0xFEFD
#define DTLS_MAX_VERSION DTLS1_2_VERSION

View File

@ -1146,6 +1146,25 @@ WOLFSSL_API WOLFSSL_X509* wolfSSL_SESSION_get0_peer(WOLFSSL_SESSION* session);
typedef int (*VerifyCallback)(int, WOLFSSL_X509_STORE_CTX*);
typedef void (CallbackInfoState)(const WOLFSSL* ssl, int, int);
/* class index for wolfSSL_CRYPTO_get_ex_new_index */
#define WOLF_CRYPTO_EX_INDEX_SSL 0
#define WOLF_CRYPTO_EX_INDEX_SSL_CTX 1
#define WOLF_CRYPTO_EX_INDEX_SSL_SESSION 2
#define WOLF_CRYPTO_EX_INDEX_X509 3
#define WOLF_CRYPTO_EX_INDEX_X509_STORE 4
#define WOLF_CRYPTO_EX_INDEX_X509_STORE_CTX 5
#define WOLF_CRYPTO_EX_INDEX_DH 6
#define WOLF_CRYPTO_EX_INDEX_DSA 7
#define WOLF_CRYPTO_EX_INDEX_EC_KEY 8
#define WOLF_CRYPTO_EX_INDEX_RSA 9
#define WOLF_CRYPTO_EX_INDEX_ENGINE 10
#define WOLF_CRYPTO_EX_INDEX_UI 11
#define WOLF_CRYPTO_EX_INDEX_BIO 12
#define WOLF_CRYPTO_EX_INDEX_APP 13
#define WOLF_CRYPTO_EX_INDEX_UI_METHOD 14
#define WOLF_CRYPTO_EX_INDEX_DRBG 15
#define WOLF_CRYPTO_EX_INDEX__COUNT 16
#ifdef HAVE_EX_DATA
typedef int (WOLFSSL_CRYPTO_EX_new)(void* p, void* ptr,
WOLFSSL_CRYPTO_EX_DATA* a, int idx, long argValue, void* arg);