commit | 6554780781e751ce072327fdb72efdaae0856ced | [log] [tgz] |
---|---|---|
author | Gang Wei <gang.wei@intel.com> | Tue Sep 20 23:08:02 2016 +0800 |
committer | Philip Tricca <philip.b.tricca@intel.com> | Thu Sep 29 11:03:08 2016 -0700 |
tree | d16583d76b7d77b3d354103edf29c5cad38739af | |
parent | 66f9b17b640744dacadc77fab307d1d5ec47fb5b [diff] |
RM: Fix persistent object handling issues after RM restarted If some persistent objects were created before RM was launched or during the last launch period, RM can't reload those handles into the handle entries due to the missing of hierachy information. This will make tpm2 create/load cmd fail when the parent handle is a old persistent handle since it can't be found in the handle map. This will also make tpm2 evict control return 0xa000a, since after tpm returns response, it the handle will not be able to be found in the handle map. For evict control case, simply omit the entry missing failure for persistent object is ok. For create/load case, if parent is a old persistent object, skip the entry matching and set the current hierarchy to TPM_RH_NULL as a workaround. The worst case will be that several handle map entries w/ NULL hierarchy will not be able to be cleared by hierarchy change cmds, but they will be released when the owner connection finished. Not perfect, but it is already the most optmized solution. Signed-off-by: Gang Wei<gang.wei@intel.com>
This stack consists of the following layers from top to bottom:
Since the FAPI and ESAPI haven't been implemented yet, this repository only contains the SAPI and layers below it, plus a test application for exercising the SAPI.
The test application, tpmclient, tests many of the commands against the TPM 2.0 simulator. The tpmclient application can be altered and used as a sandbox to test and develop any TPM 2.0 command sequences, and provides an excellent development and learning vehicle.
TPM 2.0 specifications can be found at Trusted Computing Group.