preprocessor -DNO_BIO to omit OpenSSL BIO API

This commit is contained in:
Glenn Strauss
2020-11-03 15:26:50 -08:00
committed by Daniel Pouzzner
parent 030eb9347c
commit 92c3296e13
7 changed files with 260 additions and 14 deletions

View File

@ -3176,6 +3176,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
} }
#if defined(OPENSSL_ALL) #if defined(OPENSSL_ALL)
#ifndef NO_BIO
/* print out session to stdout */ /* print out session to stdout */
{ {
WOLFSSL_BIO* bio = wolfSSL_BIO_new_fp(stdout, BIO_NOCLOSE); WOLFSSL_BIO* bio = wolfSSL_BIO_new_fp(stdout, BIO_NOCLOSE);
@ -3188,6 +3189,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
wolfSSL_BIO_free(bio); wolfSSL_BIO_free(bio);
} }
#endif #endif
#endif
#endif #endif
if (doSTARTTLS && starttlsProt != NULL) { if (doSTARTTLS && starttlsProt != NULL) {

View File

@ -6287,12 +6287,14 @@ void SSL_ResourceFree(WOLFSSL* ssl)
#endif #endif
#endif /* WOLFSSL_DTLS */ #endif /* WOLFSSL_DTLS */
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
#ifndef NO_BIO
if (ssl->biord != ssl->biowr) /* only free write if different */ if (ssl->biord != ssl->biowr) /* only free write if different */
wolfSSL_BIO_free(ssl->biowr); wolfSSL_BIO_free(ssl->biowr);
wolfSSL_BIO_free(ssl->biord); /* always free read bio */ wolfSSL_BIO_free(ssl->biord); /* always free read bio */
ssl->biowr = NULL; ssl->biowr = NULL;
ssl->biord = NULL; ssl->biord = NULL;
#endif #endif
#endif
#ifdef HAVE_LIBZ #ifdef HAVE_LIBZ
FreeStreams(ssl); FreeStreams(ssl);
#endif #endif
@ -7935,6 +7937,7 @@ retry:
switch (recvd) { switch (recvd) {
case WOLFSSL_CBIO_ERR_GENERAL: /* general/unknown error */ case WOLFSSL_CBIO_ERR_GENERAL: /* general/unknown error */
#if defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD) #if defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)
#ifndef NO_BIO
if (ssl->biord) { if (ssl->biord) {
/* If retry and read flags are set, return WANT_READ */ /* If retry and read flags are set, return WANT_READ */
if ((ssl->biord->flags & WOLFSSL_BIO_FLAG_READ) && if ((ssl->biord->flags & WOLFSSL_BIO_FLAG_READ) &&
@ -7943,6 +7946,7 @@ retry:
} }
} }
#endif #endif
#endif
return -1; return -1;
case WOLFSSL_CBIO_ERR_WANT_READ: /* want read, would block */ case WOLFSSL_CBIO_ERR_WANT_READ: /* want read, would block */

View File

@ -644,6 +644,7 @@ void wolfSSL_OCSP_RESPONSE_free(OcspResponse* response)
XFREE(response, NULL, DYNAMIC_TYPE_OPENSSL); XFREE(response, NULL, DYNAMIC_TYPE_OPENSSL);
} }
#ifndef NO_BIO
OcspResponse* wolfSSL_d2i_OCSP_RESPONSE_bio(WOLFSSL_BIO* bio, OcspResponse* wolfSSL_d2i_OCSP_RESPONSE_bio(WOLFSSL_BIO* bio,
OcspResponse** response) OcspResponse** response)
{ {
@ -708,6 +709,7 @@ OcspResponse* wolfSSL_d2i_OCSP_RESPONSE_bio(WOLFSSL_BIO* bio,
return ret; return ret;
} }
#endif /* !NO_BIO */
OcspResponse* wolfSSL_d2i_OCSP_RESPONSE(OcspResponse** response, OcspResponse* wolfSSL_d2i_OCSP_RESPONSE(OcspResponse** response,
const unsigned char** data, int len) const unsigned char** data, int len)
@ -891,6 +893,7 @@ WOLFSSL_OCSP_CERTID* wolfSSL_OCSP_CERTID_dup(WOLFSSL_OCSP_CERTID* id)
#endif #endif
#if defined(OPENSSL_ALL) || defined(APACHE_HTTPD) #if defined(OPENSSL_ALL) || defined(APACHE_HTTPD)
#ifndef NO_BIO
int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out, int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out,
WOLFSSL_OCSP_REQUEST *req) WOLFSSL_OCSP_REQUEST *req)
{ {
@ -924,6 +927,7 @@ int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out,
XFREE(data, out->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(data, out->heap, DYNAMIC_TYPE_TMP_BUFFER);
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
#endif /* !NO_BIO */
#endif /* OPENSSL_ALL || APACHE_HTTPD */ #endif /* OPENSSL_ALL || APACHE_HTTPD */
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA

119
src/ssl.c
View File

@ -7455,6 +7455,8 @@ int wolfSSL_CTX_check_private_key(const WOLFSSL_CTX* ctx)
#endif /* !NO_CHECK_PRIVATE_KEY */ #endif /* !NO_CHECK_PRIVATE_KEY */
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
#ifndef NO_BIO
/* put SSL type in extra for now, not very common */ /* put SSL type in extra for now, not very common */
/* Converts a DER format key read from "bio" to a PKCS8 structure. /* Converts a DER format key read from "bio" to a PKCS8 structure.
@ -7562,6 +7564,8 @@ WOLFSSL_EVP_PKEY* wolfSSL_d2i_PUBKEY_bio(WOLFSSL_BIO* bio,
return pkey; return pkey;
} }
#endif /* !NO_BIO */
/* Converts a DER encoded public key to a WOLFSSL_EVP_PKEY structure. /* Converts a DER encoded public key to a WOLFSSL_EVP_PKEY structure.
@ -8688,6 +8692,7 @@ WOLFSSL_X509_EXTENSION* wolfSSL_X509_set_ext(WOLFSSL_X509* x509, int loc)
return ext; return ext;
} }
#ifndef NO_BIO
/* Return 0 on success and 1 on failure. Copies ext data to bio, using indent /* Return 0 on success and 1 on failure. Copies ext data to bio, using indent
* to pad the output. flag is ignored. */ * to pad the output. flag is ignored. */
int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out, WOLFSSL_X509_EXTENSION *ext, int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out, WOLFSSL_X509_EXTENSION *ext,
@ -8792,6 +8797,7 @@ int wolfSSL_X509V3_EXT_print(WOLFSSL_BIO *out, WOLFSSL_X509_EXTENSION *ext,
return rc; return rc;
} }
#endif /* !NO_BIO */
/* Returns crit flag in X509_EXTENSION object */ /* Returns crit flag in X509_EXTENSION object */
int wolfSSL_X509_EXTENSION_get_critical(const WOLFSSL_X509_EXTENSION* ex) int wolfSSL_X509_EXTENSION_get_critical(const WOLFSSL_X509_EXTENSION* ex)
@ -14503,6 +14509,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
#endif /* OPENSSL_EXTRA || WOLFSSL_EXTRA || WOLFSSL_WPAS_SMALL */ #endif /* OPENSSL_EXTRA || WOLFSSL_EXTRA || WOLFSSL_WPAS_SMALL */
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
#ifndef NO_BIO
void wolfSSL_set_bio(WOLFSSL* ssl, WOLFSSL_BIO* rd, WOLFSSL_BIO* wr) void wolfSSL_set_bio(WOLFSSL* ssl, WOLFSSL_BIO* rd, WOLFSSL_BIO* wr)
{ {
WOLFSSL_ENTER("wolfSSL_set_bio"); WOLFSSL_ENTER("wolfSSL_set_bio");
@ -14556,7 +14563,8 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
BIO_set_retry_read(wr); BIO_set_retry_read(wr);
} }
} }
#endif #endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA */
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA) || defined(HAVE_WEBSERVER) #if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA) || defined(HAVE_WEBSERVER)
void wolfSSL_CTX_set_client_CA_list(WOLFSSL_CTX* ctx, void wolfSSL_CTX_set_client_CA_list(WOLFSSL_CTX* ctx,
@ -14653,6 +14661,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
#endif #endif
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER) #if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
#ifndef NO_BIO
#if !defined(NO_RSA) && !defined(NO_CERTS) #if !defined(NO_RSA) && !defined(NO_CERTS)
WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_load_client_CA_file(const char* fname) WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_load_client_CA_file(const char* fname)
{ {
@ -14723,7 +14732,8 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
#endif #endif
} }
#endif #endif
#endif #endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
#if !defined(NO_RSA) && !defined(NO_CERTS) #if !defined(NO_RSA) && !defined(NO_CERTS)
@ -15181,6 +15191,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
#endif /* WOLFSSL_QT || OPENSSL_ALL */ #endif /* WOLFSSL_QT || OPENSSL_ALL */
#endif /* !NO_CERTS */ #endif /* !NO_CERTS */
#ifndef NO_BIO
WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_md(void) WOLFSSL_BIO_METHOD* wolfSSL_BIO_f_md(void)
{ {
static WOLFSSL_BIO_METHOD meth; static WOLFSSL_BIO_METHOD meth;
@ -15517,6 +15528,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
return top; return top;
} }
#endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA */ #endif /* OPENSSL_EXTRA */
#ifdef WOLFSSL_ENCRYPTED_KEYS #ifdef WOLFSSL_ENCRYPTED_KEYS
@ -15627,6 +15639,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
} }
#if (defined(OPENSSL_EXTRA) || defined(DEBUG_WOLFSSL_VERBOSE)) #if (defined(OPENSSL_EXTRA) || defined(DEBUG_WOLFSSL_VERBOSE))
#ifndef NO_BIO
/* print out and clear all errors */ /* print out and clear all errors */
void wolfSSL_ERR_print_errors(WOLFSSL_BIO* bio) void wolfSSL_ERR_print_errors(WOLFSSL_BIO* bio)
{ {
@ -15654,6 +15667,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
} }
} while (ret >= 0); } while (ret >= 0);
} }
#endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA || DEBUG_WOLFSSL_VERBOSE */ #endif /* OPENSSL_EXTRA || DEBUG_WOLFSSL_VERBOSE */
#endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */ #endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */
@ -21014,6 +21028,7 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
} }
#endif #endif
#ifndef NO_BIO
#ifdef XSNPRINTF /* a snprintf function needs to be available */ #ifdef XSNPRINTF /* a snprintf function needs to be available */
/* Writes the human readable form of x509 to bio. /* Writes the human readable form of x509 to bio.
* *
@ -21703,6 +21718,7 @@ int wolfSSL_X509_cmp(const WOLFSSL_X509 *a, const WOLFSSL_X509 *b)
} }
#endif /* XSNPRINTF */ #endif /* XSNPRINTF */
#endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA */ #endif /* OPENSSL_EXTRA */
#endif /* !NO_CERTS */ #endif /* !NO_CERTS */
@ -22147,6 +22163,8 @@ void wolfSSL_MD4_Final(unsigned char* digest, WOLFSSL_MD4_CTX* md4)
#endif /* NO_MD4 */ #endif /* NO_MD4 */
#ifndef NO_BIO
/* Removes a WOLFSSL_BIO struct from the WOLFSSL_BIO linked list. /* Removes a WOLFSSL_BIO struct from the WOLFSSL_BIO linked list.
* *
* bio is the WOLFSSL_BIO struct in the list and removed. * bio is the WOLFSSL_BIO struct in the list and removed.
@ -22262,6 +22280,8 @@ void *wolfSSL_BIO_get_ex_data(WOLFSSL_BIO *bio, int idx)
return NULL; return NULL;
} }
#endif /* !NO_BIO */
#ifndef NO_WOLFSSL_STUB #ifndef NO_WOLFSSL_STUB
void wolfSSL_RAND_screen(void) void wolfSSL_RAND_screen(void)
{ {
@ -22492,6 +22512,7 @@ WOLFSSL_X509_LOOKUP* wolfSSL_X509_STORE_add_lookup(WOLFSSL_X509_STORE* store,
#ifndef NO_CERTS #ifndef NO_CERTS
#ifndef NO_BIO
/* Converts the X509 to DER format and outputs it into bio. /* Converts the X509 to DER format and outputs it into bio.
* *
* bio is the structure to hold output DER * bio is the structure to hold output DER
@ -22518,6 +22539,7 @@ int wolfSSL_i2d_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509* x509)
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
#endif /* !NO_BIO */
/* Converts an internal structure to a DER buffer /* Converts an internal structure to a DER buffer
@ -22562,6 +22584,7 @@ int wolfSSL_i2d_X509(WOLFSSL_X509* x509, unsigned char** out)
} }
#ifndef NO_BIO
/* Converts the DER from bio and creates a WOLFSSL_X509 structure from it. /* Converts the DER from bio and creates a WOLFSSL_X509 structure from it.
* *
* bio is the structure holding DER * bio is the structure holding DER
@ -22601,9 +22624,11 @@ WOLFSSL_X509* wolfSSL_d2i_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509** x509)
return localX509; return localX509;
} }
#endif /* !NO_BIO */
#if !defined(NO_ASN) && !defined(NO_PWDBASED) #if !defined(NO_ASN) && !defined(NO_PWDBASED)
#ifndef NO_BIO
WC_PKCS12* wolfSSL_d2i_PKCS12_bio(WOLFSSL_BIO* bio, WC_PKCS12** pkcs12) WC_PKCS12* wolfSSL_d2i_PKCS12_bio(WOLFSSL_BIO* bio, WC_PKCS12** pkcs12)
{ {
WC_PKCS12* localPkcs12 = NULL; WC_PKCS12* localPkcs12 = NULL;
@ -22683,6 +22708,7 @@ int wolfSSL_i2d_PKCS12_bio(WOLFSSL_BIO *bio, WC_PKCS12 *pkcs12)
return ret; return ret;
} }
#endif /* !NO_BIO */
/* Copies unencrypted DER key buffer into "der". If "der" is null then the size /* Copies unencrypted DER key buffer into "der". If "der" is null then the size
* of buffer needed is returned. If *der == NULL then it allocates a buffer. * of buffer needed is returned. If *der == NULL then it allocates a buffer.
@ -24213,6 +24239,7 @@ WOLFSSL_ASN1_INTEGER* wolfSSL_X509_get_serialNumber(WOLFSSL_X509* x509)
#if defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(WOLFSSL_NGINX) || \ #if defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(WOLFSSL_NGINX) || \
defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL) defined(WOLFSSL_HAPROXY) || defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)
#ifndef NO_ASN_TIME #ifndef NO_ASN_TIME
#ifndef NO_BIO
int wolfSSL_ASN1_TIME_print(WOLFSSL_BIO* bio, const WOLFSSL_ASN1_TIME* asnTime) int wolfSSL_ASN1_TIME_print(WOLFSSL_BIO* bio, const WOLFSSL_ASN1_TIME* asnTime)
{ {
char buf[MAX_TIME_STRING_SZ]; char buf[MAX_TIME_STRING_SZ];
@ -24239,6 +24266,7 @@ int wolfSSL_ASN1_TIME_print(WOLFSSL_BIO* bio, const WOLFSSL_ASN1_TIME* asnTime)
return ret; return ret;
} }
#endif /* !NO_BIO */
char* wolfSSL_ASN1_TIME_to_string(WOLFSSL_ASN1_TIME* t, char* buf, int len) char* wolfSSL_ASN1_TIME_to_string(WOLFSSL_ASN1_TIME* t, char* buf, int len)
{ {
@ -25843,6 +25871,7 @@ WOLFSSL_API int i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a)
} }
#endif #endif
#ifndef NO_BIO
/* Return number of bytes written to BIO on success. 0 on failure. */ /* Return number of bytes written to BIO on success. 0 on failure. */
WOLFSSL_API int wolfSSL_i2a_ASN1_OBJECT(WOLFSSL_BIO *bp, WOLFSSL_API int wolfSSL_i2a_ASN1_OBJECT(WOLFSSL_BIO *bp,
WOLFSSL_ASN1_OBJECT *a) WOLFSSL_ASN1_OBJECT *a)
@ -25884,6 +25913,7 @@ WOLFSSL_API int wolfSSL_i2a_ASN1_OBJECT(WOLFSSL_BIO *bp,
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
#endif /* !NO_BIO */
/* Returns object data for an ASN1_OBJECT */ /* Returns object data for an ASN1_OBJECT */
/* If pp is NULL then only the size is returned */ /* If pp is NULL then only the size is returned */
@ -26983,6 +27013,8 @@ void wolfSSL_AES_cfb128_encrypt(const unsigned char *in, unsigned char* out,
#endif #endif
#endif #endif
#ifndef NO_BIO
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_EXTRA) #if !defined(NO_FILESYSTEM) && defined (OPENSSL_EXTRA)
/* returns amount printed on success, negative in fail case */ /* returns amount printed on success, negative in fail case */
int wolfSSL_BIO_vprintf(WOLFSSL_BIO* bio, const char* format, va_list args) int wolfSSL_BIO_vprintf(WOLFSSL_BIO* bio, const char* format, va_list args)
@ -27118,6 +27150,8 @@ int wolfSSL_ASN1_UTCTIME_print(WOLFSSL_BIO* bio, const WOLFSSL_ASN1_UTCTIME* a)
return wolfSSL_ASN1_TIME_print(bio, a); return wolfSSL_ASN1_TIME_print(bio, a);
} }
#endif /* !NO_BIO */
/* Checks the ASN1 syntax of "a" /* Checks the ASN1 syntax of "a"
* returns WOLFSSL_SUCCESS (1) if correct otherwise WOLFSSL_FAILURE (0) */ * returns WOLFSSL_SUCCESS (1) if correct otherwise WOLFSSL_FAILURE (0) */
int wolfSSL_ASN1_TIME_check(const WOLFSSL_ASN1_TIME* a) int wolfSSL_ASN1_TIME_check(const WOLFSSL_ASN1_TIME* a)
@ -27169,6 +27203,7 @@ static WC_INLINE const char* MonthStr(const char* n)
return monthStr[(n[0] - '0') * 10 + (n[1] - '0') - 1]; return monthStr[(n[0] - '0') * 10 + (n[1] - '0') - 1];
} }
#ifndef NO_BIO
int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO* bio, int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO* bio,
const WOLFSSL_ASN1_GENERALIZEDTIME* asnTime) const WOLFSSL_ASN1_GENERALIZEDTIME* asnTime)
{ {
@ -27202,6 +27237,7 @@ int wolfSSL_ASN1_GENERALIZEDTIME_print(WOLFSSL_BIO* bio,
return 0; return 0;
} }
#endif /* !NO_BIO */
void wolfSSL_ASN1_GENERALIZEDTIME_free(WOLFSSL_ASN1_TIME* asn1Time) void wolfSSL_ASN1_GENERALIZEDTIME_free(WOLFSSL_ASN1_TIME* asn1Time)
{ {
@ -31807,6 +31843,7 @@ static int wolfSSL_RSA_To_Der(WOLFSSL_RSA* rsa, byte** outBuf, int publicKey)
#endif #endif
#if defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN) #if defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN)
#ifndef NO_BIO
#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && !defined(NO_RSA) #if (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && !defined(NO_RSA)
/* Takes a WOLFSSL_RSA key and writes it out to a WOLFSSL_BIO /* Takes a WOLFSSL_RSA key and writes it out to a WOLFSSL_BIO
@ -32091,6 +32128,7 @@ int wolfSSL_PEM_write_bio_PrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EVP_PKEY* key,
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
#endif /* defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN) */ #endif /* defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN) */
#if (defined(WOLFSSL_KEY_GEN) && !defined(NO_RSA) && !defined(HAVE_USER_RSA)) && \ #if (defined(WOLFSSL_KEY_GEN) && !defined(NO_RSA) && !defined(HAVE_USER_RSA)) && \
@ -34638,6 +34676,8 @@ int wolfSSL_PEM_write_EC_PUBKEY(XFILE fp, WOLFSSL_EC_KEY *x)
} }
#endif #endif
#ifndef NO_BIO
/* Uses the same format of input as wolfSSL_PEM_read_bio_PrivateKey but expects /* Uses the same format of input as wolfSSL_PEM_read_bio_PrivateKey but expects
* the results to be an EC key. * the results to be an EC key.
* *
@ -34706,9 +34746,11 @@ WOLFSSL_EC_KEY* wolfSSL_PEM_read_bio_ECPrivateKey(WOLFSSL_BIO* bio,
wolfSSL_EVP_PKEY_free(pkey); wolfSSL_EVP_PKEY_free(pkey);
return local; return local;
} }
#endif /* !NO_BIO */
#endif /* NO_FILESYSTEM */ #endif /* NO_FILESYSTEM */
#if defined(WOLFSSL_KEY_GEN) #if defined(WOLFSSL_KEY_GEN)
#ifndef NO_BIO
/* Takes a public WOLFSSL_EC_KEY and writes it out to WOLFSSL_BIO /* Takes a public WOLFSSL_EC_KEY and writes it out to WOLFSSL_BIO
* Returns WOLFSSL_SUCCESS or WOLFSSL_FAILURE * Returns WOLFSSL_SUCCESS or WOLFSSL_FAILURE
*/ */
@ -34847,6 +34889,8 @@ int wolfSSL_PEM_write_bio_ECPrivateKey(WOLFSSL_BIO* bio, WOLFSSL_EC_KEY* ec,
return ret; return ret;
} }
#endif /* !NO_BIO */
/* return code compliant with OpenSSL : /* return code compliant with OpenSSL :
* 1 if success, 0 if error * 1 if success, 0 if error
*/ */
@ -35017,6 +35061,7 @@ int wolfSSL_PEM_write_ECPrivateKey(XFILE fp, WOLFSSL_EC_KEY *ecc,
#ifndef NO_DSA #ifndef NO_DSA
#if defined(WOLFSSL_KEY_GEN) #if defined(WOLFSSL_KEY_GEN)
#ifndef NO_BIO
/* Takes a DSA Privatekey and writes it out to a WOLFSSL_BIO /* Takes a DSA Privatekey and writes it out to a WOLFSSL_BIO
* Returns WOLFSSL_SUCCESS or WOLFSSL_FAILURE * Returns WOLFSSL_SUCCESS or WOLFSSL_FAILURE
@ -35156,6 +35201,7 @@ int wolfSSL_PEM_write_bio_DSA_PUBKEY(WOLFSSL_BIO* bio, WOLFSSL_DSA* dsa)
return ret; return ret;
} }
#endif /* HAVE_SELFTEST */ #endif /* HAVE_SELFTEST */
#endif /* !NO_BIO */
/* return code compliant with OpenSSL : /* return code compliant with OpenSSL :
* 1 if success, 0 if error * 1 if success, 0 if error
@ -35340,6 +35386,8 @@ int wolfSSL_PEM_write_DSA_PUBKEY(XFILE fp, WOLFSSL_DSA *x)
#endif /* #ifndef NO_DSA */ #endif /* #ifndef NO_DSA */
#ifndef NO_BIO
static int pem_read_bio_key(WOLFSSL_BIO* bio, pem_password_cb* cb, void* pass, static int pem_read_bio_key(WOLFSSL_BIO* bio, pem_password_cb* cb, void* pass,
int keyType, int* eccFlag, DerBuffer** der) int keyType, int* eccFlag, DerBuffer** der)
{ {
@ -35694,6 +35742,8 @@ WOLFSSL_EC_GROUP* wolfSSL_PEM_read_bio_ECPKParameters(WOLFSSL_BIO* bio,
} }
#endif /* HAVE_ECC */ #endif /* HAVE_ECC */
#endif /* !NO_BIO */
#if !defined(NO_FILESYSTEM) #if !defined(NO_FILESYSTEM)
WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PUBKEY(XFILE fp, EVP_PKEY **x, WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PUBKEY(XFILE fp, EVP_PKEY **x,
pem_password_cb *cb, void *u) pem_password_cb *cb, void *u)
@ -35711,6 +35761,7 @@ WOLFSSL_EVP_PKEY *wolfSSL_PEM_read_PUBKEY(XFILE fp, EVP_PKEY **x,
#ifndef NO_RSA #ifndef NO_RSA
#ifndef NO_BIO
#if defined(XSNPRINTF) && !defined(HAVE_FAST_RSA) #if defined(XSNPRINTF) && !defined(HAVE_FAST_RSA)
/* snprintf() must be available */ /* snprintf() must be available */
@ -35883,6 +35934,7 @@ int wolfSSL_RSA_print(WOLFSSL_BIO* bio, WOLFSSL_RSA* rsa, int offset)
} }
#endif /* XSNPRINTF */ #endif /* XSNPRINTF */
#endif /* !NO_BIO */
#if !defined(NO_FILESYSTEM) #if !defined(NO_FILESYSTEM)
#ifndef NO_WOLFSSL_STUB #ifndef NO_WOLFSSL_STUB
@ -38009,6 +38061,8 @@ cleanup:
} }
#ifndef NO_BIO
WOLFSSL_X509 *wolfSSL_PEM_read_bio_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 **x, WOLFSSL_X509 *wolfSSL_PEM_read_bio_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 **x,
pem_password_cb *cb, void *u) pem_password_cb *cb, void *u)
{ {
@ -38134,6 +38188,8 @@ err:
#endif #endif
} }
#endif /* !NO_BIO */
#if !defined(NO_FILESYSTEM) #if !defined(NO_FILESYSTEM)
static void* wolfSSL_PEM_read_X509_ex(XFILE fp, void **x, static void* wolfSSL_PEM_read_X509_ex(XFILE fp, void **x,
pem_password_cb *cb, void *u, int type) pem_password_cb *cb, void *u, int type)
@ -38237,6 +38293,7 @@ err:
} }
#endif #endif
#ifndef NO_BIO
int wolfSSL_PEM_write_X509(XFILE fp, WOLFSSL_X509* x) int wolfSSL_PEM_write_X509(XFILE fp, WOLFSSL_X509* x)
{ {
int ret; int ret;
@ -38261,6 +38318,7 @@ err:
return ret; return ret;
} }
#endif /* !NO_BIO */
#endif /* !NO_FILESYSTEM */ #endif /* !NO_FILESYSTEM */
#define PEM_BEGIN "-----BEGIN " #define PEM_BEGIN "-----BEGIN "
@ -38273,6 +38331,8 @@ err:
#define PEM_HDR_FIN_EOL_NULL_TERM "-----\0" #define PEM_HDR_FIN_EOL_NULL_TERM "-----\0"
#define PEM_HDR_FIN_EOL_SZ 6 #define PEM_HDR_FIN_EOL_SZ 6
#ifndef NO_BIO
int wolfSSL_PEM_read_bio(WOLFSSL_BIO* bio, char **name, char **header, int wolfSSL_PEM_read_bio(WOLFSSL_BIO* bio, char **name, char **header,
unsigned char **data, long *len) unsigned char **data, long *len)
{ {
@ -38559,6 +38619,7 @@ err:
return ret; return ret;
} }
#endif #endif
#endif /* !NO_BIO */
int wolfSSL_PEM_get_EVP_CIPHER_INFO(char* header, EncryptedInfo* cipher) int wolfSSL_PEM_get_EVP_CIPHER_INFO(char* header, EncryptedInfo* cipher)
{ {
@ -38600,6 +38661,7 @@ err:
return ret; return ret;
} }
#ifndef NO_BIO
/* /*
* bp : bio to read X509 from * bp : bio to read X509 from
* x : x509 to write to * x : x509 to write to
@ -38618,10 +38680,13 @@ err:
* root CA. */ * root CA. */
return wolfSSL_PEM_read_bio_X509(bp, x, cb, u); return wolfSSL_PEM_read_bio_X509(bp, x, cb, u);
} }
#endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA || OPENSSL_ALL */ #endif /* OPENSSL_EXTRA || OPENSSL_ALL */
#ifdef OPENSSL_ALL #ifdef OPENSSL_ALL
#ifndef NO_BIO
/* create and return a new WOLFSSL_X509_PKEY structure or NULL on failure */ /* create and return a new WOLFSSL_X509_PKEY structure or NULL on failure */
static WOLFSSL_X509_PKEY* wolfSSL_X509_PKEY_new(void* heap) static WOLFSSL_X509_PKEY* wolfSSL_X509_PKEY_new(void* heap)
{ {
@ -38652,6 +38717,7 @@ err:
} }
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
/* free up all memory used by "xPkey" passed in */ /* free up all memory used by "xPkey" passed in */
@ -38664,6 +38730,8 @@ err:
} }
#ifndef NO_BIO
/* Takes control of x509 on success /* Takes control of x509 on success
* helper function to break out code needed to set WOLFSSL_X509_INFO up * helper function to break out code needed to set WOLFSSL_X509_INFO up
* free's "info" passed in if is not defaults * free's "info" passed in if is not defaults
@ -38756,6 +38824,7 @@ err:
WOLFSSL_LEAVE("wolfSSL_PEM_X509_INFO_read_bio", ret); WOLFSSL_LEAVE("wolfSSL_PEM_X509_INFO_read_bio", ret);
return localSk; return localSk;
} }
#endif /* !NO_BIO */
#endif /* OPENSSL_ALL */ #endif /* OPENSSL_ALL */
void wolfSSL_X509_NAME_ENTRY_free(WOLFSSL_X509_NAME_ENTRY* ne) void wolfSSL_X509_NAME_ENTRY_free(WOLFSSL_X509_NAME_ENTRY* ne)
@ -39574,6 +39643,7 @@ err:
return (ret == 0) ? WOLFSSL_SUCCESS : WOLFSSL_FAILURE; return (ret == 0) ? WOLFSSL_SUCCESS : WOLFSSL_FAILURE;
} }
#ifndef NO_BIO
int wolfSSL_BIO_read_filename(WOLFSSL_BIO *b, const char *name) { int wolfSSL_BIO_read_filename(WOLFSSL_BIO *b, const char *name) {
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM
XFILE fp; XFILE fp;
@ -39602,6 +39672,7 @@ err:
return WOLFSSL_NOT_IMPLEMENTED; return WOLFSSL_NOT_IMPLEMENTED;
#endif #endif
} }
#endif
/* Return the corresponding short name for the nid <n>. /* Return the corresponding short name for the nid <n>.
* or NULL if short name can't be found. * or NULL if short name can't be found.
@ -40133,6 +40204,7 @@ void* wolfSSL_get_ex_data(const WOLFSSL* ssl, int idx)
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
#ifndef NO_DSA #ifndef NO_DSA
#ifndef NO_BIO
WOLFSSL_DSA *wolfSSL_PEM_read_bio_DSAparams(WOLFSSL_BIO *bp, WOLFSSL_DSA **x, WOLFSSL_DSA *wolfSSL_PEM_read_bio_DSAparams(WOLFSSL_BIO *bp, WOLFSSL_DSA **x,
pem_password_cb *cb, void *u) pem_password_cb *cb, void *u)
{ {
@ -40227,6 +40299,7 @@ WOLFSSL_DSA *wolfSSL_PEM_read_bio_DSAparams(WOLFSSL_BIO *bp, WOLFSSL_DSA **x,
FreeDer(&pDer); FreeDer(&pDer);
return dsa; return dsa;
} }
#endif /* !NO_BIO */
#endif /* NO_DSA */ #endif /* NO_DSA */
#endif /* OPENSSL_EXTRA */ #endif /* OPENSSL_EXTRA */
#endif /* WOLFCRYPT_ONLY */ #endif /* WOLFCRYPT_ONLY */
@ -40308,6 +40381,7 @@ void wolfSSL_BUF_MEM_free(WOLFSSL_BUF_MEM* buf)
#if defined(HAVE_LIGHTY) || defined(HAVE_STUNNEL) \ #if defined(HAVE_LIGHTY) || defined(HAVE_STUNNEL) \
|| defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(OPENSSL_EXTRA) || defined(WOLFSSL_MYSQL_COMPATIBLE) || defined(OPENSSL_EXTRA)
#ifndef NO_BIO
WOLFSSL_BIO *wolfSSL_BIO_new_file(const char *filename, const char *mode) WOLFSSL_BIO *wolfSSL_BIO_new_file(const char *filename, const char *mode)
{ {
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM
@ -40362,9 +40436,11 @@ WOLFSSL_BIO* wolfSSL_BIO_new_fp(XFILE fp, int close_flag)
return bio; return bio;
} }
#endif #endif
#endif /* !NO_BIO */
#ifndef NO_DH #ifndef NO_DH
#ifndef NO_BIO
#if !defined(HAVE_FIPS) || (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION>2)) #if !defined(HAVE_FIPS) || (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION>2))
WOLFSSL_DH *wolfSSL_PEM_read_bio_DHparams(WOLFSSL_BIO *bio, WOLFSSL_DH **x, WOLFSSL_DH *wolfSSL_PEM_read_bio_DHparams(WOLFSSL_BIO *bio, WOLFSSL_DH **x,
pem_password_cb *cb, void *u) pem_password_cb *cb, void *u)
@ -40496,6 +40572,7 @@ end:
#endif #endif
} }
#endif /* !HAVE_FIPS || HAVE_FIPS_VERSION > 2 */ #endif /* !HAVE_FIPS || HAVE_FIPS_VERSION > 2 */
#endif /* !NO_BIO */
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM
#if defined(WOLFSSL_QT) || defined(OPENSSL_ALL) || defined(WOLFSSL_OPENSSH) #if defined(WOLFSSL_QT) || defined(OPENSSL_ALL) || defined(WOLFSSL_OPENSSH)
@ -40852,6 +40929,8 @@ int wolfSSL_PEM_write_DHparams(XFILE fp, WOLFSSL_DH* dh)
#endif /* !NO_FILESYSTEM */ #endif /* !NO_FILESYSTEM */
#endif /* !NO_DH */ #endif /* !NO_DH */
#ifndef NO_BIO
#ifdef WOLFSSL_CERT_GEN #ifdef WOLFSSL_CERT_GEN
#ifdef WOLFSSL_CERT_REQ #ifdef WOLFSSL_CERT_REQ
@ -40997,6 +41076,8 @@ int wolfSSL_PEM_write_bio_X509(WOLFSSL_BIO *bio, WOLFSSL_X509 *cert)
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
#if defined(OPENSSL_EXTRA) && !defined(NO_DH) #if defined(OPENSSL_EXTRA) && !defined(NO_DH)
/* Initialize ctx->dh with dh's params. Return WOLFSSL_SUCCESS on ok */ /* Initialize ctx->dh with dh's params. Return WOLFSSL_SUCCESS on ok */
@ -41253,6 +41334,8 @@ VerifyCallback wolfSSL_get_verify_callback(WOLFSSL* ssl)
return NULL; return NULL;
} }
#ifndef NO_BIO
/* Creates a new bio pair. /* Creates a new bio pair.
Returns WOLFSSL_SUCCESS if no error, WOLFSSL_FAILURE otherwise.*/ Returns WOLFSSL_SUCCESS if no error, WOLFSSL_FAILURE otherwise.*/
int wolfSSL_BIO_new_bio_pair(WOLFSSL_BIO **bio1_p, size_t writebuf1, int wolfSSL_BIO_new_bio_pair(WOLFSSL_BIO **bio1_p, size_t writebuf1,
@ -41403,6 +41486,8 @@ WOLFSSL_RSA* wolfSSL_d2i_RSAPrivateKey_bio(WOLFSSL_BIO *bio, WOLFSSL_RSA **out)
} }
#endif #endif
#endif /* !NO_BIO */
/* Adds the ASN1 certificate to the user ctx. /* Adds the ASN1 certificate to the user ctx.
Returns WOLFSSL_SUCCESS if no error, returns WOLFSSL_FAILURE otherwise.*/ Returns WOLFSSL_SUCCESS if no error, returns WOLFSSL_FAILURE otherwise.*/
@ -41463,6 +41548,7 @@ int wolfSSL_CTX_use_RSAPrivateKey(WOLFSSL_CTX* ctx, WOLFSSL_RSA* rsa)
#endif /* NO_RSA && !HAVE_FAST_RSA */ #endif /* NO_RSA && !HAVE_FAST_RSA */
#ifndef NO_BIO
/* Converts EVP_PKEY data from a bio buffer to a WOLFSSL_EVP_PKEY structure. /* Converts EVP_PKEY data from a bio buffer to a WOLFSSL_EVP_PKEY structure.
Returns pointer to private EVP_PKEY struct upon success, NULL if there Returns pointer to private EVP_PKEY struct upon success, NULL if there
is a failure.*/ is a failure.*/
@ -41542,6 +41628,7 @@ WOLFSSL_EVP_PKEY* wolfSSL_d2i_PrivateKey_bio(WOLFSSL_BIO* bio,
XFREE(mem, bio->heap, DYNAMIC_TYPE_TMP_BUFFER); XFREE(mem, bio->heap, DYNAMIC_TYPE_TMP_BUFFER);
return key; return key;
} }
#endif /* !NO_BIO */
/* Converts a DER encoded private key to a WOLFSSL_EVP_PKEY structure. /* Converts a DER encoded private key to a WOLFSSL_EVP_PKEY structure.
@ -42297,6 +42384,8 @@ void wolfSSL_sk_X509_NAME_free(WOLF_STACK_OF(WOLFSSL_X509_NAME)* sk)
XFREE(sk, sk->heap, DYNAMIC_TYPE_OPENSSL); XFREE(sk, sk->heap, DYNAMIC_TYPE_OPENSSL);
} }
#ifndef NO_BIO
#if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) #if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
/* Helper function for X509_NAME_print_ex. Sets *buf to string for domain /* Helper function for X509_NAME_print_ex. Sets *buf to string for domain
name attribute based on NID. Returns size of buf */ name attribute based on NID. Returns size of buf */
@ -42421,6 +42510,7 @@ int wolfSSL_X509_NAME_print_ex(WOLFSSL_BIO* bio, WOLFSSL_X509_NAME* name,
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
#ifndef NO_WOLFSSL_STUB #ifndef NO_WOLFSSL_STUB
WOLFSSL_ASN1_BIT_STRING* wolfSSL_X509_get0_pubkey_bitstr(const WOLFSSL_X509* x) WOLFSSL_ASN1_BIT_STRING* wolfSSL_X509_get0_pubkey_bitstr(const WOLFSSL_X509* x)
@ -42556,10 +42646,12 @@ int wolfSSL_CTX_set_servername_arg(WOLFSSL_CTX* ctx, void* arg)
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
#ifndef NO_BIO
void wolfSSL_ERR_load_BIO_strings(void) { void wolfSSL_ERR_load_BIO_strings(void) {
WOLFSSL_ENTER("ERR_load_BIO_strings"); WOLFSSL_ENTER("ERR_load_BIO_strings");
/* do nothing */ /* do nothing */
} }
#endif
#ifndef NO_WOLFSSL_STUB #ifndef NO_WOLFSSL_STUB
void wolfSSL_THREADID_set_callback(void(*threadid_func)(void*)) void wolfSSL_THREADID_set_callback(void(*threadid_func)(void*))
@ -42691,6 +42783,8 @@ const byte* wolfSSL_SESSION_get_id(WOLFSSL_SESSION* sess, unsigned int* idLen)
#if (defined(HAVE_SESSION_TICKET) || defined(SESSION_CERTS)) && \ #if (defined(HAVE_SESSION_TICKET) || defined(SESSION_CERTS)) && \
!defined(NO_FILESYSTEM) !defined(NO_FILESYSTEM)
#ifndef NO_BIO
#if defined(SESSION_CERTS) || \ #if defined(SESSION_CERTS) || \
(defined(WOLFSSL_TLS13) && defined(HAVE_SESSION_TICKET)) (defined(WOLFSSL_TLS13) && defined(HAVE_SESSION_TICKET))
/* returns a pointer to the protocol used by the session */ /* returns a pointer to the protocol used by the session */
@ -42868,6 +42962,8 @@ int wolfSSL_SESSION_print(WOLFSSL_BIO *bp, const WOLFSSL_SESSION *x)
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
#endif /* (HAVE_SESSION_TICKET || SESSION_CERTS) && !NO_FILESYSTEM */ #endif /* (HAVE_SESSION_TICKET || SESSION_CERTS) && !NO_FILESYSTEM */
#endif /* OPENSSL_ALL || OPENSSL_EXTRA || HAVE_STUNNEL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */ #endif /* OPENSSL_ALL || OPENSSL_EXTRA || HAVE_STUNNEL || WOLFSSL_NGINX || WOLFSSL_HAPROXY */
@ -44120,6 +44216,7 @@ WOLFSSL_SESSION *wolfSSL_SSL_get0_session(const WOLFSSL *ssl)
#endif /* NO_SESSION_CACHE */ #endif /* NO_SESSION_CACHE */
#ifndef NO_BIO
int wolfSSL_i2a_ASN1_INTEGER(BIO *bp, const WOLFSSL_ASN1_INTEGER *a) int wolfSSL_i2a_ASN1_INTEGER(BIO *bp, const WOLFSSL_ASN1_INTEGER *a)
{ {
static char num[16] = { '0', '1', '2', '3', '4', '5', '6', '7', static char num[16] = { '0', '1', '2', '3', '4', '5', '6', '7',
@ -44177,6 +44274,7 @@ int wolfSSL_i2a_ASN1_INTEGER(BIO *bp, const WOLFSSL_ASN1_INTEGER *a)
/* Two nibbles written for each byte. */ /* Two nibbles written for each byte. */
return len * 2; return len * 2;
} }
#endif /* !NO_BIO */
#if defined(HAVE_SESSION_TICKET) && !defined(NO_WOLFSSL_SERVER) #if defined(HAVE_SESSION_TICKET) && !defined(NO_WOLFSSL_SERVER)
@ -44908,6 +45006,7 @@ int wolfSSL_CTX_set_alpn_protos(WOLFSSL_CTX *ctx, const unsigned char *p,
#ifdef HAVE_ALPN #ifdef HAVE_ALPN
#ifndef NO_BIO
/* Sets the ALPN extension protos /* Sets the ALPN extension protos
* *
* example format is * example format is
@ -44965,13 +45064,16 @@ int wolfSSL_set_alpn_protos(WOLFSSL* ssl,
wolfSSL_BIO_free(bio); wolfSSL_BIO_free(bio);
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
#endif /* HAVE_ALPN */ #endif /* HAVE_ALPN */
#endif #endif
#if defined(OPENSSL_EXTRA) #if defined(OPENSSL_EXTRA)
#ifndef NO_BIO
#define WOLFSSL_BIO_INCLUDED #define WOLFSSL_BIO_INCLUDED
#include "src/bio.c" #include "src/bio.c"
#endif
int oid2nid(word32 oid, int grp) int oid2nid(word32 oid, int grp)
{ {
@ -46921,6 +47023,7 @@ WOLFSSL_BIGNUM *wolfSSL_BN_mod_inverse(WOLFSSL_BIGNUM *r,
} }
#endif /* OPENSSL_EXTRA */ #endif /* OPENSSL_EXTRA */
#if (defined(WOLFSSL_QT) || defined(OPENSSL_ALL)) && !defined(NO_ASN) #if (defined(WOLFSSL_QT) || defined(OPENSSL_ALL)) && !defined(NO_ASN)
#ifndef NO_BIO
static int unprintable_char(char c) static int unprintable_char(char c)
{ {
const unsigned char last_unprintable = 31; const unsigned char last_unprintable = 31;
@ -46953,6 +47056,7 @@ int wolfSSL_ASN1_STRING_print(WOLFSSL_BIO *out, WOLFSSL_ASN1_STRING *str)
return str->length; return str->length;
} }
#endif /* !NO_BIO */
#endif /* (WOLFSSL_QT || OPENSSL_ALL) && !NO_ASN */ #endif /* (WOLFSSL_QT || OPENSSL_ALL) && !NO_ASN */
#if defined(OPENSSL_EXTRA) #if defined(OPENSSL_EXTRA)
@ -46990,6 +47094,7 @@ const char *wolfSSL_ASN1_tag2str(int tag)
return tag_label[tag]; return tag_label[tag];
} }
#ifndef NO_BIO
static int check_esc_char(char c, char *esc) static int check_esc_char(char c, char *esc)
{ {
char *ptr; char *ptr;
@ -47120,6 +47225,7 @@ err_exit:
XFREE(typebuf, NULL, DYNAMIC_TYPE_TMP_BUFFER); XFREE(typebuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
#endif /* !NO_BIO */
#if !defined(NO_ASN_TIME) && !defined(USER_TIME) && !defined(TIME_OVERRIDES) #if !defined(NO_ASN_TIME) && !defined(USER_TIME) && !defined(TIME_OVERRIDES)
@ -47894,6 +48000,8 @@ PKCS7* wolfSSL_d2i_PKCS7(PKCS7** p7, const unsigned char** in, int len)
return (PKCS7*)pkcs7; return (PKCS7*)pkcs7;
} }
#ifndef NO_BIO
PKCS7* wolfSSL_d2i_PKCS7_bio(WOLFSSL_BIO* bio, PKCS7** p7) PKCS7* wolfSSL_d2i_PKCS7_bio(WOLFSSL_BIO* bio, PKCS7** p7)
{ {
WOLFSSL_PKCS7* pkcs7; WOLFSSL_PKCS7* pkcs7;
@ -47964,6 +48072,8 @@ int wolfSSL_PKCS7_verify(PKCS7* pkcs7, WOLFSSL_STACK* certs,
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !NO_BIO */
WOLFSSL_STACK* wolfSSL_PKCS7_get0_signers(PKCS7* pkcs7, WOLFSSL_STACK* certs, WOLFSSL_STACK* wolfSSL_PKCS7_get0_signers(PKCS7* pkcs7, WOLFSSL_STACK* certs,
int flags) int flags)
{ {
@ -48003,6 +48113,7 @@ WOLFSSL_STACK* wolfSSL_PKCS7_get0_signers(PKCS7* pkcs7, WOLFSSL_STACK* certs,
return signers; return signers;
} }
#ifndef NO_BIO
/****************************************************************************** /******************************************************************************
* wolfSSL_PEM_write_bio_PKCS7 - writes the PKCS7 data to BIO * wolfSSL_PEM_write_bio_PKCS7 - writes the PKCS7 data to BIO
* *
@ -48125,6 +48236,7 @@ error:
} }
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
} }
#endif /* !NO_BIO */
#endif /* OPENSSL_ALL && HAVE_PKCS7 */ #endif /* OPENSSL_ALL && HAVE_PKCS7 */
#if defined(OPENSSL_EXTRA) #if defined(OPENSSL_EXTRA)
@ -48142,6 +48254,7 @@ WOLFSSL_STACK* wolfSSL_sk_X509_new(void)
#endif #endif
#ifdef OPENSSL_ALL #ifdef OPENSSL_ALL
#ifndef NO_BIO
int wolfSSL_PEM_write_bio_PKCS8PrivateKey(WOLFSSL_BIO* bio, int wolfSSL_PEM_write_bio_PKCS8PrivateKey(WOLFSSL_BIO* bio,
WOLFSSL_EVP_PKEY* pkey, WOLFSSL_EVP_PKEY* pkey,
const WOLFSSL_EVP_CIPHER* enc, const WOLFSSL_EVP_CIPHER* enc,
@ -48396,6 +48509,8 @@ WOLFSSL_EVP_PKEY* wolfSSL_d2i_PKCS8PrivateKey_bio(WOLFSSL_BIO* bio,
return key; return key;
} }
#endif /* !NO_BIO */
/* Detect which type of key it is before decoding. */ /* Detect which type of key it is before decoding. */
WOLFSSL_EVP_PKEY* wolfSSL_d2i_AutoPrivateKey(WOLFSSL_EVP_PKEY** pkey, WOLFSSL_EVP_PKEY* wolfSSL_d2i_AutoPrivateKey(WOLFSSL_EVP_PKEY** pkey,
const unsigned char** pp, const unsigned char** pp,

View File

@ -107,6 +107,7 @@ static WC_INLINE int wolfSSL_LastError(int err)
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA
#ifndef NO_BIO
/* Use the WOLFSSL read BIO for receiving data. This is set by the function /* Use the WOLFSSL read BIO for receiving data. This is set by the function
* wolfSSL_set_bio and can also be set by wolfSSL_CTX_SetIORecv. * wolfSSL_set_bio and can also be set by wolfSSL_CTX_SetIORecv.
* *
@ -208,7 +209,8 @@ int BioSend(WOLFSSL* ssl, char *buf, int sz, void *ctx)
return sent; return sent;
} }
#endif #endif /* !NO_BIO */
#endif /* OPENSSL_EXTRA */
#ifdef USE_WOLFSSL_IO #ifdef USE_WOLFSSL_IO

View File

@ -2093,6 +2093,7 @@ static void test_wolfSSL_EC(void)
} }
#endif /* OPENSSL_EXTRA && ( !HAVE_FIPS || HAVE_FIPS_VERSION > 2) */ #endif /* OPENSSL_EXTRA && ( !HAVE_FIPS || HAVE_FIPS_VERSION > 2) */
#ifndef NO_BIO
static void test_wolfSSL_PEM_read_bio_ECPKParameters(void) static void test_wolfSSL_PEM_read_bio_ECPKParameters(void)
{ {
#if defined(HAVE_ECC) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA) #if defined(HAVE_ECC) && !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
@ -2107,6 +2108,7 @@ static void test_wolfSSL_PEM_read_bio_ECPKParameters(void)
BIO_free(bio); BIO_free(bio);
#endif /* HAVE_ECC */ #endif /* HAVE_ECC */
} }
#endif /* !NO_BIO */
# if defined(OPENSSL_EXTRA) # if defined(OPENSSL_EXTRA)
static void test_wolfSSL_ECDSA_SIG(void) static void test_wolfSSL_ECDSA_SIG(void)
@ -4767,7 +4769,9 @@ static void test_wolfSSL_X509_NAME_get_entry(void)
int idx; int idx;
ASN1_OBJECT *object = NULL; ASN1_OBJECT *object = NULL;
#if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) #if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
#ifndef NO_BIO
BIO* bio; BIO* bio;
#endif
#endif #endif
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM
@ -4792,10 +4796,12 @@ static void test_wolfSSL_X509_NAME_get_entry(void)
AssertIntGE(idx, 0); AssertIntGE(idx, 0);
#if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) #if defined(WOLFSSL_APACHE_HTTPD) || defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
#ifndef NO_BIO
AssertNotNull(bio = BIO_new(BIO_s_mem())); AssertNotNull(bio = BIO_new(BIO_s_mem()));
AssertIntEQ(X509_NAME_print_ex(bio, name, 4, AssertIntEQ(X509_NAME_print_ex(bio, name, 4,
(XN_FLAG_RFC2253 & ~XN_FLAG_DN_REV)), WOLFSSL_SUCCESS); (XN_FLAG_RFC2253 & ~XN_FLAG_DN_REV)), WOLFSSL_SUCCESS);
BIO_free(bio); BIO_free(bio);
#endif
#endif #endif
ne = X509_NAME_get_entry(name, idx); ne = X509_NAME_get_entry(name, idx);
@ -24806,6 +24812,7 @@ static void test_wolfSSL_X509_NAME(void)
#endif /* defined(OPENSSL_EXTRA) && !defined(NO_DES3) */ #endif /* defined(OPENSSL_EXTRA) && !defined(NO_DES3) */
} }
#ifndef NO_BIO
static void test_wolfSSL_X509_INFO(void) static void test_wolfSSL_X509_INFO(void)
{ {
#if defined(OPENSSL_ALL) #if defined(OPENSSL_ALL)
@ -24834,6 +24841,7 @@ static void test_wolfSSL_X509_INFO(void)
printf(resultFmt, passed); printf(resultFmt, passed);
#endif #endif
} }
#endif
static void test_wolfSSL_X509_subject_name_hash(void) static void test_wolfSSL_X509_subject_name_hash(void)
{ {
@ -25388,7 +25396,7 @@ static void test_wolfSSL_ASN1_TIME_print(void)
static void test_wolfSSL_ASN1_UTCTIME_print(void) static void test_wolfSSL_ASN1_UTCTIME_print(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME) #if defined(OPENSSL_EXTRA) && !defined(NO_ASN_TIME) && !defined(NO_BIO)
BIO* bio; BIO* bio;
ASN1_UTCTIME* utc = NULL; ASN1_UTCTIME* utc = NULL;
unsigned char buf[25]; unsigned char buf[25];
@ -25429,7 +25437,7 @@ static void test_wolfSSL_ASN1_UTCTIME_print(void)
BIO_free(bio); BIO_free(bio);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif /* OPENSSL_EXTRA && !NO_ASN_TIME */ #endif /* OPENSSL_EXTRA && !NO_ASN_TIME && !NO_BIO */
} }
@ -25654,10 +25662,14 @@ static void test_wolfSSL_PEM_PrivateKey(void)
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
(!defined(NO_RSA) || defined(HAVE_ECC)) && defined(USE_CERT_BUFFERS_2048) (!defined(NO_RSA) || defined(HAVE_ECC)) && defined(USE_CERT_BUFFERS_2048)
#ifndef NO_BIO
BIO* bio = NULL; BIO* bio = NULL;
#endif
EVP_PKEY* pkey = NULL; EVP_PKEY* pkey = NULL;
const unsigned char* server_key = (const unsigned char*)server_key_der_2048; const unsigned char* server_key = (const unsigned char*)server_key_der_2048;
#ifndef NO_BIO
/* test creating new EVP_PKEY with bad arg */ /* test creating new EVP_PKEY with bad arg */
AssertNull((pkey = PEM_read_bio_PrivateKey(NULL, NULL, NULL, NULL))); AssertNull((pkey = PEM_read_bio_PrivateKey(NULL, NULL, NULL, NULL)));
@ -25830,6 +25842,8 @@ static void test_wolfSSL_PEM_PrivateKey(void)
} }
#endif /* !defined(NO_DES3) */ #endif /* !defined(NO_DES3) */
#endif /* !NO_BIO */
#if defined(HAVE_ECC) && !defined(NO_FILESYSTEM) #if defined(HAVE_ECC) && !defined(NO_FILESYSTEM)
{ {
unsigned char buf[2048]; unsigned char buf[2048];
@ -25871,13 +25885,16 @@ static void test_wolfSSL_PEM_PrivateKey(void)
printf(resultFmt, passed); printf(resultFmt, passed);
#ifndef NO_BIO
(void)bio; (void)bio;
#endif
(void)pkey; (void)pkey;
(void)server_key; (void)server_key;
#endif /* OPENSSL_EXTRA && !NO_CERTS && !NO_RSA && USE_CERT_BUFFERS_2048 */ #endif /* OPENSSL_EXTRA && !NO_CERTS && !NO_RSA && USE_CERT_BUFFERS_2048 */
} }
#ifndef NO_BIO
static void test_wolfSSL_PEM_bio_RSAKey(void) static void test_wolfSSL_PEM_bio_RSAKey(void)
{ {
#if (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && \ #if (defined(OPENSSL_EXTRA) || defined(OPENSSL_ALL)) && \
@ -26110,6 +26127,8 @@ static void test_wolfSSL_PEM_PUBKEY(void)
#endif #endif
} }
#endif /* !NO_BIO */
static void test_DSA_do_sign_verify(void) static void test_DSA_do_sign_verify(void)
{ {
#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS) #if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
@ -26169,9 +26188,11 @@ static void test_wolfSSL_tmp_dh(void)
char file[] = "./certs/dsaparams.pem"; char file[] = "./certs/dsaparams.pem";
XFILE f; XFILE f;
int bytes; int bytes;
#ifndef NO_BIO
DSA* dsa; DSA* dsa;
DH* dh; DH* dh;
BIO* bio; BIO* bio;
#endif
SSL* ssl; SSL* ssl;
SSL_CTX* ctx; SSL_CTX* ctx;
@ -26191,6 +26212,7 @@ static void test_wolfSSL_tmp_dh(void)
bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f); bytes = (int)XFREAD(buffer, 1, sizeof(buffer), f);
XFCLOSE(f); XFCLOSE(f);
#ifndef NO_BIO
bio = BIO_new_mem_buf((void*)buffer, bytes); bio = BIO_new_mem_buf((void*)buffer, bytes);
AssertNotNull(bio); AssertNotNull(bio);
@ -26210,6 +26232,7 @@ static void test_wolfSSL_tmp_dh(void)
BIO_free(bio); BIO_free(bio);
DSA_free(dsa); DSA_free(dsa);
DH_free(dh); DH_free(dh);
#endif /* !NO_BIO */
SSL_free(ssl); SSL_free(ssl);
SSL_CTX_free(ctx); SSL_CTX_free(ctx);
@ -26219,7 +26242,7 @@ static void test_wolfSSL_tmp_dh(void)
static void test_wolfSSL_ctrl(void) static void test_wolfSSL_ctrl(void)
{ {
#if defined (OPENSSL_EXTRA) #if defined (OPENSSL_EXTRA) && !defined(NO_BIO)
byte buff[6000]; byte buff[6000];
BIO* bio; BIO* bio;
int bytes; int bytes;
@ -26241,7 +26264,7 @@ static void test_wolfSSL_ctrl(void)
BIO_free(bio); BIO_free(bio);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif /* defined(OPENSSL_EXTRA) */ #endif /* defined(OPENSSL_EXTRA) && !defined(NO_BIO) */
} }
@ -27244,7 +27267,7 @@ static void test_wolfSSL_X509_STORE_CTX_get0_store(void)
static void test_wolfSSL_CTX_set_client_CA_list(void) static void test_wolfSSL_CTX_set_client_CA_list(void)
{ {
#if defined(OPENSSL_ALL) && !defined(NO_RSA) && !defined(NO_CERTS) && \ #if defined(OPENSSL_ALL) && !defined(NO_RSA) && !defined(NO_CERTS) && \
!defined(NO_WOLFSSL_CLIENT) !defined(NO_WOLFSSL_CLIENT) && !defined(NO_BIO)
WOLFSSL_CTX* ctx; WOLFSSL_CTX* ctx;
X509_NAME* name = NULL; X509_NAME* name = NULL;
STACK_OF(X509_NAME)* names = NULL; STACK_OF(X509_NAME)* names = NULL;
@ -27266,7 +27289,7 @@ static void test_wolfSSL_CTX_set_client_CA_list(void)
wolfSSL_CTX_free(ctx); wolfSSL_CTX_free(ctx);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif /* OPENSSL_EXTRA && !NO_RSA && !NO_CERTS && !NO_WOLFSSL_CLIENT */ #endif /* OPENSSL_EXTRA && !NO_RSA && !NO_CERTS && !NO_WOLFSSL_CLIENT && !NO_BIO */
} }
static void test_wolfSSL_CTX_add_client_CA(void) static void test_wolfSSL_CTX_add_client_CA(void)
@ -28173,6 +28196,8 @@ static void test_wolfSSL_set_tlsext_status_type(void){
#endif /* OPENSSL_EXTRA && HAVE_CERTIFICATE_STATUS_REQUEST && !NO_RSA */ #endif /* OPENSSL_EXTRA && HAVE_CERTIFICATE_STATUS_REQUEST && !NO_RSA */
} }
#ifndef NO_BIO
static void test_wolfSSL_PEM_read_bio(void) static void test_wolfSSL_PEM_read_bio(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
@ -28447,6 +28472,8 @@ static void test_wolfSSL_BIO(void)
#endif #endif
} }
#endif /* !NO_BIO */
static void test_wolfSSL_ASN1_STRING(void) static void test_wolfSSL_ASN1_STRING(void)
{ {
@ -28667,9 +28694,11 @@ static void test_wolfSSL_X509(void)
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)\ #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)\
&& !defined(NO_RSA) && !defined(NO_RSA)
X509* x509; X509* x509;
#ifndef NO_BIO
BIO* bio; BIO* bio;
X509_STORE_CTX* ctx; X509_STORE_CTX* ctx;
X509_STORE* store; X509_STORE* store;
#endif
char der[] = "certs/ca-cert.der"; char der[] = "certs/ca-cert.der";
XFILE fp; XFILE fp;
@ -28679,6 +28708,7 @@ static void test_wolfSSL_X509(void)
AssertNotNull(x509 = X509_new()); AssertNotNull(x509 = X509_new());
X509_free(x509); X509_free(x509);
#ifndef NO_BIO
x509 = wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM); x509 = wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM);
AssertNotNull(bio = BIO_new(BIO_s_mem())); AssertNotNull(bio = BIO_new(BIO_s_mem()));
@ -28699,6 +28729,7 @@ static void test_wolfSSL_X509(void)
X509_STORE_free(store); X509_STORE_free(store);
X509_free(x509); X509_free(x509);
BIO_free(bio); BIO_free(bio);
#endif
/** d2i_X509_fp test **/ /** d2i_X509_fp test **/
fp = XFOPEN(der, "rb"); fp = XFOPEN(der, "rb");
@ -29156,6 +29187,7 @@ static void test_wolfSSL_pseudo_rand(void)
static void test_wolfSSL_PKCS8_Compat(void) static void test_wolfSSL_PKCS8_Compat(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && defined(HAVE_ECC) #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && defined(HAVE_ECC)
#ifndef NO_BIO
PKCS8_PRIV_KEY_INFO* pt; PKCS8_PRIV_KEY_INFO* pt;
BIO* bio; BIO* bio;
XFILE f; XFILE f;
@ -29176,6 +29208,7 @@ static void test_wolfSSL_PKCS8_Compat(void)
printf(resultFmt, passed); printf(resultFmt, passed);
#endif #endif
#endif
} }
static void test_wolfSSL_PKCS8_d2i(void) static void test_wolfSSL_PKCS8_d2i(void)
@ -29191,8 +29224,10 @@ static void test_wolfSSL_PKCS8_d2i(void)
const unsigned char* p; const unsigned char* p;
int bytes; int bytes;
XFILE file; XFILE file;
#ifndef NO_BIO
BIO* bio; BIO* bio;
WOLFSSL_EVP_PKEY* evpPkey = NULL; WOLFSSL_EVP_PKEY* evpPkey = NULL;
#endif
#endif #endif
#ifndef NO_RSA #ifndef NO_RSA
#ifndef NO_FILESYSTEM #ifndef NO_FILESYSTEM
@ -29227,7 +29262,9 @@ static void test_wolfSSL_PKCS8_d2i(void)
(void)p; (void)p;
(void)bytes; (void)bytes;
(void)file; (void)file;
#ifndef NO_BIO
(void)bio; (void)bio;
#endif
#endif #endif
#ifndef NO_RSA #ifndef NO_RSA
@ -29257,6 +29294,7 @@ static void test_wolfSSL_PKCS8_d2i(void)
AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer), AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
file)), 0); file)), 0);
XFCLOSE(file); XFCLOSE(file);
#ifndef NO_BIO
AssertNotNull(bio = BIO_new(BIO_s_mem())); AssertNotNull(bio = BIO_new(BIO_s_mem()));
/* Write PKCS#8 PEM to BIO. */ /* Write PKCS#8 PEM to BIO. */
AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, NULL, NULL, 0, NULL, AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, NULL, NULL, 0, NULL,
@ -29276,6 +29314,7 @@ static void test_wolfSSL_PKCS8_d2i(void)
wolfSSL_EVP_PKEY_free(evpPkey); wolfSSL_EVP_PKEY_free(evpPkey);
BIO_free(bio); BIO_free(bio);
#endif #endif
#endif /* !NO_BIO */
wolfSSL_EVP_PKEY_free(pkey); wolfSSL_EVP_PKEY_free(pkey);
/* PKCS#8 encrypted RSA key */ /* PKCS#8 encrypted RSA key */
@ -29285,11 +29324,13 @@ static void test_wolfSSL_PKCS8_d2i(void)
AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer), AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
file)), 0); file)), 0);
XFCLOSE(file); XFCLOSE(file);
#ifndef NO_BIO
AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes)); AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes));
AssertNotNull(pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, PasswordCallBack, AssertNotNull(pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, PasswordCallBack,
(void*)"yassl123")); (void*)"yassl123"));
wolfSSL_EVP_PKEY_free(pkey); wolfSSL_EVP_PKEY_free(pkey);
BIO_free(bio); BIO_free(bio);
#endif
#endif #endif
#endif #endif
#ifdef HAVE_ECC #ifdef HAVE_ECC
@ -29308,6 +29349,7 @@ static void test_wolfSSL_PKCS8_d2i(void)
AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer), AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
file)), 0); file)), 0);
XFCLOSE(file); XFCLOSE(file);
#ifndef NO_BIO
AssertNotNull(bio = BIO_new(BIO_s_mem())); AssertNotNull(bio = BIO_new(BIO_s_mem()));
/* Write PKCS#8 PEM to BIO. */ /* Write PKCS#8 PEM to BIO. */
AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, NULL, NULL, 0, NULL, AssertIntEQ(PEM_write_bio_PKCS8PrivateKey(bio, pkey, NULL, NULL, 0, NULL,
@ -29325,6 +29367,7 @@ static void test_wolfSSL_PKCS8_d2i(void)
(void*)"yassl123")); (void*)"yassl123"));
wolfSSL_EVP_PKEY_free(evpPkey); wolfSSL_EVP_PKEY_free(evpPkey);
BIO_free(bio); BIO_free(bio);
#endif
wolfSSL_EVP_PKEY_free(pkey); wolfSSL_EVP_PKEY_free(pkey);
/* PKCS#8 encrypted EC key */ /* PKCS#8 encrypted EC key */
@ -29334,11 +29377,13 @@ static void test_wolfSSL_PKCS8_d2i(void)
AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer), AssertIntGT((bytes = (int)XFREAD(pkcs8_buffer, 1, sizeof(pkcs8_buffer),
file)), 0); file)), 0);
XFCLOSE(file); XFCLOSE(file);
#ifndef NO_BIO
AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes)); AssertNotNull(bio = BIO_new_mem_buf((void*)pkcs8_buffer, bytes));
AssertNotNull(pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, PasswordCallBack, AssertNotNull(pkey = d2i_PKCS8PrivateKey_bio(bio, NULL, PasswordCallBack,
(void*)"yassl123")); (void*)"yassl123"));
wolfSSL_EVP_PKEY_free(pkey); wolfSSL_EVP_PKEY_free(pkey);
BIO_free(bio); BIO_free(bio);
#endif
#endif #endif
#endif #endif
#endif #endif
@ -29413,6 +29458,8 @@ static void test_wolfSSL_ERR_put_error(void)
} }
#ifndef NO_BIO
static void test_wolfSSL_ERR_print_errors(void) static void test_wolfSSL_ERR_print_errors(void)
{ {
#if !defined(NO_ERROR_QUEUE) && defined(OPENSSL_EXTRA) && \ #if !defined(NO_ERROR_QUEUE) && defined(OPENSSL_EXTRA) && \
@ -29590,6 +29637,8 @@ static int test_wolfSSL_GetLoggingCb (void)
return ret; return ret;
}/*End test_wolfSSL_GetLoggingCb*/ }/*End test_wolfSSL_GetLoggingCb*/
#endif /* !NO_BIO */
#if defined(OPENSSL_EXTRA) && (!defined(NO_SHA256) || \ #if defined(OPENSSL_EXTRA) && (!defined(NO_SHA256) || \
defined(WOLFSSL_SHA224) || defined(WOLFSSL_SHA384) || \ defined(WOLFSSL_SHA224) || defined(WOLFSSL_SHA384) || \
defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA3)) defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA3))
@ -29790,7 +29839,7 @@ static void test_wolfSSL_OBJ(void)
static void test_wolfSSL_i2a_ASN1_OBJECT(void) static void test_wolfSSL_i2a_ASN1_OBJECT(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_ASN) #if defined(OPENSSL_EXTRA) && !defined(NO_ASN) && !defined(NO_BIO)
ASN1_OBJECT *obj = NULL; ASN1_OBJECT *obj = NULL;
BIO *bio = NULL; BIO *bio = NULL;
@ -29930,7 +29979,9 @@ static void test_wolfSSL_X509_NAME_ENTRY(void)
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA) && defined(WOLFSSL_CERT_GEN) !defined(NO_RSA) && defined(WOLFSSL_CERT_GEN)
X509* x509; X509* x509;
#ifndef NO_BIO
BIO* bio; BIO* bio;
#endif
X509_NAME* nm; X509_NAME* nm;
X509_NAME_ENTRY* entry; X509_NAME_ENTRY* entry;
unsigned char cn[] = "another name to add"; unsigned char cn[] = "another name to add";
@ -29940,8 +29991,10 @@ static void test_wolfSSL_X509_NAME_ENTRY(void)
AssertNotNull(x509 = AssertNotNull(x509 =
wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM)); wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM));
#ifndef NO_BIO
AssertNotNull(bio = BIO_new(BIO_s_mem())); AssertNotNull(bio = BIO_new(BIO_s_mem()));
AssertIntEQ(PEM_write_bio_X509_AUX(bio, x509), SSL_SUCCESS); AssertIntEQ(PEM_write_bio_X509_AUX(bio, x509), SSL_SUCCESS);
#endif
#ifdef WOLFSSL_CERT_REQ #ifdef WOLFSSL_CERT_REQ
{ {
@ -29950,10 +30003,12 @@ static void test_wolfSSL_X509_NAME_ENTRY(void)
AssertNotNull(req = AssertNotNull(req =
wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM)); wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM));
#ifndef NO_BIO
AssertNotNull(bReq = BIO_new(BIO_s_mem())); AssertNotNull(bReq = BIO_new(BIO_s_mem()));
AssertIntEQ(PEM_write_bio_X509_REQ(bReq, req), SSL_SUCCESS); AssertIntEQ(PEM_write_bio_X509_REQ(bReq, req), SSL_SUCCESS);
BIO_free(bReq); BIO_free(bReq);
#endif
X509_free(req); X509_free(req);
} }
#endif #endif
@ -29987,7 +30042,9 @@ static void test_wolfSSL_X509_NAME_ENTRY(void)
AssertIntEQ(X509_NAME_add_entry_by_NID(nm, NID_commonName, MBSTRING_UTF8, AssertIntEQ(X509_NAME_add_entry_by_NID(nm, NID_commonName, MBSTRING_UTF8,
cn, -1, -1, 0), WOLFSSL_SUCCESS); cn, -1, -1, 0), WOLFSSL_SUCCESS);
#ifndef NO_BIO
BIO_free(bio); BIO_free(bio);
#endif
X509_free(x509); /* free's nm */ X509_free(x509); /* free's nm */
printf(resultFmt, passed); printf(resultFmt, passed);
@ -30162,6 +30219,8 @@ static void test_wolfSSL_X509_set_version(void)
#endif #endif
} }
#ifndef NO_BIO
static void test_wolfSSL_BIO_gets(void) static void test_wolfSSL_BIO_gets(void)
{ {
#if defined(OPENSSL_EXTRA) #if defined(OPENSSL_EXTRA)
@ -30613,6 +30672,8 @@ static void test_wolfSSL_BIO_f_md(void)
#endif #endif
} }
#endif /* !NO_BIO */
static void test_wolfSSL_SESSION(void) static void test_wolfSSL_SESSION(void)
{ {
@ -30783,6 +30844,8 @@ static void test_wolfSSL_SESSION(void)
} }
#ifndef NO_BIO
static void test_wolfSSL_d2i_PUBKEY(void) static void test_wolfSSL_d2i_PUBKEY(void)
{ {
#if defined(OPENSSL_EXTRA) #if defined(OPENSSL_EXTRA)
@ -30939,6 +31002,8 @@ static void test_wolfSSL_d2i_PrivateKeys_bio(void)
} }
#endif /* OPENSSL_ALL || WOLFSSL_ASIO */ #endif /* OPENSSL_ALL || WOLFSSL_ASIO */
#endif /* !NO_BIO */
static void test_wolfSSL_sk_GENERAL_NAME(void) static void test_wolfSSL_sk_GENERAL_NAME(void)
{ {
@ -31623,6 +31688,7 @@ static void test_wolfSSL_PEM_write_DHparams(void)
#if defined(OPENSSL_ALL) || defined(WOLFSSL_QT) #if defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
#if defined(OPENSSL_EXTRA) && !defined(NO_DH) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_EXTRA) && !defined(NO_DH) && !defined(NO_FILESYSTEM)
#if !defined(HAVE_FIPS) || (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION>2)) #if !defined(HAVE_FIPS) || (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION>2))
#ifndef NO_BIO
DH* dh; DH* dh;
BIO* bio; BIO* bio;
XFILE fp; XFILE fp;
@ -31662,6 +31728,7 @@ tgZl96bcAGdru8OpQYP7x/rI4h5+rwA/kwIBAg==\n\
XFCLOSE(fp); XFCLOSE(fp);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif /* !NO_BIO */
#endif /* !HAVE_FIPS || HAVE_FIPS_VERSION > 2 */ #endif /* !HAVE_FIPS || HAVE_FIPS_VERSION > 2 */
#endif /* OPENSSL_ALL || OPENSSL_QT */ #endif /* OPENSSL_ALL || OPENSSL_QT */
#endif #endif
@ -31841,6 +31908,7 @@ static void test_wolfSSL_OpenSSL_add_all_algorithms(void){
static void test_wolfSSL_ASN1_STRING_print_ex(void){ static void test_wolfSSL_ASN1_STRING_print_ex(void){
#if defined(OPENSSL_EXTRA) && !defined(NO_ASN) #if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
#ifndef NO_BIO
ASN1_STRING* asn_str; ASN1_STRING* asn_str;
const char data[] = "Hello wolfSSL!"; const char data[] = "Hello wolfSSL!";
ASN1_STRING* esc_str; ASN1_STRING* esc_str;
@ -31915,6 +31983,7 @@ static void test_wolfSSL_ASN1_STRING_print_ex(void){
ASN1_STRING_free(esc_str); ASN1_STRING_free(esc_str);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif /* !NO_BIO */
#endif #endif
} }
@ -33011,10 +33080,12 @@ static void test_wolfSSL_CTX_ctrl(void)
char file[] = "./certs/dsaparams.pem"; char file[] = "./certs/dsaparams.pem";
XFILE f; XFILE f;
int bytes; int bytes;
#ifndef NO_BIO
BIO* bio; BIO* bio;
DSA* dsa; DSA* dsa;
DH* dh; DH* dh;
#endif #endif
#endif
#ifdef HAVE_ECC #ifdef HAVE_ECC
WOLFSSL_EC_KEY* ecKey; WOLFSSL_EC_KEY* ecKey;
#endif #endif
@ -33036,6 +33107,7 @@ static void test_wolfSSL_CTX_ctrl(void)
bytes = (int)XFREAD(buf, 1, sizeof(buf), f); bytes = (int)XFREAD(buf, 1, sizeof(buf), f);
XFCLOSE(f); XFCLOSE(f);
#ifndef NO_BIO
bio = BIO_new_mem_buf((void*)buf, bytes); bio = BIO_new_mem_buf((void*)buf, bytes);
AssertNotNull(bio); AssertNotNull(bio);
@ -33045,6 +33117,7 @@ static void test_wolfSSL_CTX_ctrl(void)
dh = wolfSSL_DSA_dup_DH(dsa); dh = wolfSSL_DSA_dup_DH(dsa);
AssertNotNull(dh); AssertNotNull(dh);
#endif #endif
#endif
#ifdef HAVE_ECC #ifdef HAVE_ECC
/* Initialize WOLFSSL_EC_KEY */ /* Initialize WOLFSSL_EC_KEY */
AssertNotNull(ecKey = wolfSSL_EC_KEY_new()); AssertNotNull(ecKey = wolfSSL_EC_KEY_new());
@ -33134,10 +33207,12 @@ static void test_wolfSSL_CTX_ctrl(void)
/* Cleanup and Pass */ /* Cleanup and Pass */
#if !defined(NO_DH) && !defined(NO_DSA) #if !defined(NO_DH) && !defined(NO_DSA)
#ifndef NO_BIO
BIO_free(bio); BIO_free(bio);
DSA_free(dsa); DSA_free(dsa);
DH_free(dh); DH_free(dh);
#endif #endif
#endif
#ifdef HAVE_ECC #ifdef HAVE_ECC
wolfSSL_EC_KEY_free(ecKey); wolfSSL_EC_KEY_free(ecKey);
#endif #endif
@ -33150,6 +33225,7 @@ static void test_wolfSSL_CTX_ctrl(void)
static void test_wolfSSL_DH_check(void) static void test_wolfSSL_DH_check(void)
{ {
#if !defined(NO_DH) && !defined(NO_DSA) #if !defined(NO_DH) && !defined(NO_DSA)
#ifndef NO_BIO
byte buf[6000]; byte buf[6000];
char file[] = "./certs/dsaparams.pem"; char file[] = "./certs/dsaparams.pem";
XFILE f; XFILE f;
@ -33211,6 +33287,7 @@ static void test_wolfSSL_DH_check(void)
DSA_free(dsa); DSA_free(dsa);
DH_free(dh); DH_free(dh);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif
#endif /* !NO_DH && !NO_DSA */ #endif /* !NO_DH && !NO_DSA */
} }
@ -33666,7 +33743,7 @@ static void test_wolfSSL_X509_EXTENSION_get_critical(void)
static void test_wolfSSL_X509V3_EXT_print(void) static void test_wolfSSL_X509V3_EXT_print(void)
{ {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) && !defined(NO_BIO)
printf(testingFmt, "wolfSSL_X509V3_EXT_print"); printf(testingFmt, "wolfSSL_X509V3_EXT_print");
{ {
@ -34949,6 +35026,7 @@ static void test_wolfSSL_PKCS7_SIGNED_new(void)
#endif #endif
} }
#ifndef NO_BIO
static void test_wolfSSL_PEM_write_bio_PKCS7(void) static void test_wolfSSL_PEM_write_bio_PKCS7(void)
{ {
#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_ALL) && defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM)
@ -35046,6 +35124,7 @@ static void test_wolfSSL_PEM_write_bio_PKCS7(void)
pkcs7->signedAttribs = NULL; pkcs7->signedAttribs = NULL;
pkcs7->signedAttribsSz = 0; pkcs7->signedAttribsSz = 0;
#ifndef NO_BIO
AssertNotNull(bio = BIO_new(BIO_s_mem())); AssertNotNull(bio = BIO_new(BIO_s_mem()));
/* Write PKCS#7 PEM to BIO, the function converts the DER to PEM cert*/ /* Write PKCS#7 PEM to BIO, the function converts the DER to PEM cert*/
AssertIntEQ(PEM_write_bio_PKCS7(bio, pkcs7), WOLFSSL_SUCCESS); AssertIntEQ(PEM_write_bio_PKCS7(bio, pkcs7), WOLFSSL_SUCCESS);
@ -35055,6 +35134,7 @@ static void test_wolfSSL_PEM_write_bio_PKCS7(void)
AssertIntGE(ret, 0); AssertIntGE(ret, 0);
BIO_free(bio); BIO_free(bio);
#endif
wc_PKCS7_Free(pkcs7); wc_PKCS7_Free(pkcs7);
wc_FreeRng(&rng); wc_FreeRng(&rng);
@ -35062,6 +35142,7 @@ static void test_wolfSSL_PEM_write_bio_PKCS7(void)
#endif #endif
} }
#endif /* !NO_BIO */
/*----------------------------------------------------------------------------* /*----------------------------------------------------------------------------*
| Certificate Failure Checks | Certificate Failure Checks
@ -36210,7 +36291,9 @@ static void test_wolfSSL_X509_CRL(void)
"./certs/crl/eccSrvCRL.pem", "./certs/crl/eccSrvCRL.pem",
"" ""
}; };
#ifndef NO_BIO
BIO *bio; BIO *bio;
#endif
#ifdef HAVE_TEST_d2i_X509_CRL_fp #ifdef HAVE_TEST_d2i_X509_CRL_fp
char der[][100] = { char der[][100] = {
@ -36240,6 +36323,7 @@ static void test_wolfSSL_X509_CRL(void)
XFCLOSE(fp); XFCLOSE(fp);
} }
#ifndef NO_BIO
for (i = 0; pem[i][0] != '\0'; i++) for (i = 0; pem[i][0] != '\0'; i++)
{ {
AssertNotNull(bio = BIO_new_file(pem[i], "r")); AssertNotNull(bio = BIO_new_file(pem[i], "r"));
@ -36247,6 +36331,7 @@ static void test_wolfSSL_X509_CRL(void)
X509_CRL_free(crl); X509_CRL_free(crl);
BIO_free(bio); BIO_free(bio);
} }
#endif
#ifdef HAVE_TEST_d2i_X509_CRL_fp #ifdef HAVE_TEST_d2i_X509_CRL_fp
for(i = 0; der[i][0] != '\0'; i++){ for(i = 0; der[i][0] != '\0'; i++){
@ -36290,7 +36375,7 @@ static void test_wolfSSL_PEM_read_X509(void)
static void test_wolfSSL_PEM_read(void) static void test_wolfSSL_PEM_read(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && !defined(NO_BIO)
const char* filename = "./certs/server-keyEnc.pem"; const char* filename = "./certs/server-keyEnc.pem";
XFILE fp; XFILE fp;
char* name = NULL; char* name = NULL;
@ -36598,6 +36683,7 @@ static void test_wolfssl_EVP_aes_gcm(void)
#endif /* OPENSSL_EXTRA && !NO_AES && HAVE_AESGCM */ #endif /* OPENSSL_EXTRA && !NO_AES && HAVE_AESGCM */
} }
#ifndef NO_BIO
static void test_wolfSSL_PEM_X509_INFO_read_bio(void) static void test_wolfSSL_PEM_X509_INFO_read_bio(void)
{ {
#if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM)
@ -36640,6 +36726,7 @@ static void test_wolfSSL_PEM_X509_INFO_read_bio(void)
printf(resultFmt, passed); printf(resultFmt, passed);
#endif #endif
} }
#endif /* !NO_BIO */
static void test_wolfSSL_X509_NAME_ENTRY_get_object() static void test_wolfSSL_X509_NAME_ENTRY_get_object()
{ {
@ -36957,6 +37044,8 @@ static int test_ForceZero(void)
return 0; return 0;
} }
#ifndef NO_BIO
static void test_wolfSSL_X509_print() static void test_wolfSSL_X509_print()
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
@ -36994,7 +37083,7 @@ static void test_wolfSSL_RSA_print()
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA) && !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) && \ !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && defined(WOLFSSL_KEY_GEN) && \
!defined(HAVE_FAST_RSA) !defined(HAVE_FAST_RSA) && !defined(NO_BIO)
BIO *bio; BIO *bio;
WOLFSSL_RSA* rsa = NULL; WOLFSSL_RSA* rsa = NULL;
printf(testingFmt, "wolfSSL_RSA_print"); printf(testingFmt, "wolfSSL_RSA_print");
@ -37012,7 +37101,7 @@ static void test_wolfSSL_RSA_print()
static void test_wolfSSL_BIO_get_len() static void test_wolfSSL_BIO_get_len()
{ {
#if defined(OPENSSL_EXTRA) #if defined(OPENSSL_EXTRA) && !defined(NO_BIO)
BIO *bio; BIO *bio;
const char txt[] = "Some example text to push to the BIO."; const char txt[] = "Some example text to push to the BIO.";
printf(testingFmt, "wolfSSL_BIO_get_len"); printf(testingFmt, "wolfSSL_BIO_get_len");
@ -37083,10 +37172,13 @@ static void test_wolfSSL_ASN1_STRING_print(void){
#endif /* OPENSSL_EXTRA && !NO_ASN && !NO_CERTS */ #endif /* OPENSSL_EXTRA && !NO_ASN && !NO_CERTS */
} }
#endif /* !NO_BIO */
static void test_wolfSSL_RSA_verify() static void test_wolfSSL_RSA_verify()
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(HAVE_FAST_RSA) && \
!defined(NO_FILESYSTEM) && defined(HAVE_CRL) !defined(NO_FILESYSTEM) && defined(HAVE_CRL)
#ifndef NO_BIO
XFILE fp; XFILE fp;
RSA *pKey, *pubKey; RSA *pKey, *pubKey;
X509 *cert; X509 *cert;
@ -37147,6 +37239,7 @@ static void test_wolfSSL_RSA_verify()
XFREE(buf, NULL, DYNAMIC_TYPE_FILE); XFREE(buf, NULL, DYNAMIC_TYPE_FILE);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif #endif
#endif
} }
@ -37754,7 +37847,9 @@ void ApiTest(void)
/* compatibility tests */ /* compatibility tests */
test_wolfSSL_X509_NAME(); test_wolfSSL_X509_NAME();
#ifndef NO_BIO
test_wolfSSL_X509_INFO(); test_wolfSSL_X509_INFO();
#endif
test_wolfSSL_X509_subject_name_hash(); test_wolfSSL_X509_subject_name_hash();
test_wolfSSL_X509_issuer_name_hash(); test_wolfSSL_X509_issuer_name_hash();
test_wolfSSL_X509_check_host(); test_wolfSSL_X509_check_host();
@ -37765,11 +37860,13 @@ void ApiTest(void)
test_wolfSSL_ASN1_GENERALIZEDTIME_free(); test_wolfSSL_ASN1_GENERALIZEDTIME_free();
test_wolfSSL_private_keys(); test_wolfSSL_private_keys();
test_wolfSSL_PEM_PrivateKey(); test_wolfSSL_PEM_PrivateKey();
#ifndef NO_BIO
test_wolfSSL_PEM_bio_RSAKey(); test_wolfSSL_PEM_bio_RSAKey();
test_wolfSSL_PEM_bio_DSAKey(); test_wolfSSL_PEM_bio_DSAKey();
test_wolfSSL_PEM_bio_ECKey(); test_wolfSSL_PEM_bio_ECKey();
test_wolfSSL_PEM_RSAPrivateKey(); test_wolfSSL_PEM_RSAPrivateKey();
test_wolfSSL_PEM_PUBKEY(); test_wolfSSL_PEM_PUBKEY();
#endif
test_DSA_do_sign_verify(); test_DSA_do_sign_verify();
test_wolfSSL_tmp_dh(); test_wolfSSL_tmp_dh();
test_wolfSSL_ctrl(); test_wolfSSL_ctrl();
@ -37783,11 +37880,13 @@ void ApiTest(void)
#if !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER) #if !defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER)
test_wolfSSL_ERR_peek_last_error_line(); test_wolfSSL_ERR_peek_last_error_line();
#endif #endif
#ifndef NO_BIO
test_wolfSSL_ERR_print_errors_cb(); test_wolfSSL_ERR_print_errors_cb();
AssertFalse(test_wolfSSL_GetLoggingCb()); AssertFalse(test_wolfSSL_GetLoggingCb());
AssertFalse(test_WOLFSSL_ERROR_MSG()); AssertFalse(test_WOLFSSL_ERROR_MSG());
AssertFalse(test_wc_ERR_remove_state()); AssertFalse(test_wc_ERR_remove_state());
AssertFalse(test_wc_ERR_print_errors_fp()); AssertFalse(test_wc_ERR_print_errors_fp());
#endif
test_wolfSSL_set_options(); test_wolfSSL_set_options();
test_wolfSSL_sk_SSL_CIPHER(); test_wolfSSL_sk_SSL_CIPHER();
test_wolfSSL_X509_STORE_CTX(); test_wolfSSL_X509_STORE_CTX();
@ -37806,8 +37905,10 @@ void ApiTest(void)
test_wolfSSL_X509_STORE(); test_wolfSSL_X509_STORE();
test_wolfSSL_X509_STORE_load_locations(); test_wolfSSL_X509_STORE_load_locations();
test_wolfSSL_BN(); test_wolfSSL_BN();
#ifndef NO_BIO
test_wolfSSL_PEM_read_bio(); test_wolfSSL_PEM_read_bio();
test_wolfSSL_BIO(); test_wolfSSL_BIO();
#endif
test_wolfSSL_ASN1_STRING(); test_wolfSSL_ASN1_STRING();
test_wolfSSL_ASN1_BIT_STRING(); test_wolfSSL_ASN1_BIT_STRING();
test_wolfSSL_X509(); test_wolfSSL_X509();
@ -37831,7 +37932,9 @@ void ApiTest(void)
test_wolfSSL_PKCS8_Compat(); test_wolfSSL_PKCS8_Compat();
test_wolfSSL_PKCS8_d2i(); test_wolfSSL_PKCS8_d2i();
test_wolfSSL_ERR_put_error(); test_wolfSSL_ERR_put_error();
#ifndef NO_BIO
test_wolfSSL_ERR_print_errors(); test_wolfSSL_ERR_print_errors();
#endif
test_wolfSSL_HMAC(); test_wolfSSL_HMAC();
test_wolfSSL_OBJ(); test_wolfSSL_OBJ();
test_wolfSSL_i2a_ASN1_OBJECT(); test_wolfSSL_i2a_ASN1_OBJECT();
@ -37843,6 +37946,7 @@ void ApiTest(void)
test_wolfSSL_X509_set_notAfter(); test_wolfSSL_X509_set_notAfter();
test_wolfSSL_X509_set_notBefore(); test_wolfSSL_X509_set_notBefore();
test_wolfSSL_X509_set_version(); test_wolfSSL_X509_set_version();
#ifndef NO_BIO
test_wolfSSL_BIO_gets(); test_wolfSSL_BIO_gets();
test_wolfSSL_BIO_puts(); test_wolfSSL_BIO_puts();
test_wolfSSL_BIO_should_retry(); test_wolfSSL_BIO_should_retry();
@ -37850,6 +37954,7 @@ void ApiTest(void)
test_wolfSSL_BIO_write(); test_wolfSSL_BIO_write();
test_wolfSSL_BIO_printf(); test_wolfSSL_BIO_printf();
test_wolfSSL_BIO_f_md(); test_wolfSSL_BIO_f_md();
#endif
test_wolfSSL_SESSION(); test_wolfSSL_SESSION();
test_wolfSSL_DES_ecb_encrypt(); test_wolfSSL_DES_ecb_encrypt();
test_wolfSSL_sk_GENERAL_NAME(); test_wolfSSL_sk_GENERAL_NAME();
@ -37870,8 +37975,10 @@ void ApiTest(void)
test_wolfSSL_X509_CRL(); test_wolfSSL_X509_CRL();
test_wolfSSL_PEM_read_X509(); test_wolfSSL_PEM_read_X509();
test_wolfSSL_PEM_read(); test_wolfSSL_PEM_read();
#ifndef NO_BIO
test_wolfSSL_PEM_X509_INFO_read_bio(); test_wolfSSL_PEM_X509_INFO_read_bio();
test_wolfSSL_PEM_read_bio_ECPKParameters(); test_wolfSSL_PEM_read_bio_ECPKParameters();
#endif
test_wolfSSL_X509_NAME_ENTRY_get_object(); test_wolfSSL_X509_NAME_ENTRY_get_object();
test_wolfSSL_OpenSSL_add_all_algorithms(); test_wolfSSL_OpenSSL_add_all_algorithms();
test_wolfSSL_ASN1_STRING_print_ex(); test_wolfSSL_ASN1_STRING_print_ex();
@ -37913,13 +38020,17 @@ void ApiTest(void)
#if (defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO)) && !defined(NO_RSA) #if (defined(OPENSSL_ALL) || defined(WOLFSSL_ASIO)) && !defined(NO_RSA)
AssertIntEQ(test_wolfSSL_CTX_use_certificate_ASN1(), WOLFSSL_SUCCESS); AssertIntEQ(test_wolfSSL_CTX_use_certificate_ASN1(), WOLFSSL_SUCCESS);
#ifndef NO_BIO
test_wolfSSL_d2i_PrivateKeys_bio(); test_wolfSSL_d2i_PrivateKeys_bio();
#endif
#endif /* OPENSSL_ALL || WOLFSSL_ASIO */ #endif /* OPENSSL_ALL || WOLFSSL_ASIO */
test_wolfSSL_X509_CA_num(); test_wolfSSL_X509_CA_num();
test_wolfSSL_X509_get_version(); test_wolfSSL_X509_get_version();
#ifndef NO_BIO
test_wolfSSL_X509_print(); test_wolfSSL_X509_print();
test_wolfSSL_BIO_get_len(); test_wolfSSL_BIO_get_len();
#endif
test_wolfSSL_RSA_verify(); test_wolfSSL_RSA_verify();
test_wolfSSL_X509V3_EXT_get(); test_wolfSSL_X509V3_EXT_get();
test_wolfSSL_X509V3_EXT(); test_wolfSSL_X509V3_EXT();
@ -37932,8 +38043,10 @@ void ApiTest(void)
test_wolfSSL_X509_EXTENSION_get_critical(); test_wolfSSL_X509_EXTENSION_get_critical();
test_wolfSSL_X509V3_EXT_print(); test_wolfSSL_X509V3_EXT_print();
test_wolfSSL_X509_cmp(); test_wolfSSL_X509_cmp();
#ifndef NO_BIO
test_wolfSSL_RSA_print(); test_wolfSSL_RSA_print();
test_wolfSSL_ASN1_STRING_print(); test_wolfSSL_ASN1_STRING_print();
#endif
test_openssl_generate_key_and_cert(); test_openssl_generate_key_and_cert();
test_wolfSSL_EC_get_builtin_curves(); test_wolfSSL_EC_get_builtin_curves();
@ -37960,7 +38073,9 @@ void ApiTest(void)
/* OpenSSL PKCS7 API test */ /* OpenSSL PKCS7 API test */
test_wolfssl_PKCS7(); test_wolfssl_PKCS7();
test_wolfSSL_PKCS7_SIGNED_new(); test_wolfSSL_PKCS7_SIGNED_new();
#ifndef NO_BIO
test_wolfSSL_PEM_write_bio_PKCS7(); test_wolfSSL_PEM_write_bio_PKCS7();
#endif
/* wolfCrypt ASN tests */ /* wolfCrypt ASN tests */
test_wc_GetPkcs8TraditionalOffset(); test_wc_GetPkcs8TraditionalOffset();

View File

@ -82,8 +82,10 @@ WOLFSSL_API int wolfSSL_OCSP_basic_verify(WOLFSSL_OCSP_BASICRESP *bs,
WOLF_STACK_OF(WOLFSSL_X509) *certs, WOLFSSL_X509_STORE *st, unsigned long flags); WOLF_STACK_OF(WOLFSSL_X509) *certs, WOLFSSL_X509_STORE *st, unsigned long flags);
WOLFSSL_API void wolfSSL_OCSP_RESPONSE_free(OcspResponse* response); WOLFSSL_API void wolfSSL_OCSP_RESPONSE_free(OcspResponse* response);
#ifndef NO_BIO
WOLFSSL_API OcspResponse* wolfSSL_d2i_OCSP_RESPONSE_bio(WOLFSSL_BIO* bio, WOLFSSL_API OcspResponse* wolfSSL_d2i_OCSP_RESPONSE_bio(WOLFSSL_BIO* bio,
OcspResponse** response); OcspResponse** response);
#endif
WOLFSSL_API OcspResponse* wolfSSL_d2i_OCSP_RESPONSE(OcspResponse** response, WOLFSSL_API OcspResponse* wolfSSL_d2i_OCSP_RESPONSE(OcspResponse** response,
const unsigned char** data, int len); const unsigned char** data, int len);
WOLFSSL_API int wolfSSL_i2d_OCSP_RESPONSE(OcspResponse* response, WOLFSSL_API int wolfSSL_i2d_OCSP_RESPONSE(OcspResponse* response,
@ -100,8 +102,10 @@ WOLFSSL_API int wolfSSL_i2d_OCSP_REQUEST(OcspRequest* request,
WOLFSSL_API WOLFSSL_OCSP_ONEREQ* wolfSSL_OCSP_request_add0_id(OcspRequest *req, WOLFSSL_API WOLFSSL_OCSP_ONEREQ* wolfSSL_OCSP_request_add0_id(OcspRequest *req,
WOLFSSL_OCSP_CERTID *cid); WOLFSSL_OCSP_CERTID *cid);
WOLFSSL_API WOLFSSL_OCSP_CERTID* wolfSSL_OCSP_CERTID_dup(WOLFSSL_OCSP_CERTID*); WOLFSSL_API WOLFSSL_OCSP_CERTID* wolfSSL_OCSP_CERTID_dup(WOLFSSL_OCSP_CERTID*);
#ifndef NO_BIO
WOLFSSL_API int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out, WOLFSSL_API int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out,
WOLFSSL_OCSP_REQUEST *req); WOLFSSL_OCSP_REQUEST *req);
#endif
#endif #endif
#ifdef OPENSSL_EXTRA #ifdef OPENSSL_EXTRA