Skip to content

Commit 2dcd046

Browse files
committed
src/internal.c: in wolfSSL_ERR_reason_error_string(), restore handling for -WOLFSSL_X509_V_ERR_*, but separated from handling for the proper wolfSSL_ErrorCodes.
1 parent 255465a commit 2dcd046

2 files changed

Lines changed: 60 additions & 2 deletions

File tree

src/internal.c

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25679,10 +25679,58 @@ const char* wolfSSL_ERR_reason_error_string(unsigned long e)
2567925679

2568025680
case WOLFSSL_FATAL_ERROR:
2568125681
return "fatal error";
25682+
}
25683+
25684+
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
25685+
defined(HAVE_WEBSERVER) || defined(HAVE_MEMCACHED)
25686+
25687+
switch (error) {
25688+
/* TODO: -WOLFSSL_X509_V_ERR_CERT_SIGNATURE_FAILURE. Conflicts with
25689+
* -WOLFSSL_ERROR_WANT_CONNECT.
25690+
*/
25691+
25692+
case -WOLFSSL_X509_V_ERR_CERT_NOT_YET_VALID:
25693+
return "certificate not yet valid";
25694+
25695+
case -WOLFSSL_X509_V_ERR_CERT_HAS_EXPIRED:
25696+
return "certificate has expired";
25697+
25698+
case -WOLFSSL_X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
25699+
return "certificate signature failure";
25700+
25701+
case -WOLFSSL_X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
25702+
return "format error in certificate's notAfter field";
25703+
25704+
case -WOLFSSL_X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
25705+
return "self-signed certificate in certificate chain";
2568225706

25683-
default :
25684-
return "unknown error number";
25707+
case -WOLFSSL_X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
25708+
return "unable to get local issuer certificate";
25709+
25710+
case -WOLFSSL_X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
25711+
return "unable to verify the first certificate";
25712+
25713+
case -WOLFSSL_X509_V_ERR_CERT_CHAIN_TOO_LONG:
25714+
return "certificate chain too long";
25715+
25716+
case -WOLFSSL_X509_V_ERR_CERT_REVOKED:
25717+
return "certificate revoked";
25718+
25719+
case -WOLFSSL_X509_V_ERR_INVALID_CA:
25720+
return "invalid CA certificate";
25721+
25722+
case -WOLFSSL_X509_V_ERR_PATH_LENGTH_EXCEEDED:
25723+
return "path length constraint exceeded";
25724+
25725+
case -WOLFSSL_X509_V_ERR_CERT_REJECTED:
25726+
return "certificate rejected";
25727+
25728+
case -WOLFSSL_X509_V_ERR_SUBJECT_ISSUER_MISMATCH:
25729+
return "subject issuer mismatch";
2568525730
}
25731+
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL || HAVE_WEBSERVER || HAVE_MEMCACHED */
25732+
25733+
return "unknown error number";
2568625734

2568725735
#endif /* NO_ERROR_STRINGS */
2568825736
}

tests/api.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83187,7 +83187,17 @@ static int error_test(void)
8318783187
#ifndef OPENSSL_EXTRA
8318883188
{ 0, 0 },
8318983189
#endif
83190+
83191+
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
83192+
defined(HAVE_WEBSERVER) || defined(HAVE_MEMCACHED)
83193+
{ -11, -12 },
83194+
{ -15, -17 },
83195+
{ -19, -19 },
83196+
{ -26, -27 },
83197+
{ -30, WC_FIRST_E+1 },
83198+
#else
8319083199
{ -9, WC_FIRST_E+1 },
83200+
#endif
8319183201
{ -124, -124 },
8319283202
{ -166, -169 },
8319383203
{ -300, -300 },

0 commit comments

Comments
 (0)