Skip to content

Commit 44dd389

Browse files
authored
Merge pull request #207 from elms/release/prep_v2.4.0
v2.4.0 release preparation
2 parents d22a050 + 49aabb9 commit 44dd389

9 files changed

Lines changed: 225 additions & 19 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
cmake_minimum_required(VERSION 3.16)
2323

24-
project(wolfTPM VERSION 2.3.1 LANGUAGES C)
24+
project(wolfTPM VERSION 2.4.0 LANGUAGES C)
2525

2626
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
2727

ChangeLog.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,25 @@ Fix for `make install`
1010

1111
* Fix for installing example code on linux builds (PR #196)
1212

13+
## wolfTPM Release 2.4 (05/06/2022)
14+
15+
**Summary**
16+
17+
Add CMake support. Add C# wrappers. Add ST33 GetRandom2. Improve
18+
`TPM2_SetupPCRSel`. Fixes for C++ compilers, example install and writing PEM.
19+
20+
**Detail**
21+
22+
* Fixes for c++ compiler (PR #206)
23+
* Adding a C# wrappers (PR #203)
24+
* CMake support (PR #202, #204, #205)
25+
* Add support for ST33 vendor specific command `TPM_CC_GetRandom2` (PR #200)
26+
* Fix writing PEM in `wolfTPM2_RsaKey_TpmToPemPub` (PR #201)
27+
* Improve `TPM2_SetupPCRSel` (multiple calls) (PR #198)
28+
* Fix for a few spelling errors and whitespace cleanup (PR #199)
29+
* v2.3.1 updates (PR #197)
30+
* Fix make install by renaming pcr example read.c (PR #196)
31+
1332
## wolfTPM Release 2.3 (11/08/2021)
1433

1534
**Summary**

configure.ac

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# All right reserved.
44

55
AC_COPYRIGHT([Copyright (C) 2014-2021 wolfSSL Inc.])
6-
AC_INIT([wolftpm],[2.3.1],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],[http://www.wolfssl.com])
6+
AC_INIT([wolftpm],[2.4.0],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],[http://www.wolfssl.com])
77

88
AC_PREREQ([2.63])
99
AC_CONFIG_AUX_DIR([build-aux])
@@ -23,7 +23,7 @@ AC_ARG_PROGRAM
2323
AC_CONFIG_MACRO_DIR([m4])
2424
AC_CONFIG_HEADERS([src/config.h])
2525

26-
WOLFTPM_LIBRARY_VERSION=12:1:0
26+
WOLFTPM_LIBRARY_VERSION=13:0:0
2727
# | | |
2828
# +------+ | +---+
2929
# | | |

examples/wrap/wrap_test.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,6 @@ int TPM2_Wrapper_TestArgs(void* userCtx, int argc, char *argv[])
442442
wc_FreeRsaKey(&wolfRsaPrivKey);
443443
rc = wolfTPM2_UnloadHandle(&dev, &rsaKey.handle);
444444
if (rc != 0) goto exit;
445-
#endif /* !WOLFTPM2_NO_WOLFCRYPT && !NO_RSA */
446445

447446
/* Load raw RSA private key into TPM */
448447
rc = wolfTPM2_LoadRsaPrivateKey(&dev, &storageKey, &rsaKey,
@@ -455,12 +454,12 @@ int TPM2_Wrapper_TestArgs(void* userCtx, int argc, char *argv[])
455454
(word32)rsaKey.handle.hndl);
456455
rc = wolfTPM2_UnloadHandle(&dev, &rsaKey.handle);
457456
if (rc != 0) goto exit;
457+
#endif /* !WOLFTPM2_NO_WOLFCRYPT && !NO_RSA */
458458

459459
/* Close TPM session based on RSA storage key */
460460
wolfTPM2_UnloadHandle(&dev, &tpmSession.handle);
461461
wolfTPM2_SetAuthSession(&dev, 1, NULL, 0); /* clear auth session */
462462

463-
464463
/*------------------------------------------------------------------------*/
465464
/* ECC TESTS */
466465
/*------------------------------------------------------------------------*/
@@ -662,7 +661,6 @@ int TPM2_Wrapper_TestArgs(void* userCtx, int argc, char *argv[])
662661
wc_ecc_free(&wolfEccPrivKey);
663662
rc = wolfTPM2_UnloadHandle(&dev, &eccKey.handle);
664663
if (rc != 0) goto exit;
665-
#endif /* !WOLFTPM2_NO_WOLFCRYPT && HAVE_ECC */
666664

667665
/* Load raw ECC private key into TPM */
668666
rc = wolfTPM2_LoadEccPrivateKey(&dev, &storageKey, &eccKey, TPM_ECC_NIST_P256,
@@ -675,6 +673,7 @@ int TPM2_Wrapper_TestArgs(void* userCtx, int argc, char *argv[])
675673
(word32)eccKey.handle.hndl);
676674
rc = wolfTPM2_UnloadHandle(&dev, &eccKey.handle);
677675
if (rc != 0) goto exit;
676+
#endif /* !WOLFTPM2_NO_WOLFCRYPT && HAVE_ECC */
678677

679678
#if 0 /* disabled until ECC Encrypted salt is added */
680679
/* Close TPM session based on ECC storage key */
@@ -841,6 +840,7 @@ int TPM2_Wrapper_TestArgs(void* userCtx, int argc, char *argv[])
841840
/*------------------------------------------------------------------------*/
842841
/* ENCRYPT/DECRYPT TESTS */
843842
/*------------------------------------------------------------------------*/
843+
#ifndef WOLFTPM2_NO_WOLFCRYPT
844844
rc = wolfTPM2_LoadSymmetricKey(&dev, &aesKey, TEST_AES_MODE,
845845
TEST_AES_KEY, (word32)sizeof(TEST_AES_KEY));
846846
if (rc != 0) goto exit;
@@ -878,7 +878,9 @@ int TPM2_Wrapper_TestArgs(void* userCtx, int argc, char *argv[])
878878
goto exit;
879879
}
880880
if (rc != 0) goto exit;
881-
881+
#else
882+
(void)aesIv;
883+
#endif /* !WOLFTPM2_NO_WOLFCRYPT */
882884

883885
rc = wolfTPM2_GetKeyTemplate_Symmetric(&publicTemplate, 128, TEST_AES_MODE,
884886
YES, YES);

src/tpm2_wrap.c

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ int wolfTPM2_FreeSession(WOLFTPM2_SESSION* session)
287287
}
288288
return TPM_RC_SUCCESS;
289289
}
290-
#endif /* WOLFTPM2_NO_HEAP */
290+
#endif /* !WOLFTPM2_NO_HEAP */
291291

292292
WOLFTPM2_HANDLE* wolfTPM2_GetHandleRefFromKey(WOLFTPM2_KEY* key)
293293
{
@@ -416,9 +416,15 @@ int wolfTPM2_SetKeyBlobFromBuffer(WOLFTPM2_KEYBLOB* key, byte *buffer,
416416
}
417417

418418
XMEMCPY(key->priv.buffer, runner, key->priv.size);
419-
runner += key->priv.size;
420419
done_reading += key->priv.size;
421420

421+
if (done_reading != bufferSz) {
422+
#ifdef DEBUG_WOLFTPM
423+
printf("Extra data left in buffer (%d!=%d)\n", bufferSz, done_reading);
424+
#endif
425+
return BUFFER_E;
426+
}
427+
422428
return TPM_RC_SUCCESS;
423429
}
424430

@@ -429,13 +435,18 @@ int wolfTPM2_SetKeyAuthPassword(WOLFTPM2_KEY *key, const byte* auth,
429435
return BAD_FUNC_ARG;
430436
}
431437

432-
if ((auth != NULL) && (authSz == 0)) {
438+
if ( ((auth != NULL) && (authSz == 0))
439+
|| ((auth == NULL) && (authSz != 0))
440+
) {
433441
return BAD_FUNC_ARG;
434442
}
435443

436444
/* specify auth password for storage key */
437445
key->handle.auth.size = authSz;
438-
XMEMCPY(key->handle.auth.buffer, auth, authSz);
446+
if (auth != NULL) {
447+
XMEMCPY(key->handle.auth.buffer, auth, authSz);
448+
}
449+
439450
return TPM_RC_SUCCESS;
440451
}
441452

@@ -1519,14 +1530,16 @@ int wolfTPM2_SensitiveToPrivate(TPM2B_SENSITIVE* sens, TPM2B_PRIVATE* priv,
15191530
TPMI_ALG_HASH innerAlg, outerAlg;
15201531
TPM2_Packet packet;
15211532
int pos = 0;
1522-
int digestSz, innerSz, outerSz, sensSz;
1533+
int digestSz =0;
1534+
int innerSz = 0;
1535+
int outerSz = 0;
1536+
int sensSz = 0;
15231537

15241538
if (sens == NULL || priv == NULL)
15251539
return BAD_FUNC_ARG;
15261540

15271541
digestSz = TPM2_GetHashDigestSize(nameAlg);
15281542

1529-
innerSz = outerSz = sensSz = 0;
15301543
if (sym && sym->algorithm != TPM_ALG_NULL) {
15311544
innerWrap = 1;
15321545

tests/unit_tests.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,15 +274,21 @@ static void test_TPM2_KDFa(void)
274274
.size = 8,
275275
.buffer = {0xDA, 0x50, 0x40, 0x31, 0xDD, 0xF1, 0x2E, 0x83}
276276
};
277+
byte key[TEST_KDFA_KEYSZ];
278+
279+
#ifndef WOLFTPM2_NO_WOLFCRYPT
277280
const byte keyExp[TEST_KDFA_KEYSZ] = {
278281
0xbb, 0x02, 0x59, 0xe1, 0xc8, 0xba, 0x60, 0x7e, 0x6a, 0x2c,
279282
0xd7, 0x04, 0xb6, 0x9a, 0x90, 0x2e, 0x9a, 0xde, 0x84, 0xc4};
280-
byte key[TEST_KDFA_KEYSZ];
283+
#endif
281284

282285
rc = TPM2_KDFa(TPM_ALG_SHA256, &keyIn, label, &contextU, &contextV, key, keyIn.size);
286+
#ifdef WOLFTPM2_NO_WOLFCRYPT
287+
AssertIntEQ(NOT_COMPILED_IN, rc);
288+
#else
283289
AssertIntEQ(sizeof(keyExp), rc);
284-
285290
AssertIntEQ(XMEMCMP(key, keyExp, sizeof(keyExp)), 0);
291+
#endif
286292
}
287293

288294
#endif /* !WOLFTPM2_NO_WRAPPER */

wolftpm/tpm2_types.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ typedef int64_t INT64;
119119
#else
120120

121121
#include <stdio.h>
122+
#include <stdlib.h>
122123
#include <string.h>
123124

124125
typedef uint8_t byte;
@@ -137,6 +138,8 @@ typedef int64_t INT64;
137138
#define SOCKET_ERROR_E -308 /* error state on socket */
138139

139140
#ifndef WOLFTPM_CUSTOM_TYPES
141+
#define XMALLOC(s, h, t) malloc((size_t)(s))
142+
#define XFREE(p, h, t) free(p)
140143
#define XMEMCPY(d,s,l) memcpy((d),(s),(l))
141144
#define XMEMSET(b,c,l) memset((b),(c),(l))
142145
#define XMEMCMP(s1,s2,n) memcmp((s1),(s2),(n))

0 commit comments

Comments
 (0)