mirror of
https://github.com/stefanberger/libtpms
synced 2026-08-09 23:38:23 +00:00
Windows 2019 Server padds the TPM_ContextLoad() command with additional bytes up to TPM_PT_MAX_OBJECT_CONTEXT for the TPMS_CONTEXT part. Since libtpms does not use an OBJECT to serialize the keys (anymore) it now uses less bytes than the MAXimum of TPM_PT_MAX_OBJECT_CONTEXT bytes and the padding leaves some unconsumed bytes that end up failing the command since no left-over bytes are allowed in any command. When unconsumed bytes are left in TPMS_CONTEXT_Unmarshal() we check that the original passed in size was that of TPM_PT_MAX_OBJECT_CONTEXT and only then consume the additional padding bytes. Luckily only one command calls TPMS_CONTEXT_Unmarshal() so that no unwanted side effects should occur anywhere else, such as no bytes left for unmarshalling the next structure. The wisdom behind the padding is not quite clear but it feels like ill-fixing the code to work around a Windows 2019 server bug... This patch fixes issed #217 Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
61 lines
2.3 KiB
Plaintext
61 lines
2.3 KiB
Plaintext
CHANGES - changes for libtpms
|
|
|
|
version 0.9.0:
|
|
- NOTE: Downgrade to previous versions is not possible. See below.
|
|
- The size of the context gap has been adjusted to 0xffff from 0xff.
|
|
As a consequence of this the volatile state's format (STATE_RESET_DATA)
|
|
has changed and cannot be downgraded.
|
|
- Applied work-around for Win 2016 & 2019 server related to
|
|
TPM2_ContextLoad (issue #217)
|
|
|
|
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 release 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
|