Skip to content

Commit c06f65a

Browse files
Merge pull request wolfSSL#8182 from dgarske/no_compat_headers
Support for building without wolfssl/openssl header files
2 parents be70bea + 6be70f9 commit c06f65a

19 files changed

Lines changed: 569 additions & 489 deletions

File tree

.wolfssl_known_macro_extras

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ HAVE_AESGCM_DECRYPT
205205
HAVE_BYTEREVERSE64
206206
HAVE_CERTIFICATE_STATUS_V2
207207
HAVE_COLDFIRE_SEC
208+
HAVE_CRL_UPDATE_CB
208209
HAVE_CSHARP
209210
HAVE_CURL
210211
HAVE_CURVE22519
@@ -215,6 +216,8 @@ HAVE_ECC512
215216
HAVE_ECC_CDH_CAST
216217
HAVE_ECC_SM2
217218
HAVE_ESP_CLK
219+
HAVE_EX_DATA_CRYPTO
220+
HAVE_EX_DATA_CLEANUP_HOOKS
218221
HAVE_FACON
219222
HAVE_FIPS_VERSION_PORT
220223
HAVE_FUZZER

configure.ac

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9859,6 +9859,7 @@ fi
98599859
# Some of these affect build targets and objects, some trigger different
98609860
# test scripts for make check.
98619861
AM_CONDITIONAL([BUILD_DISTRO],[test "x$ENABLED_DISTRO" = "xyes"])
9862+
AM_CONDITIONAL([BUILD_OPENSSL_COMPAT],[test "x$ENABLED_OPENSSLEXTRA" != "xno" && test "x$ENABLED_OPENSSLCOEXIST" = "xno"])
98629863
AM_CONDITIONAL([BUILD_ALL],[test "x$ENABLED_ALL" = "xyes"])
98639864
AM_CONDITIONAL([BUILD_TLS13],[test "x$ENABLED_TLS13" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
98649865
AM_CONDITIONAL([BUILD_RNG],[test "x$ENABLED_RNG" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])

examples/client/client.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3765,7 +3765,8 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
37653765

37663766
#ifndef NO_PSK
37673767
if (usePsk) {
3768-
#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_TLS13) && defined(TEST_PSK_USE_SESSION)
3768+
#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_TLS13) && \
3769+
defined(TEST_PSK_USE_SESSION)
37693770
SSL_set_psk_use_session_callback(ssl, my_psk_use_session_cb);
37703771
#endif
37713772
}

examples/server/server.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@
3535
#undef TEST_OPENSSL_COEXIST /* can't use this option with this example */
3636
#undef OPENSSL_COEXIST /* can't use this option with this example */
3737

38+
/* Force enable the compatibility macros for this example */
39+
#ifndef OPENSSL_EXTRA_X509_SMALL
40+
#define OPENSSL_EXTRA_X509_SMALL
41+
#endif
42+
#include <wolfssl/openssl/ssl.h>
43+
44+
#undef OPENSSL_EXTRA_X509_SMALL
3845
#include <wolfssl/ssl.h> /* name change portability layer */
3946

4047
#ifdef HAVE_ECC
@@ -66,12 +73,6 @@ static const char *wolfsentry_config_path = NULL;
6673
#include <wolfssl/test.h>
6774
#include <wolfssl/error-ssl.h>
6875

69-
/* Force enable the compatibility macros for this example */
70-
#ifndef OPENSSL_EXTRA_X509_SMALL
71-
#define OPENSSL_EXTRA_X509_SMALL
72-
#endif
73-
#include <wolfssl/openssl/ssl.h>
74-
7576
#include "examples/server/server.h"
7677

7778
#ifndef NO_WOLFSSL_SERVER

src/internal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22476,7 +22476,7 @@ int SendChangeCipher(WOLFSSL* ssl)
2247622476
if (ssl->CBIS != NULL)
2247722477
ssl->CBIS(ssl, WOLFSSL_CB_ACCEPT_LOOP, WOLFSSL_SUCCESS);
2247822478
}
22479-
else{
22479+
else {
2248022480
ssl->options.clientState =
2248122481
CLIENT_CHANGECIPHERSPEC_COMPLETE;
2248222482
if (ssl->CBIS != NULL)

src/ssl.c

Lines changed: 40 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -10537,11 +10537,7 @@ int wolfSSL_Cleanup(void)
1053710537
#endif
1053810538
#endif
1053910539

10540-
#if defined(HAVE_EX_DATA) && \
10541-
(defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || \
10542-
defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA) || \
10543-
defined(HAVE_LIGHTY)) || defined(HAVE_EX_DATA) || \
10544-
defined(WOLFSSL_WPAS_SMALL)
10540+
#ifdef HAVE_EX_DATA_CRYPTO
1054510541
crypto_ex_cb_free(crypto_ex_cb_ctx_session);
1054610542
crypto_ex_cb_ctx_session = NULL;
1054710543
#endif
@@ -17435,6 +17431,7 @@ int wolfSSL_cmp_peer_cert_to_file(WOLFSSL* ssl, const char *fname)
1743517431
}
1743617432
#endif
1743717433
#endif /* OPENSSL_EXTRA */
17434+
1743817435
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
1743917436
const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
1744017437
#ifndef NO_CERTS
@@ -17893,7 +17890,7 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
1789317890
#define WOLFSSL_OBJECT_INFO_SZ \
1789417891
(sizeof(wolfssl_object_info) / sizeof(*wolfssl_object_info))
1789517892
const size_t wolfssl_object_info_sz = WOLFSSL_OBJECT_INFO_SZ;
17896-
#endif
17893+
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
1789717894

1789817895
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
1789917896
/* Free the dynamically allocated data.
@@ -19676,11 +19673,7 @@ unsigned long wolfSSL_ERR_peek_last_error_line(const char **file, int *line)
1967619673

1967719674
#endif /* OPENSSL_EXTRA */
1967819675

19679-
#if defined(HAVE_EX_DATA) && \
19680-
(defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || \
19681-
defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA) || \
19682-
defined(HAVE_LIGHTY)) || defined(HAVE_EX_DATA) || \
19683-
defined(WOLFSSL_WPAS_SMALL)
19676+
#ifdef HAVE_EX_DATA_CRYPTO
1968419677
CRYPTO_EX_cb_ctx* crypto_ex_cb_ctx_session = NULL;
1968519678

1968619679
static int crypto_ex_cb_new(CRYPTO_EX_cb_ctx** dst, long ctx_l, void* ctx_ptr,
@@ -19818,23 +19811,9 @@ int wolfssl_get_ex_new_index(int class_index, long ctx_l, void* ctx_ptr,
1981819811
return WOLFSSL_FATAL_ERROR;
1981919812
return idx;
1982019813
}
19821-
#endif /* HAVE_EX_DATA || WOLFSSL_WPAS_SMALL */
19822-
19823-
#if defined(HAVE_EX_DATA) || defined(WOLFSSL_WPAS_SMALL)
19824-
void* wolfSSL_CTX_get_ex_data(const WOLFSSL_CTX* ctx, int idx)
19825-
{
19826-
WOLFSSL_ENTER("wolfSSL_CTX_get_ex_data");
19827-
#ifdef HAVE_EX_DATA
19828-
if(ctx != NULL) {
19829-
return wolfSSL_CRYPTO_get_ex_data(&ctx->ex_data, idx);
19830-
}
19831-
#else
19832-
(void)ctx;
19833-
(void)idx;
19834-
#endif
19835-
return NULL;
19836-
}
19814+
#endif /* HAVE_EX_DATA_CRYPTO */
1983719815

19816+
#ifdef HAVE_EX_DATA_CRYPTO
1983819817
int wolfSSL_CTX_get_ex_new_index(long idx, void* arg,
1983919818
WOLFSSL_CRYPTO_EX_new* new_func,
1984019819
WOLFSSL_CRYPTO_EX_dup* dup_func,
@@ -19860,21 +19839,35 @@ int wolfSSL_get_ex_new_index(long argValue, void* arg,
1986019839
return wolfssl_get_ex_new_index(WOLF_CRYPTO_EX_INDEX_SSL, argValue, arg,
1986119840
cb1, cb2, cb3);
1986219841
}
19842+
#endif /* HAVE_EX_DATA_CRYPTO */
1986319843

19844+
#ifdef OPENSSL_EXTRA
19845+
void* wolfSSL_CTX_get_ex_data(const WOLFSSL_CTX* ctx, int idx)
19846+
{
19847+
WOLFSSL_ENTER("wolfSSL_CTX_get_ex_data");
19848+
#ifdef HAVE_EX_DATA
19849+
if (ctx != NULL) {
19850+
return wolfSSL_CRYPTO_get_ex_data(&ctx->ex_data, idx);
19851+
}
19852+
#else
19853+
(void)ctx;
19854+
(void)idx;
19855+
#endif
19856+
return NULL;
19857+
}
1986419858

1986519859
int wolfSSL_CTX_set_ex_data(WOLFSSL_CTX* ctx, int idx, void* data)
1986619860
{
1986719861
WOLFSSL_ENTER("wolfSSL_CTX_set_ex_data");
19868-
#ifdef HAVE_EX_DATA
19869-
if (ctx != NULL)
19870-
{
19862+
#ifdef HAVE_EX_DATA
19863+
if (ctx != NULL) {
1987119864
return wolfSSL_CRYPTO_set_ex_data(&ctx->ex_data, idx, data);
1987219865
}
19873-
#else
19866+
#else
1987419867
(void)ctx;
1987519868
(void)idx;
1987619869
(void)data;
19877-
#endif
19870+
#endif
1987819871
return WOLFSSL_FAILURE;
1987919872
}
1988019873

@@ -19886,16 +19879,14 @@ int wolfSSL_CTX_set_ex_data_with_cleanup(
1988619879
wolfSSL_ex_data_cleanup_routine_t cleanup_routine)
1988719880
{
1988819881
WOLFSSL_ENTER("wolfSSL_CTX_set_ex_data_with_cleanup");
19889-
if (ctx != NULL)
19890-
{
19882+
if (ctx != NULL) {
1989119883
return wolfSSL_CRYPTO_set_ex_data_with_cleanup(&ctx->ex_data, idx, data,
1989219884
cleanup_routine);
1989319885
}
1989419886
return WOLFSSL_FAILURE;
1989519887
}
1989619888
#endif /* HAVE_EX_DATA_CLEANUP_HOOKS */
19897-
19898-
#endif /* defined(HAVE_EX_DATA) || defined(WOLFSSL_WPAS_SMALL) */
19889+
#endif /* OPENSSL_EXTRA */
1989919890

1990019891
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
1990119892

@@ -19927,15 +19918,11 @@ int wolfSSL_set_app_data(WOLFSSL *ssl, void* arg) {
1992719918

1992819919
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
1992919920

19930-
#if defined(HAVE_EX_DATA) || defined(OPENSSL_EXTRA) || \
19931-
defined(OPENSSL_EXTRA_X509_SMALL) || defined(WOLFSSL_WPAS_SMALL)
19932-
1993319921
int wolfSSL_set_ex_data(WOLFSSL* ssl, int idx, void* data)
1993419922
{
1993519923
WOLFSSL_ENTER("wolfSSL_set_ex_data");
1993619924
#ifdef HAVE_EX_DATA
19937-
if (ssl != NULL)
19938-
{
19925+
if (ssl != NULL) {
1993919926
return wolfSSL_CRYPTO_set_ex_data(&ssl->ex_data, idx, data);
1994019927
}
1994119928
#else
@@ -19979,8 +19966,6 @@ void* wolfSSL_get_ex_data(const WOLFSSL* ssl, int idx)
1997919966
return 0;
1998019967
}
1998119968

19982-
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL || WOLFSSL_WPAS_SMALL */
19983-
1998419969
#if defined(HAVE_LIGHTY) || defined(HAVE_STUNNEL) \
1998519970
|| defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(OPENSSL_EXTRA)
1998619971

@@ -21239,9 +21224,7 @@ WOLF_STACK_OF(WOLFSSL_CIPHER) *wolfSSL_get_ciphers_compat(const WOLFSSL *ssl)
2123921224
}
2124021225
#endif /* OPENSSL_ALL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
2124121226

21242-
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || \
21243-
defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA) || \
21244-
defined(HAVE_LIGHTY) || defined(HAVE_SECRET_CALLBACK)
21227+
#if defined(OPENSSL_EXTRA) || defined(HAVE_SECRET_CALLBACK)
2124521228
long wolfSSL_SSL_CTX_get_timeout(const WOLFSSL_CTX *ctx)
2124621229
{
2124721230
WOLFSSL_ENTER("wolfSSL_SSL_CTX_get_timeout");
@@ -24048,21 +24031,17 @@ void *wolfSSL_CRYPTO_malloc(size_t num, const char *file, int line)
2404824031
/*******************************************************************************
2404924032
* START OF EX_DATA APIs
2405024033
******************************************************************************/
24051-
#if defined(OPENSSL_ALL) || (defined(OPENSSL_EXTRA) && \
24052-
(defined(HAVE_STUNNEL) || defined(WOLFSSL_NGINX) || \
24053-
defined(HAVE_LIGHTY) || defined(WOLFSSL_HAPROXY) || \
24054-
defined(WOLFSSL_OPENSSH)))
24055-
void wolfSSL_CRYPTO_cleanup_all_ex_data(void){
24056-
WOLFSSL_ENTER("CRYPTO_cleanup_all_ex_data");
24034+
#ifdef HAVE_EX_DATA
24035+
void wolfSSL_CRYPTO_cleanup_all_ex_data(void)
24036+
{
24037+
WOLFSSL_ENTER("wolfSSL_CRYPTO_cleanup_all_ex_data");
2405724038
}
24058-
#endif
2405924039

24060-
#ifdef HAVE_EX_DATA
2406124040
void* wolfSSL_CRYPTO_get_ex_data(const WOLFSSL_CRYPTO_EX_DATA* ex_data, int idx)
2406224041
{
24063-
WOLFSSL_ENTER("wolfSSL_CTX_get_ex_data");
24042+
WOLFSSL_ENTER("wolfSSL_CRYPTO_get_ex_data");
2406424043
#ifdef MAX_EX_DATA
24065-
if(ex_data && idx < MAX_EX_DATA && idx >= 0) {
24044+
if (ex_data && idx < MAX_EX_DATA && idx >= 0) {
2406624045
return ex_data->ex_data[idx];
2406724046
}
2406824047
#else
@@ -24080,6 +24059,8 @@ int wolfSSL_CRYPTO_set_ex_data(WOLFSSL_CRYPTO_EX_DATA* ex_data, int idx,
2408024059
if (ex_data && idx < MAX_EX_DATA && idx >= 0) {
2408124060
#ifdef HAVE_EX_DATA_CLEANUP_HOOKS
2408224061
if (ex_data->ex_data_cleanup_routines[idx]) {
24062+
/* call cleanup then remove cleanup callback,
24063+
* since different value is being set */
2408324064
if (ex_data->ex_data[idx])
2408424065
ex_data->ex_data_cleanup_routines[idx](ex_data->ex_data[idx]);
2408524066
ex_data->ex_data_cleanup_routines[idx] = NULL;
@@ -24114,7 +24095,9 @@ int wolfSSL_CRYPTO_set_ex_data_with_cleanup(
2411424095
return WOLFSSL_FAILURE;
2411524096
}
2411624097
#endif /* HAVE_EX_DATA_CLEANUP_HOOKS */
24098+
#endif /* HAVE_EX_DATA */
2411724099

24100+
#ifdef HAVE_EX_DATA_CRYPTO
2411824101
/**
2411924102
* Issues unique index for the class specified by class_index.
2412024103
* Other parameter except class_index are ignored.
@@ -24140,7 +24123,7 @@ int wolfSSL_CRYPTO_get_ex_new_index(int class_index, long argl, void *argp,
2414024123
return wolfssl_get_ex_new_index(class_index, argl, argp, new_func,
2414124124
dup_func, free_func);
2414224125
}
24143-
#endif /* HAVE_EX_DATA */
24126+
#endif /* HAVE_EX_DATA_CRYPTO */
2414424127

2414524128
/*******************************************************************************
2414624129
* END OF EX_DATA APIs

src/ssl_certman.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ void wolfSSL_CertManagerSetVerify(WOLFSSL_CERT_MANAGER* cm, VerifyCallback vc)
624624
cm->verifyCallback = vc;
625625
}
626626
}
627-
#endif /* NO_WOLFSSL_CM_VERIFY */
627+
#endif /* !NO_WOLFSSL_CM_VERIFY */
628628

629629
#ifdef WC_ASN_UNKNOWN_EXT_CB
630630
void wolfSSL_CertManagerSetUnknownExtCallback(WOLFSSL_CERT_MANAGER* cm,

0 commit comments

Comments
 (0)