add ASN1_R_HEADER_TOO_LONG case (#4392)

* add ASN1_R_HEADER_TOO_LONG case

* addressed review comments
This commit is contained in:
Hideki Miyazaki
2021-09-14 11:32:30 +09:00
committed by GitHub
parent c8bcfe4763
commit ab3bbf11e9
2 changed files with 20 additions and 0 deletions

View File

@ -25406,6 +25406,10 @@ static WOLFSSL_X509* d2i_X509orX509REQ_bio(WOLFSSL_BIO* bio,
size = wolfSSL_BIO_get_len(bio);
if (size <= 0) {
WOLFSSL_MSG("wolfSSL_BIO_get_len error. Possibly no pending data.");
#if defined(OPENSSL_ALL) && defined(WOLFSSL_PYTHON)
/* EOF ASN1 file */
WOLFSSL_ERROR(ASN1_R_HEADER_TOO_LONG);
#endif
return NULL;
}
@ -26836,6 +26840,8 @@ int wolfSSL_ERR_GET_LIB(unsigned long err)
case EVP_R_DECODE_ERROR:
case EVP_R_PRIVATE_KEY_DECODE_ERROR:
return ERR_LIB_EVP;
case ASN1_R_HEADER_TOO_LONG:
return ERR_LIB_ASN1;
default:
return 0;
}
@ -26859,6 +26865,10 @@ int wolfSSL_ERR_GET_REASON(unsigned long err)
if (err == ((ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE))
return PEM_R_NO_START_LINE;
#endif
#if defined(OPENSLL_ALL) && defined(WOLFSSL_PYTHON)
if (err == ((ERR_LIB_ASN1 << 24) | ASN1_R_HEADER_TOO_LONG))
return ASN1_R_HEADER_TOO_LONG;
#endif
/* check if error value is in range of wolfSSL errors */
ret = 0 - ret; /* setting as negative value */
@ -44150,6 +44160,11 @@ unsigned long wolfSSL_ERR_peek_last_error_line(const char **file, int *line)
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
if (ret == -ASN_NO_PEM_HEADER)
return (ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE;
#endif
#if defined(OPENSLL_ALL) && defined(WOLFSSL_PYTHON)
if (ret == ASN1_R_HEADER_TOO_LONG) {
return (ERR_LIB_ASN1 << 24) | ASN1_R_HEADER_TOO_LONG;
}
#endif
return (unsigned long)ret;
}
@ -46698,6 +46713,10 @@ unsigned long wolfSSL_ERR_peek_last_error(void)
}
if (ret == -ASN_NO_PEM_HEADER)
return (ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE;
#if defined(WOLFSSL_PYTHON)
if (ret == ASN1_R_HEADER_TOO_LONG)
return (ERR_LIB_ASN1 << 24) | ASN1_R_HEADER_TOO_LONG;
#endif
return (unsigned long)ret;
}
#else

View File

@ -1334,6 +1334,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
#define PEM_R_PROBLEMS_GETTING_PASSWORD (-MIN_CODE_E + 2)
#define PEM_R_BAD_PASSWORD_READ (-MIN_CODE_E + 3)
#define PEM_R_BAD_DECRYPT (-MIN_CODE_E + 4)
#define ASN1_R_HEADER_TOO_LONG (-MIN_CODE_E + 5)
#define ERR_LIB_PEM 9
#define ERR_LIB_X509 10