diff --git a/src/ssl.c b/src/ssl.c index 74cfb3d14..cca6da23a 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -10832,6 +10832,15 @@ int wolfSSL_set_compression(WOLFSSL* ssl) return WOLFSSL_FATAL_ERROR; } +#ifndef NO_WOLFSSL_STUB + int wolfSSL_OPENSSL_add_all_algorithms_noconf(void) + { + WOLFSSL_ENTER("wolfSSL_OPENSSL_add_all_algorithms_noconf"); + + WOLFSSL_STUB("OPENSSL_add_all_algorigorithms_noconf"); + return SSL_NOT_IMPLEMENTED; + } +#endif /* returns previous set cache size which stays constant */ long wolfSSL_CTX_sess_set_cache_size(WOLFSSL_CTX* ctx, long sz) @@ -20744,6 +20753,14 @@ int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO* bio, return 0; } +void wolfSSL_ASN1_GENERALIZEDTIME_free(WOLFSSL_ASN1_TIME* asn1Time) +{ + WOLFSSL_ENTER("wolfSSL_ASN1_GENERALIZEDTIME_free"); + if (asn1Time == NULL) + return; + XMEMSET(asn1Time->data, 0, sizeof(asn1Time->data)); +} + int wolfSSL_sk_num(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)* sk) { if (sk == NULL) diff --git a/tests/api.c b/tests/api.c index e9e99079a..215eb99cd 100644 --- a/tests/api.c +++ b/tests/api.c @@ -15550,6 +15550,23 @@ static void test_wolfSSL_ASN1_TIME_print() } +static void test_wolfSSL_ASN1_GENERALIZEDTIME_free(){ + #if defined(OPENSSL_EXTRA) + WOLFSSL_ASN1_GENERALIZEDTIME* asn1_gtime; + unsigned char nullstr[32]; + + XMEMSET(nullstr, 0, 32); + asn1_gtime = XMALLOC(sizeof(ASN1_GENERALIZEDTIME), NULL, + DYNAMIC_TYPE_TMP_BUFFER); + XMEMCPY(asn1_gtime->data,"20180504123500Z",15); + wolfSSL_ASN1_GENERALIZEDTIME_free(asn1_gtime); + AssertIntEQ(0, XMEMCMP(asn1_gtime->data, nullstr, 32)); + + XFREE(asn1_gtime, NULL, DYNAMIC_TYPE_TMP_BUFFER); + #endif /* opensslextra */ +} + + static void test_wolfSSL_private_keys(void) { #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \ @@ -19368,6 +19385,7 @@ void ApiTest(void) test_wolfSSL_DES(); test_wolfSSL_certs(); test_wolfSSL_ASN1_TIME_print(); + test_wolfSSL_ASN1_GENERALIZEDTIME_free(); test_wolfSSL_private_keys(); test_wolfSSL_PEM_PrivateKey(); test_wolfSSL_PEM_RSAPrivateKey(); diff --git a/wolfssl/openssl/evp.h b/wolfssl/openssl/evp.h index f1d935fc6..75b682dc1 100644 --- a/wolfssl/openssl/evp.h +++ b/wolfssl/openssl/evp.h @@ -564,10 +564,6 @@ typedef WOLFSSL_EVP_CIPHER_CTX EVP_CIPHER_CTX; WOLFSSL_API void printPKEY(WOLFSSL_EVP_PKEY *k); -WOLFSSL_API void wolfSSL_OPENSSL_add_all_algorithms_noconf(void); - -#define OPENSSL_add_all_algorithms_noconf wolfSSL_OPENSSL_add_all_algorithms_noconf - #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index c9e620faa..fce991e69 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -381,6 +381,9 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX; #define ASN1_TIME_print wolfSSL_ASN1_TIME_print #define ASN1_GENERALIZEDTIME_print wolfSSL_ASN1_GENERALIZEDTIME_print #define ASN1_TIME_adj wolfSSL_ASN1_TIME_adj +#define ASN1_GENERALIZEDTIME_free wolfSSL_ASN1_GENERALIZEDTIME_free +#define ASN1_STRING_print_ex wolfSSL_ASN1_STRING_print_ex +#define ASN1_TIME_to_generalizedtime wolfSSL_ASN1_TIME_to_generalizedtime #define ASN1_INTEGER_new wolfSSL_ASN1_INTEGER_new #define ASN1_INTEGER_free wolfSSL_ASN1_INTEGER_free @@ -919,6 +922,7 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING; #define SSL_CTX_add_client_CA wolfSSL_CTX_add_client_CA #define SSL_CTX_set_srp_password wolfSSL_CTX_set_srp_password #define SSL_CTX_set_srp_username wolfSSL_CTX_set_srp_username +#define OPENSSL_add_algorithms_noconf wolfSSL_OPENSSL_add_alogrithms_noconf #ifdef __cplusplus } /* extern "C" */ diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index eaca4c03b..2a4f6f4c0 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -806,6 +806,10 @@ WOLFSSL_API long wolfSSL_BIO_set_fd(WOLFSSL_BIO* b, int fd, int flag); WOLFSSL_API void wolfSSL_set_bio(WOLFSSL*, WOLFSSL_BIO* rd, WOLFSSL_BIO* wr); WOLFSSL_API int wolfSSL_add_all_algorithms(void); +#ifdef OPENSSL_EXTRA +WOLFSSL_API int wolfSSL_OPENSSL_add_all_algorithms_noconf(void); +#endif + #ifndef NO_FILESYSTEM WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_file(void); #endif @@ -1387,7 +1391,6 @@ enum { WOLFSSL_BIO_UNSET = -2, WOLFSSL_BIO_SIZE = 17000 /* default BIO write size if not set */ }; - #endif WOLFSSL_API void wolfSSL_ERR_put_error(int lib, int fun, int err, @@ -1439,6 +1442,9 @@ WOLFSSL_API int wolfSSL_ASN1_UTCTIME_print(WOLFSSL_BIO*, const WOLFSSL_ASN1_UTCTIME*); WOLFSSL_API int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO*, const WOLFSSL_ASN1_GENERALIZEDTIME*); +WOLFSSL_API void wolfSSL_ASN1_GENERALIZEDTIME_free(WOLFSSL_ASN1_GENERALIZEDTIME*); +WOLFSSL_API int wolfSSL_ASN1_STRING_print_ex(WOLFSSL_BIO*, WOLFSSL_ASN1_STRING*, + unsigned long); WOLFSSL_API int wolfSSL_sk_num(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)*); WOLFSSL_API void* wolfSSL_sk_value(WOLF_STACK_OF(WOLFSSL_ASN1_OBJECT)*, int);