CHANGES - changes for libtpms version 0.8.9: - tpm2: Check size of buffer before accessing it (CVE-2023-1017 & -1018) version 0.8.8: - tpm2: Do not set RSA_FLAG_NO_BLINDING on RSA keys anymore - tpm2: Fix a potential overflow expression (coverity) - tpm2: Fix size check in CryptSecretDecrypt - tpm2: Check return code of BN_div() - tpm2: Do not call EVP_PKEY_CTX_set0_rsa_oaep_label() for label of size 0 (OSSL 3) - tpm2: Do not write permanent state if only clock changed - build-sys: Add probing for -fstack-protector version 0.8.7: - tpm2: Adapted code for compiling with OpenSSL 3.0 - build-sys: Adapted for silent building with OpenSSL 3.0 version 0.8.6: - tpm2: Marshal event sequence objects' hash state version 0.8.5: - tpm2: NVMarshal: Handle index orderly RAM without 0-sized terminating node - tpm2: Initialize a whole OBJECT before using it version 0.8.4: - tpm2: Reset too large size indicators in TPM2B to avoid access beyond buffer - tpm2: Restore original value in buffer if unmarshalled one was illegal version 0.8.3: - Applied work-around for Win 2016 & 2019 server bug related to TPM2_ContextLoad (issue #217) - Surround all occurrences of BLOCK_SKIP_READ() with tests of 'rc' version 0.8.2 - CryptSym: fix AES output IV A CVE has been filed for this bugfix. Unfortunately multi-step encrypted data won't decrypt anymore but are now compatible with other TPM 2 devices. version 0.8.1 - tpm2: Fix public key context save due to ANY_OBJECT_Marshal usage This also fixed a context save and suspend/resume problem when public keys are loaded (issue #195) version 0.8.0 - NOTE: Downgrade to previous versions is not possible. See below. - Update to TPM 2 code release 159 - X509 support is enabled - SM2 signing of ceritificates is NOT supported - Authenticated timers are disabled - Due to fixes in the TPM 2 prime number generation code in rev155 it is not possible to downgrade from libtpms version 0.8.0 to some previous version. The seeds are now associated with an age so that older seeds use the old TPM 2 prime number generation code while newer seed use the newer code. - Update to TPM 2 code relase 162 - ECC encryption / decryption is disabled - Fix support for elliptic curve due to missing unmarshalling code - Runtime filter supported elliptic curves supported by OpenSSL - Fix output buffer parameter and size for RSA decryption that could cause stack corruption under certain circumstances - Set the RSA PSS salt length to the digest length rather than max. possible - Fixes to symmetric decryption related to input size check, defer padding to the user [EVP_CIPHER_CTX_set_padding(ctx, 0)] and to always use a temporary malloc'ed buffer for decryption - Fixed the set of PCRs belonging to the TCB group. This affects the pcrUpdateCounter in TPM2_Pcrread() responses, thus needs latest `swtpm` for test cases to succeed there. version 0.7.0 - use OpenSSL crypto for AES, TDES, EC, and RSA operations when possible version 0.6.0 - added TPM 2 support (revision 150) - New API calls: - TPMLIB_CancelCommand - TPMLIB_ChooseTPMVersion - TPMLIB_SetDebugFD - TPMLIB_SetDebugLevel - TPMLIB_SetDebugPrefix - TPMLIB_SetBufferSize - TPMLIB_ValidateState - TPMLIB_SetState - TPMLIB_GetState version 0.5.1 first public release - release 7 increased NVRAM area for being able to store more data in the TPM's NVRAM areas, i.e., X.509 certificates - release 9 added two more APIs: - TPM_Free - TPMLIB_DecodeBlob