Transcribe release notes into ChangeLog.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..c2fa9d6
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,510 @@
+2015-07-28 Will Arthur <will.c.arthur@intel.com>
+* 0.98 release
+* Added ability for resource manager to communicate with a real TPM via
+/dev/tpm0 (Linux only). Added command line switch to select simulator if not
+communicating with a real TPM.
+* Rearranged directory structure in a more logical fashion.
+* Changed name of Linux makefiles from “makefile.linux” to makefile. This was
+done in preparation for autotools porting (future enhancement).
+* Changed tpm library’s windows makefile from “makefile” to “windows.mak”.
+* Changed all makefiles and Visual Studio solution and project files to work
+with new directory structure.
+* Split out debug and TPM platform command code in tpmsockets.cpp into
+separate files. This code didn’t belong in this file.
+
+2015-??-?? Will Arthur <will.c.arthur@intel.com>
+* 0.97 release
+* Fixed resource manager issues with leaving objects and session contexts in
+TPM memory. This was causing a 902 error on 2nd pass of PolicyTests. And it
+could have caused issues when error conditions occurred, because in those
+cases, the contexts weren't being evicted.
+* Changed TAB/RM into a separate executable (daemon).
+* Added code to save context in RM table when an object is context loaded.
+* Added code to get hierarchy from context when object is context loaded.
+* Fixed bug: if LoadContext fails when loading objects it should exit
+ResourceMgrSendTpmCommand immediately. Instead it was loading other objects
+and proceeding through the rest of ResourceMgrSendTpmCommand function.
+* Added targeted test to tpmclient.cpp to make sure that hierarchy is saved
+correctly for ContextLoad command.
+* Fixed issues with TCTI: opaque data shouldn't be defined in tss2_tcti.h
+file.
+* Fixed makefile issue: under Windows, it was using mkdir command instead of
+md.
+* Fixed issue with definition of TSS2_TCTI_POLL_HANDLE in tss2_tcti.h file.
+* Fixed bug: wasn't handling case for TPM errors correctly in CheckPassed.
+* Added code to print level-specific messages when errors occur.
+* Changed CheckOverflow to return SAPI error level for errors. Other levels of
+TSS that call this function will alter the error level field.
+* Fixed resource manager to properly handle EvictControl commands. Before, if
+a persistent object was needed, the RM would give a 0xc0002 error.
+* Fixed printf's in resource manager so that they only print the right # of
+characters.
+* Added test for EvictControl.Fixed TestEncryptDecryptSession to work with
+1.22 simulator.
+* Fixed TestShutdown to work with 1.22 simulator.
+* Added code to check that TPM2B output parameters' size fields are set to 0
+for following structures: TPM2B_ECC_POINT, TPM2B_PUBLIC, TPM2B_NV_PUBLIC, and
+TPM2B_CREATION_DATA.
+
+2015-04-16 Will Arthur <will.c.arthur@intel.com>
+* 0.96 release
+* Added buffer overrun checks to all SAPI code.
+* Added buffer overrun checks to resource manager code.
+* Added code to Part 3 functions to properly handle null pointers for output
+parameters.
+* Auto-generated most of the SAPI code from the TPM 2.0 specification.
+
+2015-01-26 Will Arthur <will.c.arthur@intel.com>
+* 0.95.1 release
+* Fixed bug in CreatePrimary and Create: for one-call and decrypt session
+case, they were copying first parameter from incorrect pointer.
+* For CopyCreationDataOut, CopyECCPointOut, CopyNvPublicOut, CopyPublicOut
+added placeholder for return code if size != 0 when called. To be filled in
+when TSS WG decides on error code.
+* Fixed bugs in CopySensitiveCreateIn and CopySensitiveIn: they shouldn't look
+at the size.
+* Fixed bugs in CopyECCPointIn, CopyNvPublicIn, CopyPublicIn, CopySensitiveIn,
+and CopySensitiveCreateIn: not handling NULL outpul parameters correctly.
+* Changes all instances of calls to ExecuteFinish to a timeout that works for
+all cases including communicating with the simulator over the network.
+* Fixed call to LoadExternal in TestUnseal--needed to pass in a NULL pointer
+for the inSensitive parameter.
+* Fixed bug in CreatePrimary: not passing correct pointer for inSensitive.
+* Fixed timeouts for all ExecuteFinish calls in test application.
+* Fixed bugs in RM: cases where I wasn't handling errors and then parsing data
+that hadn't been received. Caused seg faults under Linux.
+* Fixed timeout for async Startup test.
+* Fixed SocketReceiveTpmResponse for blocking case.
+* Fixed bug in ExecuteFinish: BAD_SEQUENCE error generated early in function
+was getting overwritten by INSUFFICENT_RESPONSE error.
+* Fixed bug in ExecuteFinish: it was always setting timeout to 0 instead of
+TSS2_TCTI_TIMEOUT_BLOCK.
+* Fixed bug in resource manager: error level for non-TPM errors was getting
+overwritten with resource manager error level.
+* Replace Implementation.h with implementation.h.
+* Changed name of TPMB.h tpmb.h
+* Added code to dynamically work around simulator 1.19 bugs:
+- GetCapability with bad property returns different error code.
+- Shutdown with bad value for shutdownValue causes TPM to go into failure
+mode.
+* Fixed overlap in error codes: TSS2_BASE_RC_NOT_SUPPORTED and
+TSS2_BASE_RC_BAD_TCTI_STRUCTURE had same value.
+* Cleaned up all app level error codes.
+* Added code to RM and simDriver to support timeout on receive calls.
+* Added code to properly handle TPM errors in ExecuteFinish. Previously it was
+ignoring these errors, which meant that the rest of the _Complete call would
+try to unmarshall non-existent response data. Added test case for this.
+* Added support for cancel commands and tests for this.
+* Added help text for command line options.
+* Fixed bug with ordering of -startAuthSessionTest command line parameter: if
+it was not the last option, tpmclient would fail.
+* Added code to reset dictionary attacks to start of tpmclient tests: this
+works around an issue where the simulator doesn't seem to completely clear the
+dictionary attack counter.
+* Added support for TCTI setLocality to resource manager and sim driver and
+made test app use this.
+* Added RM tests.
+* Added code to RM to evict contexts for objects, sequences, and sessions
+whose handles are returned by commands.
+* Fixed bugs related to ContextLoad.
+* Added code to properly support ContextSave.
+* Fixed bug in EvictContext: it was updating lastSessionSequenceNum even if
+the ContextSave command failed.
+* Added proper error code levels to all RM errors.
+* Added code to LoadContext function to output TPM formatted error codes.
+* For Create and Load commands, added proper handling of errors if parent
+handle not found.
+* Fixed handling of RM errors that occur during command send.
+* Fixed bug in simDriver init function. A second TCTI context being
+initialized was re-initing the whole driver.
+* Added tests for bad session handle, both in handle area and in authorization
+area.
+* Updated to latest 1.19 header files.
+* Fixed bugs in resource manager:
+- FindOldestSession wasn't working correctly—it was just finding the first
+one.
+- HandleGap needed to un-gap all the session contexts from the older interval.
+It wasn't doing that.
+* Fixed bug in handling of command line options—specifying none would cause
+program to error out.
+* Fixed issues in cleanup of TestStartAuthSession test. It was leaving some
+sessions alive.
+* Added command line option to run the StartAuthSession tests by themselves.
+* Updated copyright notices on all files.
+* Added support for command line control of debug message levels.
+* Changed test app to use linked list of session structures instead of fixed
+array. This fixed a host of issues.
+* Added new error level for resource manager for errors received from TPM from
+commands sent by RM.
+* Added error return for insufficiently sized response to ExecuteFinish
+function.
+* Fixed bugs in Certify, CertifyCreation, Commit, Create, CreatePrimary, and
+GetCapability: if null used for return parameters, the function would fail.
+* Added gap support to resource manager.
+* Added support to resource manager for kicking out oldest session if max
+sessions have been started and a new one is being created.
+* Added getCap calls to RM init function for getting max sessions and gap
+limit.
+* Added code to teardown the RM.
+* Added test for session gapping.
+* Fixed bug in SimpleHmacOrPolicyTest where it was re-creating the global
+sysContext causing failures in later tests because the context was too small.
+* Fixed a bug in ExecuteFinish. If response is too small, code was just using
+the command buffer as the response buffer instead of returning an error.
+* Added code to proactively detect MAX_ACTIVE_SESSIONS.
+* Fixed some places in test app where I wasn't deleting entries from the
+sessions table.
+* Added SAPI library subproject to test app project. This allows a one-touch
+build in Visual Studio.
+* Removed 'extern "C"' statement from resourcemgr.c file. Not needed and
+causes problems with some compilers.
+* Removed unneeded includes from resource manager source.
+* Added changes to return error codes from TAB/RM and layers underneath in a
+response byte stream.
+* Fixed build warnings related to size mismatch of connectionId.
+* Changed TeardownSysContext to zero out freed context pointer.
+* This helps prevent double free errors.
+* Fixed bug in EncryptDecryptXOR: wasn't setting the size of the outputData
+buffer.
+
+2014-10-17 Will Arthur <will.c.arthur@intel.com>
+* 0.95 release
+* Added support for Shutdown/Startup and effects on saved contexts.
+* Added support for stClear bit objects. On a TPM Restart, objects with this
+bit set will be removed from the TAB/RM entry list.
+* Fixed intermittent access violation bug with GetSetDecryptParamTests
+function. I was reading off the end of the nvWrite buffer.
+* Added TCTI teardown function.
+* Fixed bug in Tss2_Sys_GetContextSize function: it was getting the requested
+size only, not the requested size plus the context blob's size. Problem was an
+associativity issue with ternary conditional ?: operator.
+* Removed most instances of sysContext in tpmclient.cpp. Now most tests use
+the global one.
+* Re-architected TAB/RM:
+* Added TAB functionality.
+* Changed RM from reactive mode to proactive mode. Now instead of reacting to
+error codes from the TPM that indicate no enough slots, it guarantees that the
+TPM is always ready for each command (all slots freed after execution of each
+command).
+* Added TCTI layer below RM to talk to driver. This allows making calls into
+the SAPI library from the RM without recursing into the RM again. With the
+separate TCTI context, the RM can route SAPI calls to talk directly to the
+driver. This fixed the virtual/real handle mess that was occurring with
+recursively entering the RM.
+* Added function pointers to TAB/RM for functions that might need to be
+different based on the environment that TAB/RM is running in: malloc, free,
+printf.
+* Replaced the fixed length arrays of RM structures with linked list
+structures and appropriate functions.
+* Fixed some cases of using pointers before checking that they're not NULL.
+* Fixed bugs in marshalling/unmarshalling routines and added some missing
+unmarshalling functions.
+* Fixed hash sequence test.
+* Fixed bugs in CopyCapabilityDataOut function for algorithms.
+* Fixed bug with ExecuteAsync: passed in BE size to transmit call. Needs to be
+host-endian.
+* Added and corrected error codes to match latest SAPI spec.
+* Removed pack pragma from header files for external interfaces.
+* Added MAX_NV_BUFFER_SIZE and used for max size of MAX_NV_BUFFER_2B.
+* Changed on bit fields in TPM2 data structures to unsigned int. Previously
+the compiler was generating incorrect code because these were int bit fields.
+* Cleaned up TestHash function.
+* Added code to TestHash to calculate and validate a hash.
+* Added code to TestHash to force a flush of an active sequence and then use
+it to finish the hash calculation.
+* Added code to SimpleHMACTest to read the NV index back.
+* Added SimpleHMACOrPolicyTest function which helps illustrate the difference
+between HMAC and policy sessions.
+
+2014-08-01 Will Arthur <will.c.arthur@intel.com>
+* 0.93 release
+* Fixed bad parameters on call to GetEncryptParam. This only failed on Linux
+systems.
+* Fixed minor build errors under Linux.
+* Added IsSession routine and fixed all instances in resource manager where a
+handle is checked for being a session handle (some were incorrect).
+* Eliminated unneeded code in TestPolicy.
+* Added RollNonces function and used for all tests for HMAC and policy
+sessions.
+* Changed how nonce's are setup after StartAuthSession. Before they were being
+inherently rolled in preparation for first command. Now the RollNonces routine
+will need to be called before the first command. This makes handling of the
+nonces consistent for all code that needs to roll them.
+* Added TCTI malformed response error code.
+* Added simple HMAC test.
+* Fixed bug in StartAuthSession: wasn't marshalling symmetric parameter
+properly if algorithm was TPM_ALG_XOR.
+* Fixed bug in SetDecryptParam: when inserting a decrypt param, the code
+wasn't updating the command size field.
+* Fixed bug in ExecuteFinish: wasn't returning TPM error code if no other
+errors had occurred.
+* Added test for session parameter encryption and decryption.
+* Fixed bug in KDFa function: if key size was zero, this was just returning
+success, but not generating a key. That behavior is specific to session key
+generation not to the underlying KDFa function. Upleveled that code into
+StartAuthSession function so that it only occurs in the session key generation
+case.
+* Changed NV attributes for all NV indices to add orderly attribute. This
+helps, but doesn't entirely relieve, NV wearout issues with the tests.
+* Removed an unused input parameter from ComputeCommandHmacs and
+CheckResponseHmacs.
+* Changed NV attributes for all NV indices to add orderly attribute. This
+helps, but doesn't entirely relieve, NV wearout issues with the tests.
+* Removed an unused input parameter from ComputeCommandHmacs and
+CheckResponseHmacs.
+* Added more descriptive error codes to StartAuthSession function.
+* Added TpmHashSequence function. Used this build password/PCR policy.
+* Added more policy tests: password/PCR, authValue, password
+* Fixed a bunch of resource manager issues. Many of these were exposed by the
+new policy tests.
+* Added code to flush context of session handles I'm not using.
+* Added GetTestResult functions (had missed these previously)
+* Updated resource manager to properly handle sessions. Before we were not
+swapping them in as needed.
+* Added tests for asyncronous and syncronous non-one call to Startup tests.
+* Added GetTestResult tests.
+* Added test to create a bunch of sessions. This test found some resource
+manager issues.
+* Updated readme.docx file. Now tests can run with V1.15 version of MS
+simulator.
+* Made test app work with MS simulator version 1.15. Had to add command to
+turn on NV. Before this change, when running against MS simulator,
+TPM2_Startup would fail with 0x923 error: "ERROR: WARNING,
+TPM_RC_NV_UNAVAILABLE: the command may require writing of NV and NV is not
+current accessible."
+* Changed NO_RESPONSE_RECEIVED error code to IO_ERROR.
+* Removed DRIVER_NOT_FOUND and DRIVERINFO_NOT_FOUND error codes.
+* Cleaned up defines for MS simulator commands.
+
+2014-06-17 Will Arthur <will.c.arthur@intel.com>
+* 0.92 release
+* Fixed bugs in sockets send and receive code. Needed to account for actual
+bytes sent/received instead of assuming them. This was causing intermittent
+errors when looping continuously on the tests and running the tests remotely
+(on a different host system than the simulator was running on).
+* Fixed SAPI and test app builds to not fail if directories are already
+present. Suppressed error messages related to mkdir.
+* Turned on compiler warnings and fixed all issues when building under Ubuntu
+Linux.
+* Fixed error in readme.docx file. I was specifying the wrong version of the
+simulator.
+* Fixed error handling if sockets interface fails to connect.
+* Fixed build error: now I make directories that are needed.
+
+2014-06-04 Will Arthur <will.c.arthur@intel.com>
+* 0.91 release
+* Added code optimized builds to System API library code
+* Added warning flags to compiler command lines.
+* Fixed all compiler warnings when built under Windows and Linux.
+
+2014-05-28 Will Arthur <will.c.arthur@intel.com>
+* 0.90 release
+* Ported existing functionality to latest SAPI spec.
+* Cleaned up and added comments to PasswordTest.
+* Added support for encrypt/decrypt sessions with one-call functions.
+* Added cleaned up and reorganized header files that comply with latest SAPI
+specification.
+* Added changes for supporting get/set encrypt/decrypt functions.
+* Added latest header file that corresponds to version 1.03 of TPM 2.0
+specification.
+* Added debug display of command string for each command being run.
+* Added command line flag to slow down test display for demo purposes.
+* Fixed problem of hang when looping through tests. Sessions table was running
+out of entries because we weren't removing sessions that were closed.
+* Fixed issue with resource manager. All virtual handles had the high nibble
+set to 0xff. Now the high nibble is left intact so that applications can
+determine the type of the handle.
+* Added option to loop the tests continuously.
+NOTES:
+1. Testing is not comprehensive. See test code to see what’s tested. Please
+report any bugs found so that fixes can be rolled out.
+2. Range checks within SAPI code not yet implemented.
+3. Still need to add support for separate debug and production builds.
+Production build will be optimized for code size.
+
+2013-12-16 Will Arthur <will.c.arthur@intel.com>
+* 0.82 release
+NOTE: HMAC and cpHash calculations are only supported for NV Read and NV Write
+commands currently. The system API changes to support this have been
+prototyped for these commands and are awaitingTSS approval before being ported
+to all the other commands.
+* Added support for building and running system API code and tests under
+Linux.
+* Added command line options for host name and port to test application.
+
+2013-12-02 Will Arthur <will.c.arthur@intel.com>
+* 0.81 release
+NOTE: HMAC and cpHash calculations are only supported for NV Read and NV Write
+commands currently. The system API changes to support this have been
+prototyped for these commands and are awaitingTSS approval before being ported
+to all the other commands.
+* Added support for TPM2_PolicyNvWritten command.
+* Altered tests to work with 1.01 simulator.
+* Fixed errors in readme.docx.
+
+2013-11-19 Will Arthur <will.c.arthur@intel.com>
+* 0.80 release
+NOTE: HMAC and cpHash calculations are only supported for NV Read and NV Write
+commands currently. The system API changes to support this have been
+prototyped for these commands and are awaitingTSS approval before being ported
+to all the other commands.
+* Fixed bugs in resource manager.
+* Fixed bugs with salted session tests.
+* Ported tests to work with 0.99 sim's version of support for bound sessions.
+* Fixed bugs in test code, with how key is generated for encrypting the salt
+for salted session tests.
+* Fixed a rather serious bug in HmacSessionTest: CopyNvPublicIn is called to
+copy a structure, but is had the side effect of modifying the first parameter.
+This function really wasn't designed to be used the way it is. Worked around
+the problem by resetting the pointer after calling CopyNvPublicIn. This
+problem showed up as a stack corruption issue that occurred during the 4th
+test. Basically the pointer moved enough after the first 3 tests to start
+corrupting other variables on the stack.
+* Added code to create a new session for reading/writing the NV index after
+it’s first written. This tests the other case for bound sessions.
+* Automated runtime setup of key for salted tests.
+* Developed changes for NVRead/Write commands to use new 2-stage method for
+handling HMAC calculations.
+* Changed CopyPcrSelectionIn function so that it can be used by applications
+to generate policy hashes.
+* Fixed build error: changes in header files weren't causing TPM 2.0 library
+functions to be rebuilt.
+* Created CalcPHash helper function.
+* Changed HMAC session code to new architecture that doesn't use any helper
+function pointers.
+* Added routine to start policy sessions.
+* Added policy test code--not used currently.
+* Changed return code type form UINT32 to TPM_RC in tss_sysapi.h.
+* Changed "authHandle" to "sessionHandle" in sample code.
+* Debugged and fixed StartAuthSession2 function in test code.
+* Debugged and fixed first policy test.
+* Used new NvDefine function to help abstract some of the details of creating
+NV indices.
+* Used non-MS header file to build system API.
+* Cleaned up and reorganized files and directories.
+
+2013-08-07 Will Arthur <will.c.arthur@intel.com>
+* 0.67 release
+NOTE: HMAC helper function callouts are only being done for NV Read and NV
+Write commands currently. The system API changes to support this are still
+being prototyped. After they are finalized, these changes will be extended to
+all functions that use sessions.
+* Removed tis.h file. Not needed.
+* Updated headers with Intel license text.
+* Eliminated salted session test (because it doesn't work yet), and changed
+out.good file to match.
+* Plumbed in a resource mgr (doesn't actually do anything other than pass
+through at this time).
+* Split sockets driver into separate code module.
+* SALTED session test fixes:
+- Fixed CopyRSAEncryptIon function--wasn't handling some cases correctly.
+- Backed out change to make parameterSize passed to ComputeSessionHmacPtr
+function a UINT16. Needs to be UINT32.
+* For ComputeSessionHmacPtr, changed parameterSize to UINT16 to fix build
+warning.
+* Added BOUND and SALTED HMAC session tests. BOUND test works, but SALTED
+doesn't yet work.
+* Added code to delete an entity from the entity table.
+* Added code to work around an NV index anomaly with TPM simulator 0.98 and
+previous versions: after the first NV index write, the name changes. This
+causes the TPM's HMAC calculation to treat the index as if it's never the
+BOUND entity, even if it is. This is expected (but weird) behavior which will
+be fixed in 0.99 simulator.
+* Fixed bugs in KDFa().
+* Altered all APIs to use pointers to TPM input/output buffers.
+* Created two helper functions pointers for system API and used them for HMAC
+sessions.
+* Added support for HMAC session for NV read/write APIs.Added HMAC tests for
+unbounded/unsalted sessions.Fixed context save/restore functions.Created
+CopyNvPublicIn function and altered Tpm2_DefineSpace function to use it.
+* Created TpmHash function
+* Created TpmHandleToName function
+* Added HMAC tests for unbounded/unsalted sessions.
+* Fixed context save/restore functions.
+* Created CopyNvPublicIn function and altered Tpm2_DefineSpace function to use
+it.
+* Created TpmHash function
+* Created TpmHandleToName function
+* Documented helper function pointers in the system API header file.
+* Fixed formatting of prints of sized byte buffers in test app.
+* Added tests for TpmHandleToName function.
+* Fixed bug in TpmHmac function: needed to set size of result to 0 in case an
+error occurs.
+* Reorganized directories and moved files to make more logical sense.
+* Fixed bugs in CopySensitiveIn function: uninitialized size field, bad
+pointers, and incorrect increment of otherData at end of function.
+* Added functionality needed for KDFa functions ConcatSizedByteBuffer,
+CopySizedByteBuffer
+- Added KDFa function in preparation for HMAC session test. Not tested yet.
+- Added LoadExternalHMACKey function. This function is called by TPM HMAC
+function.
+- Altered TpmHMAC function to call LoadExternalHMAC key function. This
+allows a better HMAC function pointer, one that complies with normal HMAC
+calling convention. Before it was TPM-specific.
+- Bumped up TPMBUF_LEN to 32k in tpmclient.cpp. This fixed overwriting
+problems during context save/restore function.
+- Fixed bugs in ContextLoad function: otherData wasn't initialized before it
+was used.
+- Fixed bug in Tpm20LoadExternal command: it wasn't properly marshaling the
+inPrivate data.
+
+2013-??-?? Will Arthur <will.c.arthur@intel.com>
+* 0.66 release
+* Added CertifyCreation function
+* Added EcEphemeral function
+* Added test for tspi_sys_TPM2_HashStart
+* Cleaned up for general TCG release
+
+2013-04-10 Will Arthur <will.c.arthur@intel.com>
+* 0.65 release
+* All TPM 2.0 functions now supported.
+* Limited testing done on following functions:
+- tspi_sys_TPM2_Startup
+- tspi_sys_Tpm2_SelfTest
+- tspi_sys_TPM2_GetCapability
+- tspi_sys_TPM2_Clear-tested
+- tspi_sys_TPM2_StartAuthSession
+- tspi_sys_TPM2_ClearControl
+- tspi_sys_TPM2_ChangeEPS
+- tspi_sys_TPM2_HierarchyChangeAuth
+- tspi_sys_TPM2_Extend
+- tspi_sys_TPM2_HashSequenceStart
+- tspi_sys_TPM2_SequenceUpdate
+- tspi_sys_TPM2_SequenceComplete
+- tspi_sys_TPM2_EventSequenceComplete
+- tspi_sys_TPM2_GetRandom
+- tspi_sys_TPM2_SaveState
+- tspi_sys_TPM2_PcrRead
+- tspi_sys_TPM2_NVRead
+- tspi_sys_TPM2_NVWrite
+- tspi_sys_TPM2_Unseal
+- tspi_sys_TPM2_PcrAllocate
+- tspi_sys_TPM2_DictionaryAttackLockReset
+- tspi_sys_TPM2_NV_Writelock
+- tspi_sys_TPM2_PolicyCommandCode
+- tspi_sys_TPM2_PolicyGetDigest
+- tspi_sys_TPM2_PolicyOr
+- tspi_sys_TPM2_PolicyRestart
+- tspi_sys_TPM2_LoadExternal
+- tspi_sys_TPM2_HierarchyControl
+- tspi_sys_TPM2_NV_UndefineSpace
+- tspi_sys_TPM2_Create
+- tspi_sys_TPM2_Load
+- tspi_sys_TPM2_Quote
+- tspi_sys_TPM2_NV_ReadPublic
+- tspi_sys_TPM2_ChangePPS
+- tspi_sys_TPM2_NV_DefineSpace
+- tspi_sys_TPM2_PolicyLocality
+- tspi_sys_TPM2_PolicyPCR
+- tspi_sys_TPM2_CreatePrimary
+- tspi_sys_TPM2_Shutdown
+- tspi_sys_TPM2_PCR_Event
+- tspi_sys_TPM2_PolicyNV
+- tspi_sys_TPM2_NV_ReadLock
+- tspi_sys_TPM2_NV_UndefineSpaceSpecial
+No testing done on all other 61 functions
+
+2013-03-29 Will Arthur <will.c.arthur@intel.com>
+* 0.60 release
+* Added changes to make it comply with TSS 2.0 system library API
+* Cleaned up and removed unneeded files.