Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/conf.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ WOLFSSL_TXT_DB *wolfSSL_TXT_DB_read(WOLFSSL_BIO *in, int num)
if (*idx == '#')
continue;
*lineEnd = '\0';
strBuf = (char*)XMALLOC(fieldsSz + lineEnd - idx + 1, NULL,
strBuf = (char*)XMALLOC(fieldsSz + (lineEnd - idx) + 1, NULL,
DYNAMIC_TYPE_OPENSSL);
if (!strBuf) {
WOLFSSL_MSG("malloc error");
Expand Down
14 changes: 10 additions & 4 deletions src/ssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -11746,17 +11746,23 @@ int wolfSSL_OCSP_parse_url(const char* url, char** host, char** port,
if (upath != NULL && uport >= upath)
goto err;
XFREE(*port, NULL, DYNAMIC_TYPE_OPENSSL);
*port = CopyString(uport, upath != NULL ? (int)(upath - uport) : -1,
NULL, DYNAMIC_TYPE_OPENSSL);
if (upath)
*port = CopyString(uport, (int)(upath - uport), NULL,
DYNAMIC_TYPE_OPENSSL);
else
*port = CopyString(uport, -1, NULL, DYNAMIC_TYPE_OPENSSL);
if (*port == NULL)
goto err;
hostEnd = uport - 1;
}
else
hostEnd = upath;

*host = CopyString(u, hostEnd != NULL ? (int)(hostEnd - u) : -1, NULL,
DYNAMIC_TYPE_OPENSSL);
if (hostEnd)
*host = CopyString(u, (int)(hostEnd - u), NULL, DYNAMIC_TYPE_OPENSSL);
else
*host = CopyString(u, -1, NULL, DYNAMIC_TYPE_OPENSSL);

if (*host == NULL)
goto err;

Expand Down
22 changes: 11 additions & 11 deletions wolfcrypt/src/asn.c
Original file line number Diff line number Diff line change
Expand Up @@ -21339,11 +21339,9 @@ static int CheckCertSignature_ex(const byte* cert, word32 certSz, void* heap,
ret = BAD_FUNC_ARG;
}

ALLOC_ASNGETDATA(dataASN, x509CertASN_Length, ret, heap);
CALLOC_ASNGETDATA(dataASN, x509CertASN_Length, ret, heap);

if ((ret == 0) && (!req)) {
/* Clear dynamic data for certificate items. */
XMEMSET(dataASN, 0, sizeof(ASNGetData) * x509CertASN_Length);
/* Set OID types expected for signature and public key. */
GetASN_OID(&dataASN[X509CERTASN_IDX_TBS_ALGOID_OID], oidSigType);
GetASN_OID(&dataASN[X509CERTASN_IDX_TBS_SPUBKEYINFO_ALGO_OID],
Expand Down Expand Up @@ -21406,8 +21404,6 @@ static int CheckCertSignature_ex(const byte* cert, word32 certSz, void* heap,
#ifndef WOLFSSL_CERT_REQ
ret = NOT_COMPILED_IN;
#else
/* Clear dynamic data for certificate request items. */
XMEMSET(dataASN, 0, sizeof(ASNGetData) * certReqASN_Length);
/* Set OID types expected for signature and public key. */
GetASN_OID(&dataASN[CERTREQASN_IDX_INFO_SPUBKEYINFO_ALGOID_OID],
oidKeyType);
Expand All @@ -21417,6 +21413,7 @@ static int CheckCertSignature_ex(const byte* cert, word32 certSz, void* heap,
/* Parse certificate request. */
ret = GetASN_Items(certReqASN, dataASN, certReqASN_Length, 1, cert,
&idx, certSz);

if (ret == 0) {
/* Store the data for verification in the certificate. */
tbs = GetASNItem_Addr(dataASN[CERTREQASN_IDX_INFO_SEQ], cert);
Expand All @@ -21427,11 +21424,14 @@ static int CheckCertSignature_ex(const byte* cert, word32 certSz, void* heap,
dataASN[CERTREQASN_IDX_INFO_SUBJ_SEQ], cert);
sigOID = dataASN[CERTREQASN_IDX_INFO_SIGALGO_OID].data.oid.sum;
#ifdef WC_RSA_PSS
sigParams = GetASNItem_Addr(dataASN[X509CERTASN_IDX_SIGALGO_PARAMS],
cert);
sigParamsSz =
GetASNItem_Length(dataASN[X509CERTASN_IDX_SIGALGO_PARAMS],
cert);
if (GetASNItem_HaveData(dataASN[X509CERTASN_IDX_SIGALGO_PARAMS])) {
sigParams =
GetASNItem_Addr(dataASN[X509CERTASN_IDX_SIGALGO_PARAMS],
cert);
sigParamsSz =
GetASNItem_Length(dataASN[X509CERTASN_IDX_SIGALGO_PARAMS],
cert);
}
#endif
GetASN_GetConstRef(&dataASN[CERTREQASN_IDX_INFO_SIGNATURE], &sig,
&sigSz);
Expand Down Expand Up @@ -34360,7 +34360,7 @@ int ParseCRL(RevokedCert* rcert, DecodedCRL* dcrl, const byte* buff, word32 sz,
GetASNItem_DataIdx(dataASN[CRLASN_IDX_TBS_REVOKEDCERTS], buff),
GetASNItem_EndIdx(dataASN[CRLASN_IDX_TBS_REVOKEDCERTS], buff));
}
if (ret == 0) {
if ((ret == 0) && GetASNItem_HaveIdx(dataASN[CRLASN_IDX_TBS_EXT_SEQ])) {
/* Parse the extensions - starting after SEQUENCE OF. */
ret = ParseCRL_Extensions(dcrl, buff,
GetASNItem_DataIdx(dataASN[CRLASN_IDX_TBS_EXT_SEQ], buff),
Expand Down
6 changes: 6 additions & 0 deletions wolfssl/wolfcrypt/asn.h
Original file line number Diff line number Diff line change
Expand Up @@ -651,6 +651,9 @@ WOLFSSL_LOCAL void SetASN_OID(ASNSetData *dataASN, int oid, int oidType);
((dataASN).length + (word32)((dataASN).data.buffer.data - (in)) - \
(dataASN).offset)

#define GetASNItem_HaveData(dataASN) \
((dataASN).data.buffer.data != NULL)

/* Get the index of a BER item's data.
*
* @param [in] dataASN Dynamic ASN data item.
Expand All @@ -660,6 +663,9 @@ WOLFSSL_LOCAL void SetASN_OID(ASNSetData *dataASN, int oid, int oidType);
#define GetASNItem_DataIdx(dataASN, in) \
(word32)((dataASN).data.ref.data - (in))

#define GetASNItem_HaveIdx(dataASN) \
((dataASN).data.ref.data != NULL)

/* Get the end index of a BER item - index of the start of the next item.
*
* @param [in] dataASN Dynamic ASN data item.
Expand Down
9 changes: 0 additions & 9 deletions wolfssl/wolfcrypt/coding.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,6 @@ WOLFSSL_API int Base64_Decode_nonCT(const byte* in, word32 inLen, byte* out,
word32* outLen);
#endif

#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
defined(HAVE_WEBSERVER) || defined(HAVE_FIPS) || \
defined(HAVE_ECC_CDH) || defined(HAVE_SELFTEST) || \
defined(WOLFSSL_ENCRYPTED_KEYS)
#ifndef WOLFSSL_BASE16
#define WOLFSSL_BASE16
#endif
#endif

#ifdef WOLFSSL_BASE16
#ifdef WOLFSSL_API_PREFIX_MAP
#define Base16_Decode wc_Base16_Decode
Expand Down
10 changes: 8 additions & 2 deletions wolfssl/wolfcrypt/settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -4316,8 +4316,14 @@ extern void uITRON4_free(void *p) ;
#define WOLFSSL_BASE64_DECODE
#endif

#if defined(WOLFCRYPT_FIPS_CORE_DYNAMIC_HASH_VALUE) && !defined(WOLFSSL_BASE16)
#define WOLFSSL_BASE16
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) || \
defined(HAVE_WEBSERVER) || defined(HAVE_FIPS) || \
defined(HAVE_ECC_CDH) || defined(HAVE_SELFTEST) || \
defined(WOLFCRYPT_FIPS_CORE_DYNAMIC_HASH_VALUE) || \
defined(WOLFSSL_ENCRYPTED_KEYS)
#ifndef WOLFSSL_BASE16
#define WOLFSSL_BASE16
#endif
#endif

#if defined(FORTRESS) && !defined(HAVE_EX_DATA)
Expand Down
Loading