Skip to content

Commit 942c6ce

Browse files
committed
OpenSSL error code handling in reason_error_string
1 parent d555c1a commit 942c6ce

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

src/internal.c

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26606,11 +26606,6 @@ const char* wolfSSL_ERR_reason_error_string(unsigned long e)
2660626606

2660726607
int error = (int)e;
2660826608

26609-
/* OpenSSL uses positive error codes */
26610-
if (error > 0) {
26611-
error = -error;
26612-
}
26613-
2661426609
/* pass to wolfCrypt */
2661526610
if ((error <= WC_SPAN1_FIRST_E && error >= WC_SPAN1_MIN_CODE_E) ||
2661626611
(error <= WC_SPAN2_FIRST_E && error >= WC_SPAN2_MIN_CODE_E))
@@ -27087,11 +27082,7 @@ const char* wolfSSL_ERR_reason_error_string(unsigned long e)
2708727082
return "HTTP Application string error";
2708827083

2708927084
case UNSUPPORTED_PROTO_VERSION:
27090-
#ifdef OPENSSL_EXTRA
27091-
return "WRONG_SSL_VERSION";
27092-
#else
2709327085
return "bad/unsupported protocol version";
27094-
#endif
2709527086

2709627087
case FALCON_KEY_SIZE_E:
2709727088
return "Wrong key size for Falcon.";
@@ -27172,10 +27163,23 @@ const char* wolfSSL_ERR_reason_error_string(unsigned long e)
2717227163
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
2717327164
defined(HAVE_WEBSERVER) || defined(HAVE_MEMCACHED)
2717427165

27166+
/* OpenSSL uses positive error codes */
27167+
if (error > 0) {
27168+
error = -error;
27169+
}
27170+
2717527171
switch (error) {
2717627172
/* TODO: -WOLFSSL_X509_V_ERR_CERT_SIGNATURE_FAILURE. Conflicts with
2717727173
* -WOLFSSL_ERROR_WANT_CONNECT.
2717827174
*/
27175+
case -WOLFSSL_R_WRONG_SSL_VERSION:
27176+
return "WRONG_SSL_VERSION";
27177+
27178+
case -WOLFSSL_X509_V_ERR_CRL_HAS_EXPIRED:
27179+
return "CRL has expired";
27180+
27181+
case -WOLFSSL_X509_V_ERR_UNABLE_TO_GET_CRL:
27182+
return "unable to get CRL";
2717927183

2718027184
case -WOLFSSL_X509_V_ERR_CERT_NOT_YET_VALID:
2718127185
return "certificate not yet valid";

tests/api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34763,7 +34763,7 @@ static int error_test(void)
3476334763

3476434764
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
3476534765
defined(HAVE_WEBSERVER) || defined(HAVE_MEMCACHED)
34766-
{ -11, -12 },
34766+
{ -11, -11 },
3476734767
{ -15, -17 },
3476834768
{ -19, -19 },
3476934769
{ -26, -27 },

wolfssl/openssl/x509.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,6 @@
6868
#define WOLFSSL_XN_FLAG_MULTILINE 0xFFFF
6969
#define WOLFSSL_XN_FLAG_ONELINE (WOLFSSL_XN_FLAG_SEP_CPLUS_SPC | WOLFSSL_XN_FLAG_SPC_EQ | WOLFSSL_XN_FLAG_FN_SN)
7070

71-
#define WOLFSSL_X509_V_ERR_CRL_HAS_EXPIRED 12
72-
#define WOLFSSL_X509_V_ERR_UNABLE_TO_GET_CRL 3
73-
7471
#ifndef OPENSSL_COEXIST
7572

7673
/* wolfSSL_X509_print_ex flags */

wolfssl/ssl.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2612,9 +2612,11 @@ WOLFSSL_API void* wolfSSL_get_app_data( const WOLFSSL *ssl);
26122612
*/
26132613
enum {
26142614
WOLFSSL_X509_V_OK = 0,
2615+
WOLFSSL_X509_V_ERR_UNABLE_TO_GET_CRL = 3,
26152616
WOLFSSL_X509_V_ERR_CERT_SIGNATURE_FAILURE = 7,
26162617
WOLFSSL_X509_V_ERR_CERT_NOT_YET_VALID = 9,
26172618
WOLFSSL_X509_V_ERR_CERT_HAS_EXPIRED = 10,
2619+
WOLFSSL_X509_V_ERR_CRL_HAS_EXPIRED = 12,
26182620
WOLFSSL_X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 13,
26192621
WOLFSSL_X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 14,
26202622
WOLFSSL_X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = 18,
@@ -2627,6 +2629,8 @@ enum {
26272629
WOLFSSL_X509_V_ERR_CERT_REJECTED = 28,
26282630
WOLFSSL_X509_V_ERR_SUBJECT_ISSUER_MISMATCH = 29,
26292631

2632+
WOLFSSL_R_WRONG_SSL_VERSION = -UNSUPPORTED_PROTO_VERSION,
2633+
26302634
#ifdef HAVE_OCSP
26312635
/* OCSP Flags */
26322636
WOLFSSL_OCSP_NOCERTS = 1,

0 commit comments

Comments
 (0)