Merge pull request #7150 from dgarske/getenv

Fix build with `NO_STDIO_FILESYSTEM` and improve checks for `XGETENV`
This commit is contained in:
JacobBarthelmeh
2024-01-22 08:33:24 -08:00
committed by GitHub
6 changed files with 31 additions and 18 deletions

View File

@@ -489,7 +489,8 @@ int CheckCertCRL_ex(WOLFSSL_CRL* crl, byte* issuerHash, byte* serial,
#if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \
(defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ (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 */ /* 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. */ /* by LOOKUP_ctrl because user would want to use hash_dir. */
/* Loading <issuer-hash>.rN form CRL file if find at the folder, */ /* Loading <issuer-hash>.rN form CRL file if find at the folder, */

View File

@@ -13577,7 +13577,8 @@ static void FreeProcPeerCertArgs(WOLFSSL* ssl, void* pArgs)
} }
#if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \
(defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ (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 <hash>.(r)N[0..N] */ /* load certificate file which has the form <hash>.(r)N[0..N] */
/* in the folder. */ /* in the folder. */
/* (r), in the case of CRL file */ /* (r), in the case of CRL file */
@@ -14487,7 +14488,8 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
&subjectHash, &alreadySigner); &subjectHash, &alreadySigner);
#if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \
(defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ (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) { if (ret == ASN_NO_SIGNER_E || ret == ASN_SELF_SIGNED_E) {
WOLFSSL_MSG("try to load certificate if hash dir is set"); WOLFSSL_MSG("try to load certificate if hash dir is set");
ret = LoadCertByIssuer(SSL_STORE(ssl), ret = LoadCertByIssuer(SSL_STORE(ssl),
@@ -14773,7 +14775,8 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
&subjectHash, &alreadySigner); &subjectHash, &alreadySigner);
#if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \ #if defined(OPENSSL_ALL) && defined(WOLFSSL_CERT_GEN) && \
(defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && \ (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) { if (ret == ASN_NO_SIGNER_E || ret == ASN_SELF_SIGNED_E) {
int lastErr = ret; /* save error from last time */ int lastErr = ret; /* save error from last time */
WOLFSSL_MSG("try to load certificate if hash dir is set"); WOLFSSL_MSG("try to load certificate if hash dir is set");

View File

@@ -32883,7 +32883,7 @@ int wolfSSL_RAND_seed(const void* seed, int len)
*/ */
const char* wolfSSL_RAND_file_name(char* fname, unsigned long len) const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
{ {
#ifndef NO_FILESYSTEM #if !defined(NO_FILESYSTEM) && defined(XGETENV)
char* rt; char* rt;
WOLFSSL_ENTER("wolfSSL_RAND_file_name"); 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); XMEMSET(fname, 0, len);
/* if access to stdlib.h */
if ((rt = XGETENV("RANDFILE")) != NULL) { if ((rt = XGETENV("RANDFILE")) != NULL) {
if (len > XSTRLEN(rt)) { if (len > XSTRLEN(rt)) {
XMEMCPY(fname, rt, 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 */ /* $RANDFILE was not set or is too large, check $HOME */
if (rt == NULL) { if (rt == NULL) {
char ap[] = "/.rnd"; const char ap[] = "/.rnd";
WOLFSSL_MSG("Environment variable RANDFILE not set"); WOLFSSL_MSG("Environment variable RANDFILE not set");
if ((rt = XGETENV("HOME")) == NULL) { if ((rt = XGETENV("HOME")) == NULL) {
@@ -32928,9 +32928,9 @@ const char* wolfSSL_RAND_file_name(char* fname, unsigned long len)
return fname; return fname;
#else #else
/* no filesystem defined */
WOLFSSL_ENTER("wolfSSL_RAND_file_name"); 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)fname;
(void)len; (void)len;
return NULL; return NULL;
@@ -35390,7 +35390,7 @@ void wolfSSL_PKCS12_PBE_add(void)
WOLFSSL_ENTER("wolfSSL_PKCS12_PBE_add"); 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 *wolfSSL_d2i_PKCS12_fp(XFILE fp,
WOLFSSL_X509_PKCS12 **pkcs12) WOLFSSL_X509_PKCS12 **pkcs12)
{ {

View File

@@ -2303,7 +2303,8 @@ int wolfSSL_BN_is_prime_ex(const WOLFSSL_BIGNUM *bn, int checks,
* Print APIs * Print APIs
******************************************************************************/ ******************************************************************************/
#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) #if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \
defined(XFPRINTF)
/* Print big number to file pointer. /* Print big number to file pointer.
* *
* Return code compliant with OpenSSL. * Return code compliant with OpenSSL.

View File

@@ -7984,7 +7984,7 @@ WOLFSSL_API WOLFSSL_X509_CRL *wolfSSL_d2i_X509_CRL_bio(WOLFSSL_BIO *bp,
} }
#endif #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_X509_CRL *wolfSSL_d2i_X509_CRL_fp(XFILE fp, WOLFSSL_X509_CRL **crl)
{ {
WOLFSSL_ENTER("wolfSSL_d2i_X509_CRL_fp"); WOLFSSL_ENTER("wolfSSL_d2i_X509_CRL_fp");

View File

@@ -11589,6 +11589,7 @@ static int test_wolfSSL_PKCS12(void)
* Password Key * Password Key
*/ */
#if defined(OPENSSL_EXTRA) && !defined(NO_DES3) && !defined(NO_FILESYSTEM) && \ #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_ASN) && !defined(NO_PWDBASED) && !defined(NO_RSA) && \
!defined(NO_SHA) && defined(HAVE_PKCS12) && !defined(NO_BIO) !defined(NO_SHA) && defined(HAVE_PKCS12) && !defined(NO_BIO)
byte buf[6000]; byte buf[6000];
@@ -37686,6 +37687,7 @@ static int test_wolfSSL_BN(void)
ExpectIntLT(BN_cmp(a, c), 0); ExpectIntLT(BN_cmp(a, c), 0);
ExpectIntGT(BN_cmp(c, b), 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, NULL), 0);
ExpectIntEQ(BN_print_fp(XBADFILE, &emptyBN), 0); ExpectIntEQ(BN_print_fp(XBADFILE, &emptyBN), 0);
ExpectIntEQ(BN_print_fp(stderr, NULL), 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(XBADFILE, a), 0);
ExpectIntEQ(BN_print_fp(stderr, a), 1); ExpectIntEQ(BN_print_fp(stderr, a), 1);
#endif
BN_clear(a); BN_clear(a);
@@ -43332,7 +43335,8 @@ static int test_wolfSSL_OBJ(void)
EXPECT_DECLS; EXPECT_DECLS;
#if defined(OPENSSL_EXTRA) && !defined(NO_SHA256) && !defined(NO_ASN) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_SHA256) && !defined(NO_ASN) && \
!defined(HAVE_FIPS) && !defined(NO_SHA) && defined(WOLFSSL_CERT_EXT) && \ !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 *obj = NULL;
ASN1_OBJECT *obj2 = NULL; ASN1_OBJECT *obj2 = NULL;
char buf[50]; char buf[50];
@@ -54728,7 +54732,7 @@ static int test_wolfSSL_X509_load_crl_file(void)
{ {
EXPECT_DECLS; EXPECT_DECLS;
#if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && !defined(NO_FILESYSTEM) && \ #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; int i;
char pem[][100] = { char pem[][100] = {
"./certs/crl/crl.pem", "./certs/crl/crl.pem",
@@ -57130,6 +57134,7 @@ static int test_wolfSSL_RSA_print(void)
{ {
EXPECT_DECLS; EXPECT_DECLS;
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
!defined(NO_STDIO_FILESYSTEM) && \
!defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \ !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && \
!defined(NO_BIO) && defined(XFPRINTF) !defined(NO_BIO) && defined(XFPRINTF)
BIO *bio = NULL; BIO *bio = NULL;
@@ -59850,7 +59855,8 @@ static int test_wolfSSL_EC_POINT(void)
/* check bn2hex */ /* check bn2hex */
hexStr = BN_bn2hex(k); hexStr = BN_bn2hex(k);
ExpectStrEQ(hexStr, kTest); ExpectStrEQ(hexStr, kTest);
#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) #if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \
defined(XFPRINTF)
BN_print_fp(stderr, k); BN_print_fp(stderr, k);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
#endif #endif
@@ -59858,7 +59864,8 @@ static int test_wolfSSL_EC_POINT(void)
hexStr = BN_bn2hex(Gx); hexStr = BN_bn2hex(Gx);
ExpectStrEQ(hexStr, kGx); ExpectStrEQ(hexStr, kGx);
#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) #if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \
defined(XFPRINTF)
BN_print_fp(stderr, Gx); BN_print_fp(stderr, Gx);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
#endif #endif
@@ -59866,7 +59873,8 @@ static int test_wolfSSL_EC_POINT(void)
hexStr = BN_bn2hex(Gy); hexStr = BN_bn2hex(Gy);
ExpectStrEQ(hexStr, kGy); ExpectStrEQ(hexStr, kGy);
#if !defined(NO_FILESYSTEM) && defined(XFPRINTF) #if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM) && \
defined(XFPRINTF)
BN_print_fp(stderr, Gy); BN_print_fp(stderr, Gy);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
#endif #endif