diff --git a/src/crl.c b/src/crl.c index a4212949c..3a64d28a7 100644 --- a/src/crl.c +++ b/src/crl.c @@ -489,7 +489,8 @@ int CheckCertCRL_ex(WOLFSSL_CRL* crl, byte* issuerHash, byte* serial, #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ (defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ - !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) + !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) && \ + !defined(NO_STDIO_FILESYSTEM) /* if not find entry in the CRL list, it looks at the folder that sets */ /* by LOOKUP_ctrl because user would want to use hash_dir. */ /* Loading .rN form CRL file if find at the folder, */ diff --git a/src/internal.c b/src/internal.c index 757e5c750..c0e572bef 100644 --- a/src/internal.c +++ b/src/internal.c @@ -13577,7 +13577,8 @@ static void FreeProcPeerCertArgs(WOLFSSL* ssl, void* pArgs) } #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ (defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ - !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) + !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) && \ + !defined(NO_STDIO_FILESYSTEM) /* load certificate file which has the form .(r)N[0..N] */ /* in the folder. */ /* (r), in the case of CRL file */ @@ -14487,7 +14488,8 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx, &subjectHash, &alreadySigner); #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ (defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ - !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) + !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) && \ + !defined(NO_STDIO_FILESYSTEM) if (ret == ASN_NO_SIGNER_E || ret == ASN_SELF_SIGNED_E) { WOLFSSL_MSG("try to load certificate if hash dir is set"); ret = LoadCertByIssuer(SSL_STORE(ssl), @@ -14773,7 +14775,8 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx, &subjectHash, &alreadySigner); #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ (defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ - !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) + !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) && \ + !defined(NO_STDIO_FILESYSTEM) if (ret == ASN_NO_SIGNER_E || ret == ASN_SELF_SIGNED_E) { int lastErr = ret; /* save error from last time */ WOLFSSL_MSG("try to load certificate if hash dir is set"); diff --git a/src/ssl.c b/src/ssl.c index 4f42c5359..b4cac3105 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -32883,7 +32883,7 @@ int wolfSSL_RAND_seed(const void* seed, int len) */ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len) { -#ifndef NO_FILESYSTEM +#if !defined(NO_FILESYSTEM) && defined(XGETENV) char* rt; WOLFSSL_ENTER("wolfSSL_RAND_file_name"); @@ -32893,7 +32893,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len) } XMEMSET(fname, 0, len); - /* if access to stdlib.h */ + if ((rt = XGETENV("RANDFILE")) != NULL) { if (len > XSTRLEN(rt)) { XMEMCPY(fname, rt, XSTRLEN(rt)); @@ -32906,7 +32906,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len) /* $RANDFILE was not set or is too large, check $HOME */ if (rt == NULL) { - char ap[] = "/.rnd"; + const char ap[] = "/.rnd"; WOLFSSL_MSG("Environment variable RANDFILE not set"); if ((rt = XGETENV("HOME")) == NULL) { @@ -32914,7 +32914,7 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len) return NULL; } - if (len > XSTRLEN(rt) + XSTRLEN(ap)) { + if (len > XSTRLEN(rt) + XSTRLEN(ap)) { fname[0] = '\0'; XSTRNCAT(fname, rt, len); XSTRNCAT(fname, ap, len - XSTRLEN(rt)); @@ -32928,9 +32928,9 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len) return fname; #else - /* no filesystem defined */ WOLFSSL_ENTER("wolfSSL_RAND_file_name"); - WOLFSSL_MSG("No filesystem feature enabled, not compiled in"); + WOLFSSL_MSG("RAND_file_name requires filesystem and getenv support, " + "not compiled in"); (void)fname; (void)len; return NULL; @@ -35390,7 +35390,7 @@ void wolfSSL_PKCS12_PBE_add(void) WOLFSSL_ENTER("wolfSSL_PKCS12_PBE_add"); } -#if !defined(NO_FILESYSTEM) +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) WOLFSSL_X509_PKCS12 *wolfSSL_d2i_PKCS12_fp(XFILE fp, WOLFSSL_X509_PKCS12 **pkcs12) { diff --git a/src/ssl_bn.c b/src/ssl_bn.c index 8a054c807..cbb4a92fa 100644 --- a/src/ssl_bn.c +++ b/src/ssl_bn.c @@ -2303,7 +2303,8 @@ int wolfSSL_BN_is_prime_ex(const WOLFSSL_BIGNUM *bn, int checks, * Print APIs ******************************************************************************/ -#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \ + defined(XFPRINTF) /* Print big number to file pointer. * * Return code compliant with OpenSSL. diff --git a/src/x509.c b/src/x509.c index b927d88e0..05c3a02d4 100644 --- a/src/x509.c +++ b/src/x509.c @@ -7984,7 +7984,7 @@ WOLFSSL_API WOLFSSL_X509_CRL *wolfSSL_d2i_X509_CRL_bio(WOLFSSL_BIO *bp, } #endif -#ifndef NO_FILESYSTEM +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) WOLFSSL_X509_CRL *wolfSSL_d2i_X509_CRL_fp(XFILE fp, WOLFSSL_X509_CRL **crl) { WOLFSSL_ENTER("wolfSSL_d2i_X509_CRL_fp"); diff --git a/tests/api.c b/tests/api.c index 96942b48f..8a7272edb 100644 --- a/tests/api.c +++ b/tests/api.c @@ -11589,6 +11589,7 @@ static int test_wolfSSL_PKCS12(void) * Password Key */ #if defined(OPENSSL_EXTRA) && !defined(NO_DES3) && !defined(NO_FILESYSTEM) && \ + !defined(NO_STDIO_FILESYSTEM) && \ !defined(NO_ASN) && !defined(NO_PWDBASED) && !defined(NO_RSA) && \ !defined(NO_SHA) && defined(HAVE_PKCS12) && !defined(NO_BIO) byte buf[6000]; @@ -37686,6 +37687,7 @@ static int test_wolfSSL_BN(void) ExpectIntLT(BN_cmp(a, c), 0); ExpectIntGT(BN_cmp(c, b), 0); +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) ExpectIntEQ(BN_print_fp(XBADFILE, NULL), 0); ExpectIntEQ(BN_print_fp(XBADFILE, &emptyBN), 0); ExpectIntEQ(BN_print_fp(stderr, NULL), 0); @@ -37693,6 +37695,7 @@ static int test_wolfSSL_BN(void) ExpectIntEQ(BN_print_fp(XBADFILE, a), 0); ExpectIntEQ(BN_print_fp(stderr, a), 1); +#endif BN_clear(a); @@ -43332,7 +43335,8 @@ static int test_wolfSSL_OBJ(void) EXPECT_DECLS; #if defined(OPENSSL_EXTRA) && !defined(NO_SHA256) && !defined(NO_ASN) && \ !defined(HAVE_FIPS) && !defined(NO_SHA) && defined(WOLFSSL_CERT_EXT) && \ - defined(WOLFSSL_CERT_GEN) && !defined(NO_BIO) + defined(WOLFSSL_CERT_GEN) && !defined(NO_BIO) && \ + !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) ASN1_OBJECT *obj = NULL; ASN1_OBJECT *obj2 = NULL; char buf[50]; @@ -54728,7 +54732,7 @@ static int test_wolfSSL_X509_load_crl_file(void) { EXPECT_DECLS; #if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && !defined(NO_FILESYSTEM) && \ - !defined(NO_RSA) && !defined(NO_BIO) + !defined(NO_STDIO_FILESYSTEM) && !defined(NO_RSA) && !defined(NO_BIO) int i; char pem[][100] = { "./certs/crl/crl.pem", @@ -57130,6 +57134,7 @@ static int test_wolfSSL_RSA_print(void) { EXPECT_DECLS; #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \ + !defined(NO_STDIO_FILESYSTEM) && \ !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \ !defined(NO_BIO) && defined(XFPRINTF) BIO *bio = NULL; @@ -59850,7 +59855,8 @@ static int test_wolfSSL_EC_POINT(void) /* check bn2hex */ hexStr = BN_bn2hex(k); ExpectStrEQ(hexStr, kTest); -#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \ + defined(XFPRINTF) BN_print_fp(stderr, k); fprintf(stderr, "\n"); #endif @@ -59858,7 +59864,8 @@ static int test_wolfSSL_EC_POINT(void) hexStr = BN_bn2hex(Gx); ExpectStrEQ(hexStr, kGx); -#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \ + defined(XFPRINTF) BN_print_fp(stderr, Gx); fprintf(stderr, "\n"); #endif @@ -59866,7 +59873,8 @@ static int test_wolfSSL_EC_POINT(void) hexStr = BN_bn2hex(Gy); ExpectStrEQ(hexStr, kGy); -#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) +#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \ + defined(XFPRINTF) BN_print_fp(stderr, Gy); fprintf(stderr, "\n"); #endif