Fix OCSP tests to use Alloc/FreeDer

This commit is contained in:
Eric Blankenhorn
2026-03-24 07:41:40 -05:00
parent e58b0d69b8
commit 1d1d8ff41e
3 changed files with 23 additions and 13 deletions
+17 -11
View File
@@ -199,23 +199,29 @@ static int ConvertPemToDer(const byte* pem, word32 pemSz,
byte** der, word32* derSz, int type)
{
int ret;
DerBuffer* derBuf = NULL;
ret = wc_PemToDer(pem, pemSz, type, &derBuf, NULL, NULL, NULL);
if (ret != 0 || derBuf == NULL) {
return ret;
}
*der = (byte*)XMALLOC(derBuf->length, NULL, DYNAMIC_TYPE_TMP_BUFFER);
/* Allocate buffer large enough for DER (always smaller than PEM) */
*der = (byte*)XMALLOC(pemSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (*der == NULL) {
wc_FreeDer(&derBuf);
return MEMORY_E;
}
XMEMCPY(*der, derBuf->buffer, derBuf->length);
*derSz = derBuf->length;
wc_FreeDer(&derBuf);
if (type == PRIVATEKEY_TYPE) {
ret = wc_KeyPemToDer(pem, (int)pemSz, *der, (int)pemSz, NULL);
}
else {
ret = wc_CertPemToDer(pem, (int)pemSz, *der, (int)pemSz, type);
}
if (ret <= 0) {
XFREE(*der, NULL, DYNAMIC_TYPE_TMP_BUFFER);
*der = NULL;
if (ret == 0)
ret = BAD_FUNC_ARG;
return ret;
}
*derSz = (word32)ret;
return 0;
}
+2
View File
@@ -27240,6 +27240,7 @@ void FreeDer(DerBuffer** pDer)
}
}
#ifndef WOLFSSL_API_PREFIX_MAP
int wc_AllocDer(DerBuffer** pDer, word32 length, int type, void* heap)
{
return AllocDer(pDer, length, type, heap);
@@ -27248,6 +27249,7 @@ void wc_FreeDer(DerBuffer** pDer)
{
FreeDer(pDer);
}
#endif
#if defined(WOLFSSL_PEM_TO_DER) || defined(WOLFSSL_DER_TO_PEM)
+4 -2
View File
@@ -2257,6 +2257,8 @@ typedef enum MimeStatus
#define FillSigner wc_FillSigner
#define MakeSigner wc_MakeSigner
#define FreeSigner wc_FreeSigner
#define AllocDer wc_AllocDer
#define FreeDer wc_FreeDer
#endif /* WOLFSSL_API_PREFIX_MAP */
WOLFSSL_LOCAL int HashIdAlg(word32 oidSum);
@@ -2611,11 +2613,11 @@ WOLFSSL_LOCAL int wc_EncryptedInfoParse(EncryptedInfo* info,
WOLFSSL_LOCAL int PemToDer(const unsigned char* buff, long longSz, int type,
DerBuffer** pDer, void* heap, EncryptedInfo* info,
int* keyFormat);
WOLFSSL_TEST_VIS int AllocDer(DerBuffer** der, word32 length, int type,
WOLFSSL_API int AllocDer(DerBuffer** der, word32 length, int type,
void* heap);
WOLFSSL_LOCAL int AllocCopyDer(DerBuffer** der, const unsigned char* buff,
word32 length, int type, void* heap);
WOLFSSL_TEST_VIS void FreeDer(DerBuffer** der);
WOLFSSL_API void FreeDer(DerBuffer** der);
#ifdef WOLFSSL_ASN_PARSE_KEYUSAGE
WOLFSSL_LOCAL int ParseKeyUsageStr(const char* value, word16* keyUsage,