forked from wolfSSL/wolfssl
add ASN1_R_HEADER_TOO_LONG case (#4392)
* add ASN1_R_HEADER_TOO_LONG case * addressed review comments
This commit is contained in:
19
src/ssl.c
19
src/ssl.c
@ -25406,6 +25406,10 @@ static WOLFSSL_X509* d2i_X509orX509REQ_bio(WOLFSSL_BIO* bio,
|
|||||||
size = wolfSSL_BIO_get_len(bio);
|
size = wolfSSL_BIO_get_len(bio);
|
||||||
if (size <= 0) {
|
if (size <= 0) {
|
||||||
WOLFSSL_MSG("wolfSSL_BIO_get_len error. Possibly no pending data.");
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26836,6 +26840,8 @@ int wolfSSL_ERR_GET_LIB(unsigned long err)
|
|||||||
case EVP_R_DECODE_ERROR:
|
case EVP_R_DECODE_ERROR:
|
||||||
case EVP_R_PRIVATE_KEY_DECODE_ERROR:
|
case EVP_R_PRIVATE_KEY_DECODE_ERROR:
|
||||||
return ERR_LIB_EVP;
|
return ERR_LIB_EVP;
|
||||||
|
case ASN1_R_HEADER_TOO_LONG:
|
||||||
|
return ERR_LIB_ASN1;
|
||||||
default:
|
default:
|
||||||
return 0;
|
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))
|
if (err == ((ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE))
|
||||||
return PEM_R_NO_START_LINE;
|
return PEM_R_NO_START_LINE;
|
||||||
#endif
|
#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 */
|
/* check if error value is in range of wolfSSL errors */
|
||||||
ret = 0 - ret; /* setting as negative value */
|
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 defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
|
||||||
if (ret == -ASN_NO_PEM_HEADER)
|
if (ret == -ASN_NO_PEM_HEADER)
|
||||||
return (ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE;
|
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
|
#endif
|
||||||
return (unsigned long)ret;
|
return (unsigned long)ret;
|
||||||
}
|
}
|
||||||
@ -46698,6 +46713,10 @@ unsigned long wolfSSL_ERR_peek_last_error(void)
|
|||||||
}
|
}
|
||||||
if (ret == -ASN_NO_PEM_HEADER)
|
if (ret == -ASN_NO_PEM_HEADER)
|
||||||
return (ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE;
|
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;
|
return (unsigned long)ret;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -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_PROBLEMS_GETTING_PASSWORD (-MIN_CODE_E + 2)
|
||||||
#define PEM_R_BAD_PASSWORD_READ (-MIN_CODE_E + 3)
|
#define PEM_R_BAD_PASSWORD_READ (-MIN_CODE_E + 3)
|
||||||
#define PEM_R_BAD_DECRYPT (-MIN_CODE_E + 4)
|
#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_PEM 9
|
||||||
#define ERR_LIB_X509 10
|
#define ERR_LIB_X509 10
|
||||||
|
Reference in New Issue
Block a user