mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-07 17:40:51 +02:00
Fix OCSP tests to use Alloc/FreeDer
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user