forked from wolfSSL/wolfssl
Merge pull request #7150 from dgarske/getenv
Fix build with `NO_STDIO_FILESYSTEM` and improve checks for `XGETENV`
This commit is contained in:
@ -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 <issuer-hash>.rN form CRL file if find at the folder, */
|
||||
|
@ -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 <hash>.(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");
|
||||
|
14
src/ssl.c
14
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)
|
||||
{
|
||||
|
@ -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.
|
||||
|
@ -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");
|
||||
|
18
tests/api.c
18
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
|
||||
|
Reference in New Issue
Block a user