Merge pull request #393 from dgarske/rel_v3.8.0_prep

wolfTPM Release v3.8.0 prep
pull/396/head v3.8.0
Daniel Pouzzner 2025-01-07 15:26:26 -06:00 committed by GitHub
commit bcf2647ebc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 43 additions and 11 deletions

1
.gitignore vendored
View File

@ -64,6 +64,7 @@ examples/keygen/keyload
examples/keygen/keygen examples/keygen/keygen
examples/keygen/keyimport examples/keygen/keyimport
examples/keygen/external_import examples/keygen/external_import
examples/nvram/extend
examples/nvram/store examples/nvram/store
examples/nvram/read examples/nvram/read
examples/nvram/counter examples/nvram/counter

View File

@ -21,7 +21,7 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(wolfTPM VERSION 3.6.0 LANGUAGES C) project(wolfTPM VERSION 3.8.0 LANGUAGES C)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(WOLFTPM_DEFINITIONS) set(WOLFTPM_DEFINITIONS)
@ -296,6 +296,7 @@ if (WOLFTPM_EXAMPLES)
add_tpm_example(secure_rot boot/secure_rot.c) add_tpm_example(secure_rot boot/secure_rot.c)
add_tpm_example(csr csr/csr.c) add_tpm_example(csr csr/csr.c)
add_tpm_example(get_ek_certs endorsement/get_ek_certs.c) add_tpm_example(get_ek_certs endorsement/get_ek_certs.c)
add_tpm_example(ifx_fw_update firmware/ifx_fw_update.c)
add_tpm_example(gpio_config gpio/gpio_config.c) add_tpm_example(gpio_config gpio/gpio_config.c)
add_tpm_example(gpio_read gpio/gpio_read.c) add_tpm_example(gpio_read gpio/gpio_read.c)
add_tpm_example(gpio_set gpio/gpio_set.c) add_tpm_example(gpio_set gpio/gpio_set.c)
@ -305,14 +306,16 @@ if (WOLFTPM_EXAMPLES)
add_tpm_example(keyimport keygen/keyimport.c) add_tpm_example(keyimport keygen/keyimport.c)
add_tpm_example(keyload keygen/keyload.c) add_tpm_example(keyload keygen/keyload.c)
add_tpm_example(flush management/flush.c) add_tpm_example(flush management/flush.c)
add_tpm_example(tpmclear management/tpmclear.c)
add_tpm_example(native_test native/native_test.c) add_tpm_example(native_test native/native_test.c)
add_tpm_example(counter nvram/counter.c) add_tpm_example(counter nvram/counter.c)
add_tpm_example(nvextend nvram/extend.c)
add_tpm_example(policy_nv nvram/policy_nv.c) add_tpm_example(policy_nv nvram/policy_nv.c)
add_tpm_example(read nvram/read.c) add_tpm_example(read nvram/read.c)
add_tpm_example(store nvram/store.c) add_tpm_example(store nvram/store.c)
add_tpm_example(extend pcr/extend.c) add_tpm_example(extend pcr/extend.c)
add_tpm_example(policy pcr/policy.c)
add_tpm_example(policy_sign pcr/policy_sign.c) add_tpm_example(policy_sign pcr/policy_sign.c)
add_tpm_example(policy pcr/policy.c)
add_tpm_example(quote pcr/quote.c) add_tpm_example(quote pcr/quote.c)
add_tpm_example(read_pcr pcr/read_pcr.c) add_tpm_example(read_pcr pcr/read_pcr.c)
add_tpm_example(reset pcr/reset.c) add_tpm_example(reset pcr/reset.c)
@ -321,12 +324,11 @@ if (WOLFTPM_EXAMPLES)
add_tpm_example(unseal seal/unseal.c) add_tpm_example(unseal seal/unseal.c)
add_tpm_example(clock_set timestamp/clock_set.c) add_tpm_example(clock_set timestamp/clock_set.c)
add_tpm_example(signed_timestamp timestamp/signed_timestamp.c) add_tpm_example(signed_timestamp timestamp/signed_timestamp.c)
add_tpm_example(tls_client tls/tls_client.c)
add_tpm_example(tls_client_notpm tls/tls_client_notpm.c) add_tpm_example(tls_client_notpm tls/tls_client_notpm.c)
add_tpm_example(tls_client tls/tls_client.c)
add_tpm_example(tls_server tls/tls_server.c) add_tpm_example(tls_server tls/tls_server.c)
add_tpm_example(caps wrap/caps.c) add_tpm_example(caps wrap/caps.c)
add_tpm_example(wrap_test wrap/wrap_test.c) add_tpm_example(wrap_test wrap/wrap_test.c)
add_tpm_example(ifx_fw_update firmware/ifx_fw_update.c)
endif() endif()

View File

@ -1,5 +1,27 @@
# Release Notes # Release Notes
## wolfTPM Release 3.8.0 (Jan 7, 2025)
**Summary**
Fixes for session auth on key bind and password policy. Added NV extend example used with Bus_Protection_Guidance. New wolfTPM2_NVExtend wrapper and example. Added new NV policy write/read wrapper API's used with policy auth
**Detail**
* Fixed issue with auth session binding. (PR #389)
* Fixed possible missing `wc_GetPkcs8TraditionalOffset`. (PR #392)
* Fixed issue with `wolfTPM2_PolicyHash` where input digest could be too large. (PR #389)
* Added example for NV extend based on the TCG "bus protection guidance". (PR #389)
* Added support for building wolfTPM against older wolfCrypt (like v4.7.0) including CI test. (PR #390)
* Added HAL IO support for Microchip I2C bit-bang (PR #340)
* Created separate tool (./examples/management/tpmclear) for performing the TPM2_Clear (don't use args in wrap_test). (PR #391)
* Switched `wolfTPM2_LoadSymmetricKey` to default to the `WOLFTPM2_WRAP_DIGEST` for hash algorithm and not default to SHA1 for some sizes. (PR #388)
* Improved TPM NV write debug logging to show before. (PR #392)
* Cleanup the `SensitiveToPrivate` function stack variables. (PR #388)
* Cleanup comments on EK/SRK. (PR #388)
* Various spellings, tabs, execute bit on .c and formatting. (PR #386, #388, #392)
## wolfTPM Release 3.6.0 (Nov 5, 2024) ## wolfTPM Release 3.6.0 (Nov 5, 2024)
**Summary** **Summary**

View File

@ -3,7 +3,7 @@
# All right reserved. # All right reserved.
AC_COPYRIGHT([Copyright (C) 2014-2024 wolfSSL Inc.]) AC_COPYRIGHT([Copyright (C) 2014-2024 wolfSSL Inc.])
AC_INIT([wolftpm],[3.6.0],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],[http://www.wolfssl.com]) AC_INIT([wolftpm],[3.8.0],[https://github.com/wolfssl/wolfTPM/issues],[wolftpm],[http://www.wolfssl.com])
AC_PREREQ([2.63]) AC_PREREQ([2.63])
AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_AUX_DIR([build-aux])
@ -28,7 +28,7 @@ AC_ARG_PROGRAM
AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_HEADERS([src/config.h])
WOLFTPM_LIBRARY_VERSION=16:4:0 WOLFTPM_LIBRARY_VERSION=16:5:0
# | | | # | | |
# +------+ | +---+ # +------+ | +---+
# | | | # | | |

View File

@ -187,6 +187,10 @@ int TPM2_NVRAM_Extend_Example(void* userCtx, int argc, char *argv[])
XMEMSET(policyOr, 0, sizeof(policyOr)); XMEMSET(policyOr, 0, sizeof(policyOr));
rc = wolfTPM2_PolicyHash(hashAlg, policyOr, &nvSize, rc = wolfTPM2_PolicyHash(hashAlg, policyOr, &nvSize,
TPM_CC_PolicyOR, policyDigest, policyDigestSz); TPM_CC_PolicyOR, policyDigest, policyDigestSz);
if (rc != TPM_RC_SUCCESS) {
printf("wolfTPM2_PolicyHash failed!\n");
goto exit;
}
printf("PolicyOR A/B/C: %d\n", nvSize); printf("PolicyOR A/B/C: %d\n", nvSize);
TPM2_PrintBin(policyOr, nvSize); TPM2_PrintBin(policyOr, nvSize);
@ -247,6 +251,10 @@ int TPM2_NVRAM_Extend_Example(void* userCtx, int argc, char *argv[])
policyOr, nvSize policyOr, nvSize
); );
} }
if (rc != 0) {
printf("NV Create failed!\n");
goto exit;
}
/* Close session and unload endorsement */ /* Close session and unload endorsement */
wolfTPM2_UnsetAuth(&dev, 0); wolfTPM2_UnsetAuth(&dev, 0);

View File

@ -439,7 +439,7 @@ int TPM2_TLS_ClientArgs(void* userCtx, int argc, char *argv[])
#else #else
void* pkey = NULL; void* pkey = NULL;
#endif #endif
rc = wolfTPM2_ExportPublicKeyBuffer(&dev, pkey, rc = wolfTPM2_ExportPublicKeyBuffer(&dev, (WOLFTPM2_KEY*)pkey,
ENCODING_TYPE_ASN1, der, &derSz); ENCODING_TYPE_ASN1, der, &derSz);
if (rc < 0) { if (rc < 0) {
printf("Failed to export TPM public key!\n"); printf("Failed to export TPM public key!\n");

View File

@ -432,7 +432,7 @@ int TPM2_TLS_ServerArgs(void* userCtx, int argc, char *argv[])
#else #else
void* pkey = NULL; void* pkey = NULL;
#endif #endif
rc = wolfTPM2_ExportPublicKeyBuffer(&dev, pkey, rc = wolfTPM2_ExportPublicKeyBuffer(&dev, (WOLFTPM2_KEY*)pkey,
ENCODING_TYPE_ASN1, der, &derSz); ENCODING_TYPE_ASN1, der, &derSz);
if (rc < 0) { if (rc < 0) {
printf("Failed to export TPM public key!\n"); printf("Failed to export TPM public key!\n");

View File

@ -7891,7 +7891,6 @@ static int tpm2_ifx_firmware_data(WOLFTPM2_DEV* dev,
rc = cb(&cmd[2], IFX_FW_MAX_CHUNK_SZ, offset, cb_ctx); rc = cb(&cmd[2], IFX_FW_MAX_CHUNK_SZ, offset, cb_ctx);
if (rc > 0 && rc <= IFX_FW_MAX_CHUNK_SZ) { if (rc > 0 && rc <= IFX_FW_MAX_CHUNK_SZ) {
chunk_sz = rc; chunk_sz = rc;
rc = 0;
} }
else if (rc == 0) { else if (rc == 0) {
#ifdef DEBUG_WOLFTPM #ifdef DEBUG_WOLFTPM

View File

@ -34,8 +34,8 @@
extern "C" { extern "C" {
#endif #endif
#define LIBWOLFTPM_VERSION_STRING "3.6.0" #define LIBWOLFTPM_VERSION_STRING "3.8.0"
#define LIBWOLFTPM_VERSION_HEX 0x03006000 #define LIBWOLFTPM_VERSION_HEX 0x03008000
#ifdef __cplusplus #ifdef __cplusplus
} }