Skip to content

Commit 249f9d4

Browse files
committed
Fixes for building wolfCrypt without PEM to DER support.
1 parent a33ed5b commit 249f9d4

4 files changed

Lines changed: 18 additions & 22 deletions

File tree

examples/pcr/policy_sign.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ static int PolicySign(TPM_ALG_ID alg, const char* keyFile, const char* password,
109109
if (rc == 0) {
110110
/* handle PEM conversion to DER */
111111
if (encType == ENCODING_TYPE_PEM) {
112-
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER)
112+
#ifdef WOLFTPM2_PEM_DECODE
113113
/* der size is base 64 decode length */
114114
word32 derSz = (word32)bufSz * 3 / 4 + 1;
115115
byte* derBuf = (byte*)XMALLOC(derSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);

src/tpm2_wrap.c

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2717,9 +2717,7 @@ int wolfTPM2_ImportPublicKeyBuffer(WOLFTPM2_DEV* dev, int keyType,
27172717
}
27182718

27192719
if (encodingType == ENCODING_TYPE_PEM) {
2720-
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER) && \
2721-
(defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER)) && \
2722-
!defined(NO_ASN)
2720+
#ifdef WOLFTPM2_PEM_DECODE
27232721
/* der size is base 64 decode length */
27242722
derSz = inSz * 3 / 4 + 1;
27252723
derBuf = (byte*)XMALLOC(derSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
@@ -2755,7 +2753,7 @@ int wolfTPM2_ImportPublicKeyBuffer(WOLFTPM2_DEV* dev, int keyType,
27552753
#endif
27562754
}
27572755

2758-
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER)
2756+
#ifdef WOLFTPM2_PEM_DECODE
27592757
if (derBuf != (byte*)input) {
27602758
XFREE(derBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
27612759
}
@@ -2785,7 +2783,7 @@ int wolfTPM2_ImportPrivateKeyBuffer(WOLFTPM2_DEV* dev,
27852783
XMEMSET(&sens, 0, sizeof(sens));
27862784

27872785
if (encodingType == ENCODING_TYPE_PEM) {
2788-
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER)
2786+
#ifdef WOLFTPM2_PEM_DECODE
27892787
/* der size is base 64 decode length */
27902788
derSz = inSz * 3 / 4 + 1;
27912789
derBuf = (byte*)XMALLOC(derSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
@@ -2856,7 +2854,7 @@ int wolfTPM2_ImportPrivateKeyBuffer(WOLFTPM2_DEV* dev,
28562854
rc = wolfTPM2_ImportPrivateKey(dev, parentKey, keyBlob, pub, &sens);
28572855
}
28582856

2859-
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER)
2857+
#ifdef WOLFTPM2_PEM_DECODE
28602858
if (derBuf != (byte*)input) {
28612859
XFREE(derBuf, NULL, DYNAMIC_TYPE_TMP_BUFFER);
28622860
}
@@ -2915,8 +2913,7 @@ int wolfTPM2_RsaPrivateKeyImportDer(WOLFTPM2_DEV* dev,
29152913
}
29162914
#endif /* !NO_ASN */
29172915

2918-
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER)
2919-
2916+
#ifdef WOLFTPM2_PEM_DECODE
29202917
int wolfTPM2_RsaPrivateKeyImportPem(WOLFTPM2_DEV* dev,
29212918
const WOLFTPM2_KEY* parentKey, WOLFTPM2_KEYBLOB* keyBlob,
29222919
const char* input, word32 inSz, char* pass,
@@ -2927,8 +2924,7 @@ int wolfTPM2_RsaPrivateKeyImportPem(WOLFTPM2_DEV* dev,
29272924
return wolfTPM2_ImportPrivateKeyBuffer(dev, parentKey, TPM_ALG_RSA, keyBlob,
29282925
ENCODING_TYPE_PEM, input, inSz, pass, 0, NULL, 0);
29292926
}
2930-
2931-
#endif /* !WOLFTPM2_NO_HEAP && WOLFSSL_PEM_TO_DER */
2927+
#endif /* WOLFTPM2_PEM_DECODE */
29322928

29332929

29342930
int wolfTPM2_RsaKey_TpmToWolf(WOLFTPM2_DEV* dev, WOLFTPM2_KEY* tpmKey,
@@ -3097,17 +3093,14 @@ int wolfTPM2_RsaKey_PubPemToTpm(WOLFTPM2_DEV* dev, WOLFTPM2_KEY* tpmKey,
30973093
const byte* pem, word32 pemSz)
30983094
{
30993095
int rc = TPM_RC_FAILURE;
3100-
#if !defined(WOLFTPM2_NO_WOLFCRYPT) && defined(WOLFSSL_PEM_TO_DER) && \
3101-
(defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER))
3096+
#ifdef WOLFTPM2_PEM_DECODE
31023097
RsaKey rsaKey;
31033098
#endif
31043099

31053100
if (dev == NULL || tpmKey == NULL || pem == NULL)
31063101
return BAD_FUNC_ARG;
31073102

3108-
#if !defined(WOLFTPM2_NO_WOLFCRYPT) && defined(WOLFSSL_PEM_TO_DER) && \
3109-
(defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER)) && \
3110-
!defined(NO_ASN)
3103+
#ifdef WOLFTPM2_PEM_DECODE
31113104
/* Prepare wolfCrypt key structure */
31123105
rc = wc_InitRsaKey(&rsaKey, NULL);
31133106
if (rc == 0) {

tests/unit_tests.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ static void test_wolfTPM2_CSR(void)
328328
#endif
329329
}
330330

331-
#ifndef WOLFTPM2_NO_WOLFCRYPT
331+
#if !defined(WOLFTPM2_NO_WOLFCRYPT) && defined(WOLFTPM2_PEM_DECODE)
332332
static WOLFTPM2_KEY authKey; /* also used for test_wolfTPM2_PCRPolicy */
333333

334334
static void test_wolfTPM_ImportPublicKey(void)
@@ -364,9 +364,7 @@ static void test_wolfTPM_ImportPublicKey(void)
364364
pemPublicKey, (word32)XSTRLEN(pemPublicKey),
365365
attributes
366366
);
367-
if (rc != 0 && rc != NOT_COMPILED_IN) {
368-
AssertIntEQ(rc, 0);
369-
}
367+
AssertIntEQ(rc, 0);
370368

371369
wolfTPM2_Cleanup(&dev);
372370
}
@@ -435,7 +433,7 @@ static void test_wolfTPM2_PCRPolicy(void)
435433

436434
wolfTPM2_Cleanup(&dev);
437435
}
438-
#endif /* !WOLFTPM2_NO_WOLFCRYPT */
436+
#endif /* !WOLFTPM2_NO_WOLFCRYPT && WOLFTPM2_PEM_DECODE */
439437

440438
#if defined(HAVE_THREAD_LS) && defined(HAVE_PTHREAD)
441439
#include <pthread.h>
@@ -507,7 +505,7 @@ int unit_tests(int argc, char *argv[])
507505
test_TPM2_KDFa();
508506
test_wolfTPM2_ReadPublicKey();
509507
test_wolfTPM2_CSR();
510-
#ifndef WOLFTPM2_NO_WOLFCRYPT
508+
#if !defined(WOLFTPM2_NO_WOLFCRYPT) && defined(WOLFTPM2_PEM_DECODE)
511509
test_wolfTPM_ImportPublicKey();
512510
test_wolfTPM2_PCRPolicy();
513511
#endif

wolftpm/tpm2_types.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,11 @@ typedef int64_t INT64;
650650
#define WOLFTPM2_CERT_GEN
651651
#endif
652652

653+
#if !defined(WOLFTPM2_NO_HEAP) && defined(WOLFSSL_PEM_TO_DER) && \
654+
(defined(WOLFSSL_CERT_EXT) || defined(WOLFSSL_PUB_PEM_TO_DER)) && \
655+
!defined(NO_ASN)
656+
#define WOLFTPM2_PEM_DECODE
657+
#endif
653658

654659
/* ---------------------------------------------------------------------------*/
655660
/* ENDIANESS HELPERS */

0 commit comments

Comments
 (0)