summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog893
1 files changed, 893 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..4508d58
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,893 @@
+* TROUSERS_0_3_8
+
+- Fix ssl_ui.c overflow
+- Handling of TPM_CERTIFY_INFO2 structure special case
+- Fix possible obfuscation of obj_migdata.c errors.
+- Make 1.2 keys respect the TPM_PCRIGNOREDONREAD flag.
+- PCRInfo member allocation in Trspi_Unload_CERTIFY_INFO.
+- Add functions for deserializing NVRAM related data structures
+- Add NVRAM specific error messages
+- Fix spec file so one can build an rpm
+- Initialize the tcsd_config_file with NULL.
+- support for -c <configfile> command line option
+- Establish a .gitignore file
+- ENDIAN_H and htole definition fix
+
+* TROUSERS_0_3_7
+
+- __tspi_freeTable wrong call
+- Owner Evict pubkey setup fix
+- The "HAVE_ENDIAN_H" check is missing from configure.in, but it appears to be needed in a couple of the source files.
+- tspi_context.c fix (memleak)
+- Added the missing setup of a tcs handle for owner evict keys.
+- No need to initialize the flock structure.
+- flock to fcntl change
+- Fixed cleanup code in svrside.c
+- Avoid warning of missing return in tcsd_thread_run()
+- printf() warning fix
+- Moved hDAA debug message after initialization
+- Additional length check
+- Tspi_NV_DefineSpace secret check fix
+
+* TROUNSERS_0_3_6
+
+- Fixed a number of warnings during a build with --debug regarding THREAD ID
+ definition
+- Removed htole() dependency, which was included only in glibc 2.9
+
+* TROUSERS_0_3_5
+
+- Allowed TCD Daemon to run with reduced privileges In Solaris.
+- Fixing previous kfreebsd build patch conflict with the current tree.
+- TCSD error handling improvements.
+- mutex init inclusion.
+- pthread_t portability fix
+- Owner Evict keys load fix.
+- Big- endian issues.
+- Memory leak fix.
+- Adding missing #include <limits.h>.
+- kfreebsd build fixes.
+- Fixed usage of syslog().
+- 64bits clean
+- Fixes the TCP UN and IN socket connection attempt handling
+- Fixes logic on opening a hardware TPM.
+- Added communication through TCP to software TPMs in TrouSerS.
+- Fixed conflicting defines
+- Adds missing free()
+- Fixed fread() return value check.
+- Made the previous fix cleaner and more robust.
+- Added missing check in order to avoid freeing buffer that's out of Tspi_Data_Seal() scope.
+- Fixed Tspi_TPM_GetRandom 4kb output limit.
+
+* TROUSERS_0_3_4
+
+- Fixed TrouSerS mishandling of TPM auth sessions
+- Enabled hosttable.c "_init" and "_fini" functions to work on Solaris
+- Included Solaris in BSD_CONST definition conditional
+- Made the init script LSB compliant
+- make distcheck improved
+
+* TROUSERS_0_3_3_2
+
+- Fixed logic when filling up RSA keys objects.
+
+* TROUSERS_0_3_3_1
+
+- TCSD now runs as tss and has a better signal handling
+- Fixed many memory handling issues
+
+* TROUSERS_0_3_3
+
+- Tspi_ChangeAuth fixed for popup secret use case.
+- Prefixed exported functions with common names.
+- Fixed issues with accessing the utmp database.
+- Migrated the bios parser file handler from open to fopen.
+
+* TROUSERS_0_3_2
+
+- Added IMA log parser in conformance with format introduced in linux kernel 2.6.30
+- Fixed memory handling issues in src/tspi/tspi_quote2.c and tspi_tick.c
+- Fixed memory handling issues in tcs/rpc/tcstp/rpc_tick.c
+- Fixed logic when releasing auth handles, now the TPM won't become out of
+resources due too many unreleased auth handles there.
+- Fixed compilation problems when building trousers in Fedora with
+-fstack-protector & gcc 4.4
+- Fixed the legacy usage of a deprecated 1.1 TPM command, now auth sessions
+can be closed fine.
+- Fixed key memory cache when evicting keys, invalid key handles were evicted
+when shouldn't.
+- Fixed authsess_xsap_init call with wrong handle
+- Fixed authsess_callback_hmac return code
+- Fixed validateReturnAuth return value
+- Added consistency to avoid multiple double free() and bound checks to avoid
+SEGV
+- Moved from flock to fcntl since the first isn't supported in multi-thread
+applications
+- Added necessary free() and consistency necessary in tspi/tsp_delegate.c to avoid SEGV
+- Typecast added in trousers.c in the UNICODE conversion functions
+- Fixed wrong return code in Tspi_NV_ReleaseSpace
+- Fixed digest computation in Tspi_NV_ReleaseSpace
+- Fixed tpm_rsp_parse, it previously checked for an additional TPM_AUTH blob,
+resulting in a incorrect data blog unload.
+- Added new OpenSSL UI for TSS_SECRET_MODE_POPUP auth mode.
+- Added workaround to fix namespace conflict with SELINUX
+- Set SO_REUSEADDR socket option.
+- Added TSS_SS_RSASSAPKCS1v15_INFO signature scheme definitions and support
+- TDDL can now be compiled apart from the rest of TrouSerS.
+- Added #include <limits.h> to remove INT_MAX undeclared error
+ during build. Files updated: trspi/crypto/openssl/symmetric.c,
+ tspi/tspi_aik.c and tspi/tsp_ps.c
+- Added bounds checking in the data parsing routines of the TCSD's
+tcstp RPC code, preventing attacks from malicious clients.
+- Removed commented out code in src/tcs/rpc/tcstp/rpc.c
+- Commented out old OSAP code, its now unused
+- Fixed bug in tcsi_bind.c, one too few params were passed to
+the function parsing the TPM blob.
+- Fixed lots of erroneous TSPERR and TCSERR calls
+- Added support for logging all error return codes when debug
+is on
+- Check that parent auth is loaded in the load key path outside
+the mem_cache_lock, if a thread sleeps holding it, we deadlock
+- Added support for dynamically growing the table that holds
+sleeping threads inside the auth manager
+- In tcs_auth_mgr.c, fixed the release handle path, which didn't
+check if the handle was swapped out before calling to the TPM.
+- Updates throughout the code supporting the modular build.
+
+* TROUSERS_0_3_1
+
+- Added check of return code for ResetDALock call in tspi_admin
+- Added missing ordinals in tcs_pbg.c as reported by Phil Carmon.
+- Added support for DSAP sessions and delegating authorizations!
+- Added support for DSAP sessions inside a transport session.
+- Prevent Tspi_TPM_GetCapability from switching the endianess of
+the data returned from a request for TSS_TPMCAP_NV_LIST when that
+list happens to be sizeof(UINT32).
+- Fixed trouble in owner_evict_init path for 1.1 TPMs
+- Fixed multiple problems with changing auth on encrypted data
+and keys.
+- Fix for SF#1811120, Tspi_TPM_StirRandom01 test crashes TCSD.
+- Fix for SF#1805829, ChangeAuth fails to return an error
+- Fix for SF#1803767, TSS_TSPATTRIB_KEY_PCR_LONG key attribute
+not implemented
+- Fix for SF#1802804, Tspi_TPM_Delegate_UpdateVerificationCount
+problem
+- Fix for SF#1799935, Tspi_TPM_Delegate_ReadTables bug
+- Fix for SF#1799912, policy lifetime counter doesn't reset with
+SetSecret
+- Fix for SF#1799901, policy lifetime timer doesn't reset with
+SetSecret
+- Fix for SF#1779282. Trspi_UnloadBlob_CERTIFY_INFO DNE.
+- Fix for setting the right kind of PCR struct in the key object
+
+* TROUSERS_REDHAT_SUBMIT
+
+- Updated ps_inspect utility to more accurately guess if the file
+you're inspecting is really a persistent storage file.
+- Fixed endianess issue with certain TPM get caps
+- Fixed bug in setting credential data in the TSP
+- Moved secret hash mode code out from inside spec compliance
+#defines since they're now part of the 1.2 spec.
+- Better support for NULL parameters to blob manipulation
+functions
+- Fix for regression - blank the SRK pubkey copy stored in system
+persistent storage
+- Added RPC plumbing for DSAP sessions
+- Added support for unmasking data on unseal :-)
+- Implemented encdata PCR_INFO_LONG GetAttrib's
+- Overhauled OSAP session handling.
+
+* TROUSERS_0_3_0
+
+- Added TSS_TCSCAP_PLATFORM_CLASS cap support
+- Added the Quote2 Commands
+- Added new TSS 1.2 return codes to Trspi_Error_String.
+- Added Tspi_Context_GetRegisteredKeysByUUID2 functions
+to the persistent storage system
+- Added Tspi_TPM_OwnerGetSRKPubKey and TCS OwnerReadInternalPub
+code.
+- Added support for operator auth and Tspi_TPM_SetOperatorAuth.
+- Added support for Sealx.
+- Added ordinal auditing support.
+- Added initial transport session support.
+- Rewrote TCSD key loading functions.
+- Added support for UINT64 loading/unloading everywhere.
+- Created an initial TCS parameter block generator in tcs_pbg.c.
+- Added support to get_local_random to either allocate a new
+buffer for the random number or write it to a given buffer.
+- Removed TCS GetCredentials APIs -- the TSSWG verified that these
+had accidentally been left in the spec.
+- Added TCS GetCredential API.
+- Added NVRAM APIs, donated by James Xu, and others from Intel.
+- Added TCS GetCredentials functions
+- Patched the TCS key loading infrastructure to return
+TCS_E_INVALID_KEY when a handle is used by a context that doesn't
+have a reference to the key in its keys_loaded list.
+- Added ASN.1 blob encoding and decoding APIs.
+- Added tick stamping APIs
+- Added monotonic counter APIs
+- Added the Tspi_PcrComposite APIs: GetPcrLocality,
+SetPcrLocality, SelectPcrIndexEx and GetCompositeHash.
+- Added new TSS 1.2 return codes for bad EK checksum and
+invalid resource passed to Tspi_Context_FreeMemory.
+- Added Christian Kummer's implementation of PCR reset
+- In PcrExtend, set up the event struct fully before sending
+to the TCS.
+- Fixed bug in ActivateIdentity's use of rgbSymCAAttestation.
+- updated policy handling to match the latest spec.
+- Fixed bug when 2 TCSD's return the same context number.
+- Added a check for the size of Tcsi_StirRandom's entropy data.
+- Added support for TSS 1.2 style keys and PCR info long and
+ short structures.
+- Added support for TPM_Save/LoadAuthContext.
+- Grouped all threading functions in one header file, threads.h.
+- Fix added in TCSD's event parsing code for a segfault when only
+ the number of events is requested.
+- Several bugs fixed in the Tspi_Context_GetRegisteredKeysByUUID
+ code path in the TSP lib.
+- Added a lock around all TCSP functions; removed auth_mgr_lock
+ since the TCSP lock now suffices. This fixed some TCSD multi-
+ threaded errors.
+- hosttable.c: Fixed bug in host table entry removal, thanks
+ to Thomas Winkler for the testcase that helped in finding this.
+- In the TCS GetPcrEventsByPcr, fixed a bug in calculating
+ the number of events to return. Thanks to Seiji Munetoh.
+- Added functions to do incremental hashing, removing most
+ large stack allocations in trousers.
+- Updated blob utility functions to use UINT64's instead of
+ UINT16, which had caused some arbitrary limits in parts of
+ trousers.
+- Merged in TSS 1.2 header files.
+- Merged in build changes for embedded.
+
+* TROUSERS_0_2 branch created
+
+- In obj_policy.c and obj_tpm.c, if NULL is passed in when trying
+ to set a 1.2 style callback, clear the callback address.
+- Fix in Tspi_TPM_ActivateIdentity: Only validate over the out
+ parameters from the TPM, not the TCS (size of data).
+- obj_encdata.c: fixed reference of pcrSelect, which caused
+ bad data to be returned as the PCR selection.
+- added TSS_TSPATTRIB_ENCDATAPCR_DIGEST_ATRELEASE, which was
+ type-o'd in the 1.1 header files.
+- Fix for SF1570380: Algorithm ID not compliant with TSS spec.
+- Corrected off by 1 errors in PCR index bounds checking.
+- Changed logging in the TCSD so that FILE:LINE isn't printed
+ unless debugging is on.
+- Changed build/code so that the system PS dir is mode 0700, not
+ 1777. It used to be 1777 when user PS was not in ~/.trousers.
+- Fix for SF1565726: Segfault when connecting from remote host.
+- Fix for SF1565208: User PS load key by UUID failed.
+
+* TROUSERS_0_2_8
+
+- Fixed bug in mc_add_entry, where the PCRInfo data was not being
+ copied into the mem cache with the other fields of the key.
+- Fixed 2 bugs in spi_getset.c where setting the secret hash mode
+ was passing subFlag to the internal set function instead of
+ ulAttrib.
+- Added patch to retry the libtspi's recv() call to the TCSD
+ if the call was interrupted before completion.
+- Made the popup string appear as a label on the popup, not the
+ title. Also, got rid of annoying mouse-over texts.
+- Added a flag to pass to the get_secret function internally to
+ indicate whether a popup should contain the confirm box.
+- Added support for callbacks in the identity creation code.
+- Updated the identity creation code in the TSP/TCS to support
+ AES, DES, 3DES during identity creation.
+- Added symmetric encryption interfaces for openssl, Trspi.
+- In Tspi_Hash_Sign, fixed memory leak.
+- Added SetAttribData functions for RSA modulus/exponent per
+ the upcoming additions to the TSS 1.2 errata 1 spec.
+- Fixed bug in TCS key cache where if 2 keys had the same public
+ modulus, they could confuse the key cache manager.
+- Bind/Seal functions now return more descriptive errors codes
+ and won't do the encryption if the data to use is larger than
+ the RSA pubkey.
+- Made updates to the code/headers for the TSS_VALIDATION struct
+ change to be issued as TSS 1.1 header file errata 1.
+- Bug fix: In LoadManuMaintPub's wrapping function in the TSP,
+ we incorrectly passed a reference to the pubkey in loading the
+ blob.
+- Fixed bugs in the maintenance commands, owner auth'd commands
+ were using no auth tags in their commands sent to the TPM.
+- Fixed SF1546344: Track the release of auth handles by TCS
+ context and take the fContinueAuthSession variable into account
+ when calling the TPM to release a handle.
+- Fixed SF1545614: deadlock due to auth_mgr_osap taking the
+ auth_mgr_lock before calling ensureKeyIsLoaded, which took the
+ mem_cache_lock.
+- Added checks to ensure corrupt packets don't crash the tcsd.
+- Added configure option --with-gui=gtk/none to enable building
+ with no popup support for embedded apps. The default secret
+ mode becomes TSS_SECRET_MODE_NONE for all policies and the
+ default context mode becomes TSS_TSPATTRIB_CONTEXT_SILENT to
+ supress all popups.
+- Changed the Tspi_GetAttribData function to return a TCPA_PUBKEY
+ blob as is specified in the portable data section.
+- Added a debugging #define in req_mgr.c to print all data passed
+ to/from the TPM.
+- Updated Tspi_Context_LoadKeyByUUID to check in-memory keys by
+ UUID when the TCS returns a filled-out loadkey info struct.
+- Removed the free of all context related memory when the context
+ closes. Allows an app more flexibility in choosing what to free.
+- Removed check for secret mode None in establishing an OSAP
+ session. Now, a secret of all 0's is used if no secret exists.
+- Added checks for 2 return codes in secret_TakeOwnership.
+- Fixed TSS_VERSION problem. There are no specific getcaps for
+ software version vs. TSS spec version. Instead, the TSP's
+ version structure contains spec version and software major/minor.
+- Removed obj_regdkey list references.
+
+* TROUSERS_0_2_7
+
+- Added 3 new TCSD config options to allow admins to set paths
+ to the 3 types of credentials returned on Make Identity calls.
+- Added an implementation for returning the MANUFACTURER TCS
+ caps.
+- Added translation of TSS caps that are destined for the TPM.
+- Updated DirWrite to work correctly (thanks Kylie).
+- Updated the Tspi_TPM_DirWrite manpage with more info, removed
+ a confusing statement.
+- Changed the number of loops in TCSP_GetRandom_Internal to 50,
+ which should allow TPMs that return few bytes per request to
+ fullfill up to 4K bytes.
+- Removed the TCS's getSomeMemory() function, which was really
+ dumb.
+- Changed the way user PS operates. User PS is now really
+ persistent, its kept in ~/.trousers/users.data, which is
+ created if it doesn't exist. Also, the environment variable
+ TSS_USER_PS_FILE can be set to a path that will override the
+ default location for as long as the TSP context is open.
+- Lots of memory leaks found in error paths by Coverity, mostly
+ in tcsd_wrap.c.
+- Fix for SF #1501811, setting some SetAttribUint32 flags not
+ supported.
+- Lots of updates to the fedora specific RPM specfile.
+- Fix for SF #1490845, 'make install' overwrites old tcsd.conf
+- Added code to return TSS_E_POLICY_NO_SECRET when setting up
+ an OIAP or OSAP session.
+- Added fix for SF #1490745, trousers demands too much from
+ /dev/random. Default random device is now /dev/urandom.
+- Changed severity of the ioctl fallback print stmts to
+ warning and info.
+- Added implementation of the maintenance functions.
+- Added fix for SF #1487664, Offset in PS cache is not
+ updated correctly.
+- Removed some Atmel specific code and commented out code.
+- Added some missing auth_mgr_check calls in tcspbg.c.
+- Fixed some unchecked mallocs in the TSP.
+- Added build variables to automatically update the TSP
+ library version and TCSD version getcap variables.
+- Added call to return the modulus of an RSA key on a
+ GetAttribData call.
+- Added implementation of the migration functions.
+- Fix for SF 1477178, random numbers get hosed by the tcsd.
+
+* TROUSERS_0_2_6
+
+- Removed unnecessary call to obj_encdata_get_data in
+ Tspi_Data_Seal.
+- Added support for using the trousers.h APIs in C++.
+- Fixed Tspi_PcrComposite_GetPcrValue's man page, which had
+ left out *'s in two parameters.
+- Fix for SF 1414817, Quote's PCR object doesn't get set on
+ return.
+- Lots of function renaming to make code reading clearer.
+- Return TSS_E_INVALID_OBJ_ACCESS when trying to retrieve data
+ from an encrypted data object that hasn't been set.
+- Added contact info to the README.
+- Fix for ordering of params in call to set callback by
+ Tspi_SetAttribUint32. Thanks to Thomas Winkler for the fix.
+- Fix for SF 1410948, get random numbers from /dev/urandom
+ unless Tspi_TPM_GetRandom is called explicitly.
+- Fix for SF 1342026, print TPM error codes during bring-up.
+- Added support for a TCS_LOADKEY_INFO structure returned from
+ a TCSP_LoadKeyByUUID call.
+- Fixed 2 free_tspi's that should have been plain free's
+
+* TROUSERS_0_2_5
+
+- Changed all prints of size_t to %z (matters on 64bit platforms).
+- Backport of the context and policy object's
+ TSS_TSPATTRIB_SECRET_HASH_MODE attribute from the TSS 1.2 spec.
+ This will allow 1.1 apps to decide whether they want to
+ include the 2 bytes of NULL in the hashes of their secrets.
+ This will in turn allow various TSS's to interoperate better.
+- SF#1397265 'getpubek' to 'readpubek' in tcsd.conf.
+- Added an implementation of TSS 1.2 style callbacks.
+- Added Emily's patch to explain the TSS_DEBUG_OFF flag, added
+ blurb to README.
+- Fixed bug that only manifested on PPC64: if errno is not set
+to 0 explicitly before making a call to iconv, iconv will not
+set it on failure.
+
+* TROUSERS_0_2_4
+
+ - Updated README with how to use new system.data files.
+ - Added sample system.data files for users who've taken
+ ownership of their TPMs under other OS's.
+ - Updated unicode routines to NULL terminate their strings
+ with the same number of bytes as is the width of the
+ encoding.
+ - Fixed bug in TCS_EnumRegisteredKeys_TP, returned data should
+ be alloc'd on the TSP heap.
+ - Added a logging statement when tcsd_startup fails due to an
+ error returned by the TPM itself.
+ - Fixed validation data in Tspi_TPM_Quote and
+ Tspi_TPM_GetPubEndorsementKey.
+ - Implemented Tspi_TPM_CollateIdentityRequest and
+ Tspi_TPM_ActivateIdentity.
+ - Bug fix in TCSP_Sign_TP, signature should be alloc'd using
+ the TSP heap.
+ - Fix for SF#1351593, authdata was always 0 for the SRK. This
+ was due to the defaults set in Tspi_Context_CreateObject for
+ the SRK key flag. The default SRK key is now set to require
+ auth. If you want an authless SRK, you need to either set
+ the authdatausage attribute directly or pass in your own
+ SRK initFlags to the create object call.
+ - Return bad parameter when no the pcr object is not
+ initialized instead of internal error.
+ - Several fixes added for list locking in the obj_*.c files.
+ - Added initial support for Tspi_TPM_CollateIdentityRequest
+ and its supporting functions (symmetric encryption).
+ - Fix for SF#1338785: Support TSS_TSPATTRIB_HASH_IDENTIFIER.
+ - Changed default kernel and firmware controlled PCRs to
+ none, which should have happened a long time ago. :-/
+ - Fix for SF#1324108: Tspi_TPM_GetEvents should return a
+ number of events
+ - Fix for RFE#1301441: Fallback support for the device
+ node. ioctl is tried first, if that fails, r/w is tried,
+ if that fails, error is returned.
+ - Fixes for SF#1332479: HMAC and XOR callbacks were being
+ passed wrong params.
+ - Fix for SF#1334235, uuid data wasn't being set correctly
+ when keys were registered or loaded by uuid.
+ - Fix for SF#1332316, Tspi_GetAttribData doesn't always
+ return data alloc'd by TSP. Unicode data returned from the
+ function was being allocated off the TSP heap.
+ - Changed default return value for Tspi_GetAttribUint32 to
+ success.
+ - Corrected Tspi_TPM_PcrExtend manpage to state that the
+ application should fill out the TSS_PCR_EVENT structure.
+ -Fixes for SF BUG#1312194, and SF BUG#1312196. Get
+ Attribs for key usage and size were not being returned
+ correctly. Imported values for size from the TSS 1.2
+ header files and translated TPM <-> TSP values for
+ key usage in the get attrib calls.
+ - Accepted Halcrow's patch to add a TSP key object
+ removal function, invoked at object close time.
+ This was SF BUG#1276133.
+ - increased the size of the return buffer from TCS to
+ TSP to 8K, so that larger requests won't fail.
+ - added a loop to TCSP_GetRandom_Internal to try several
+ (currently 5) times to get the number of requested bytes
+ from the TPM. Since the TSP has no way to tell an
+ application that a single request failed, this will help
+ improve the odds of a large request succeeding.
+
+* TROUSERS_0_2_3
+
+ - SF#1291256 bugs fixed. A UINT16 was being passed instead
+ of a UINT32 to TCS_LoadKeyByBlob_Internal.
+ - Removed test in spi_context.c's call to TCS_LoadKeyByUUID,
+ which would always fail, since there was no TCS layer bit
+ set. This kept us in a success path.
+ - Added debug logging functions that print the function
+ name at the beginning of the statement.
+ - Added GetPubKey as an option for TCSD's remote ops.
+ - SF#1249767 bug fixed. UTF16 strings are now hashed when
+ passwords are passed in through the popups.
+ - SF#1286333 bug fixed. New unicode functions added that
+ convert to UTF-16 and from the nl_langinfo(CODESET)
+ encoding.
+ - SF#1285428 bug fixed. obj_context_get_machine_name copied
+ too many bytes out. Code added to Tspi_GetAttribData to
+ convert to UTF16 before returning.
+
+* TROUSERS_0_2_2
+
+ - deleted section on ssh-askpass in README
+ - Modified popup code to hash UTF16 instead of UTF8.
+ - Restructured TCS calls to the TPM so that all auth sessions
+ are released correctly.
+ - Removed TSP contexts from all Trspi functions and modified
+ all trousers code to free its own memory instead.
+ - Fixed the TSP seal command to allow Sealing with a no-auth
+ key by using null auth data. Also changes the TCS seal
+ to return bad parameter if it gets null auth data.
+ - Removed lots of unused code and made formatting changes.
+ - Don't require Tspi_Key_WrapKey to be connected to succeed
+ and return a default value (or from the environment) if
+ we're doing PCR operations on an unconnected context.
+ - Fixed bug where a tcsd created system.data file was not
+ getting the right version info put into it.
+ - SF BUG#1269290 Fixed: Protect the SRK pub key. Upon taking
+ ownership, the unaltered SRK blob is passed back to the TSP
+ to create a valid key object with the SRK pub key intact.
+ The copies of the SRK pub key data that do into the TCSd's
+ mem cache and PS are zeroed out. From then on, the only way
+ to get the SRK pub key is through Tspi_Key_GetPubKey.
+ - tcspbg.c: deleted unused code and always release auth session
+ on an Unbind call.
+ - Bugfix for SF#1274308, Tspi_Key_CreateKey doesn't add PCRs
+ correctly. Ordering of calls in obj_rsakey_set_pcr_data
+ and calculation of PCRInfo size were incorrect.
+ - Close auth sessions in TCS_GetCapabilityOwner
+ - Removed volatile flag from the SRK key handle at key object
+ create time. This was keeping National TPM's from having the
+ ability to be owned!
+ - Moved calcCompositeHash to obj_pcrs.c and renamed it.
+ - Check returns everywhere for addKeyHandle calls.
+ - Call pthread_mutex_init on the host table's mutex.
+ - Modified TSSWG headers so that code w/o BSD types compiles
+ (such as the PKCS#11 TPM STDLL).
+ - Removed ssh_askpass, since UNICODE must be hashed from the GUI
+ input source.
+ - Updated all manpages to include the TSSWG header file names
+ instead of trousers specific files.
+ - Don't log debug data when TSS_DEBUG_OFF env var is available.
+ - Converted UNICODE to unsigned short and modified code accordingly.
+ - Only allow INADDR_LOCALHOST connections when no remote_ops are
+ defined in the tcsd.conf file.
+ - Bugfix in obj_pcrs.c, setting pcr indices and values was buggy.
+ - Moved macros from trousers_types.h (internal) to trousers.h
+ (external), since new header files make them virtually a
+ requirement
+ - Bugfix for SF#1249780, PCR selection structure was incomplete.
+ - Bugfix for SF#1249769, addKeyHandle now returns a TSS_RESULT.
+
+* TROUSERS_0_2_1
+
+ - return invalid handle int Tspi_ChangeAuth when hParentObject
+ is not of the right type.
+ - Fixed bug in TCS ps, write_key_init returned the wrong offset.
+ - Fixed mem leak in spi_getset.c:791, found by Coverity.
+ - Fixed mem leak in calltcsapi.c:70, found by Coverity.
+ - Fixed mem leak in tcskcm.c:531, found by Coverity.
+ - Fixed type-o mem leak in tspps.c:319/tcsps.c:349, found by Coverity.
+ - Fixed mem leak bug in memmgr.c:173, found by Coverity.
+ - Fixed bounds error bugs in tcstp.c:38/98, found by Coverity.
+ - Fixed bounds error bug in tcsd_wrap.c:154, found by Coverity.
+ - Fixed unchecked return bug in spi_utils.c:430, found by Coverity.
+ - Fixed unchecked return bug in calltcsapi.c:1159, found by Coverity.
+ - Fixed negative return value bug tcs/ps/ps_utils.c:365, found by Coverity.
+ - Fixed negative array index bug readpass.c:65, found by Coverity.
+ - Fixed null deref bugs spi_tpm.c:1292/1309/1302, and uninitialized
+ variable 1272, found by Coverity.
+ - Fixed null deref bugs spi_context.c:358/378, found by Coverity.
+ - Fixed null deref bug tcspbg.c:1413, found by Coverity.
+ - Fixed null deref bug tcspbg.c:745, found by Coverity.
+ - Fixed null deref bug imaem.c:356, found by Coverity.
+ - changed config file defaults for kernel/firmware pcrs.
+ - added better logging for when user/group "tss" doesn't exist
+ - in sendTCSDPacket: set transmitBuffer to 0 to prevent sending
+ bogus data.
+ - added some sanity checking in getTCSDPacket to prevent segfaults.
+ - added TCSERR where needed in tcs/ps files.
+ - BUG 1233031 fixed, TSP now stores PACKAGE_STRING as the vendor
+ data when registering a key.
+ - Added better debugging of auth mapping table, also closed two
+ auth handles that were getting left opened in CreateWrapKey and
+ Seal/Unseal.
+ - fixed ps_inspect's printing function.
+ - added SELinux files and README.selinux.
+ - updated ps_inspect tool to recognize non-PS files,
+ print out version 1 PS files and added a license
+ statement. Also added ps_convert tool to convert
+ version 0 PS files to version 1.
+ - updated ps_inspect tool to print out blobs and keys.
+ - change assert to DBG_ASSERT in tcs/ps files, also
+ assert that data sizes are > 0 when read off disk.
+ - Lots of malloc error logging changes where %d should
+ have been %u in the print statment.
+ - auth_mgr.c: allow a TSP to open a max of max_auths/2
+ sessions before its denied any more, for TPMs that
+ can handle a lot of auth sessions.
+ - Big-endian fixes for the persistent store functions.
+ Trousers now runs fine on ppc64, for example.
+ - BUG 1226617: Audit of code for auth handle termination.
+ - Use @PACKAGE_BUGREPORT@ instead of a static email addr in
+ manpages.
+ - Added man page for tcsd.conf in section 5.
+ - Bugfix in remove_table_entry. Host table head was left
+ pointing at free'd memory.
+ - corrected comment in spi_context.c.
+ - added 64bit stuff to configure.in
+ - fixed bug in Tspi_ChangeAuth where parent object was
+ assumed to be an rsakey.
+ - fixed debug logging of data.
+ - modified calcCompositeHash for accepting incomplete pcr
+ select structures & to fill out the structure correctly.
+
+* TROUSERS_0_2_0
+
+ - removed unused code and added debugging in clearUnusedKeys().
+ - Updated README with info on the 2.6.12 kernel device driver.
+ - fixed bug in calculating pcr select size
+ - fixed bug in init'ing PCRS, spi_utils.c:431
+ - Changed TCPA sig schemes to TSS sig schemes in
+ Hash_VerifySignature.
+ - Implemented Tspi_Context_GetKeyByPublicInfo on the TCS side.
+ - Fixed PS bug in storing the pub key data.
+ - Implemented Tspi_Key_UnloadKey
+ - Implemented the guts of Tspi_Key_CertifyKey, which now works
+ in at least the case where both keys passed in are authless.
+ - in obj_rsakey_set_es/ss, added mapping from TCPA numbers
+ to TSS numbers and vice versa.
+ - added #includes in readpass.c to get rid of compile errors.
+ (thanks Emily).
+ - Fixed popup secret handling. Bug #1194607 closed.
+ - Fixed up the LogBlobData functions, no more strcat. Bug #1221974
+ closed.
+ - changed sprintf's to snprintf. Bug #1221932 closed.
+ - Changed the TCPA_RSA_KEY_PARMS management at key creation time.
+ - Re-implemented TSP object management.
+ - Integrated TSSWG header files.
+ - Added valid_keys variable for the debugging build of
+ tcs/ps/ps_utils.c.
+ - Changed >= to > in openssl/crypto.c to correct off by one in
+ checking the size of the input data.
+ - added cvs commit logging to CVSROOT/loginfo file.
+
+* TROUSERS_0_1_11
+
+ - Changed TCSD logging to only log on remote connection attempts,
+ local connections will be left silent.
+ - mended compiled time warnings
+ - updated src/tspi/Makefile.am to respect libtool.
+ - added x86_64 case to configure.in
+ - added args to print stmt tcsd_wrap.c:3640 (thanks Kylie).
+ - commited fix for detecting past runlevel states (thanks Kylie).
+ - committed fix for RNG problem: a TPM's RNG is disabled when
+ the TPM is in the disabled state, yet needs a random number
+ to open an OSAP session to call the owner auth'd TPM enable
+ command.
+ - added code for CreatePubEK plumbing (thanks Kylie).
+ - fixed a couple signed/unsigned comparison warnings
+ - fixed endianess stuff in TPM GetCap spi_tpm.c.
+ - added Trspi_Error functions to manipulate TSS_RESULTs.
+ - Fixed order of receiving for the TCS_OwnerReadPubek call
+ (thanks Kylie).
+ - Added defns for volatile and non-volatile flags (thanks Kylie).
+ - Added Trspi_Error, which converts a TSS_RESULT to a string.
+ (thanks Kylie).
+ - In tcsd_wrap.c, added function bodies for tcs_wrap_OwnerClear,
+ tcs_wrap_DisablePubekRead, tcs_wrap_OwnerReadPubek,
+ tcs_wrap_DisableForceClear and tcs_wrap_DisableOwnerClear.
+ (thanks Kylie).
+ - Added an unload of the auth returned from the TPM in
+ TCSP_OwnerReadPubek_Internal. (thanks Kylie).
+ - Corrected the TAG for the TPM command in
+ TCSP_OwnerReadPubek_Internal. (thanks Kylie).
+
+* TROUSERS_0_1_10
+
+ - Updated implementation of Tspi_Key_WrapKey.
+ - Added missing goto in ReadPubEK in tcstp.c. (thanks Kylie).
+ - Added function guts for various functions in tcstp.c. (thanks
+ Kylie).
+ - In Tspi_TPM_SetStatus, do the right in the physical presence
+ path based on boolean. (thanks Kylie).
+ - Actually pass in the bool flag on TCSP_PhysicalPresence_Internal
+ (thanks Kylie).
+ - corrected force clear logic in spi_tpm.c:818 (thanks Kylie).
+ - fixed error return code check to socket() syscall clntside.c:52.
+ - added comment about TDDL reries and added log statement when a
+ physical presence command is denied because of runlevel.
+ - Fixed Tspi_Hash_VerifySignature to check signatures based on the
+ signature scheme of the key in use. Also, crypto.c was changed
+ to do a verify based on TSS_HASH_OTHER.
+ - Added 2 new highlevel Unbind testcases to test PKCS1.5 vs OAEP.
+ - In Tspi_Context_LoadKeyByUUID, the uninitialized keyBlob variable
+ was causing an invalid free on exit. Corrected that.
+ - changed return value from internal error to invalid handle when a
+ bad object handle is passed to Tspi_Hash_Sign and the Tspi_Data
+ functions.
+ - added Tspi_TPM_CertifySelfTest functionality
+ - corrected iptables string in the tcsd manpage.
+ - Corrected return code in Tspi_Key_UnloadKey02.c testcase.
+ - enabled Tspi_TPM_GetTestResult functionality
+ - added selftest as an option to the list of remote ops for the access
+ control
+ - added compatibility with openssh-askpass for the popup dialog box.
+ Now either gtk2-devel OR openssh-askpass must be installed to build
+ trousers. Using openssh-askpass reduces the size of libtspi.so by
+ about 40K and reduces the number of dependencies from 26 to 6!
+ - Bugfixes
+ - The entityType field was being passed between the TCSD and
+ TSP as a UINT32 instead of UINT16. This was keeping Tspi_ChangeAuth
+ from working as advertised.
+ - Secrets were being hashed incorrectly when secret mode was PLAIN
+ and the secret data length was 0. Now, when secret mode is plain, the
+ passed in data is always hashed, even if its 0 length.
+ - Popups are hopefully being handled more correctly now. Previously
+ the dialog popped up at the time SetSecret was called, but now its
+ just when the secret is actually needed.
+ - sf.net Bug #118026: memory allocations and free's fixed in almost
+ all paths from app to tcstp.c wrt correctly returning calloc_tspi'd
+ memory vs. malloc'd memory. Only problem remaining is the PCR event
+ functions, which have dangling malloc'd references, which is an
+ architectural problem which should be solved in the 1.2 rewrite.
+
+* TROUSERS_0_1_9
+
+ - added tcsd manpage
+ - added access control functionality so that sets of ordinals
+ cannot be executed by non-local hosts. This is now a
+ configurable option in tcsd.conf as "remote_ops".
+ - Set Physical Presence now works from the TSP when the TCSD
+ detects that it is running in single user mode. When not
+ running in single user mode, the TCS_PhysicalPresence
+ command returns TSS_E_NOTIMPL.
+ - Changed an fprintf to LogError in gtk/support.c
+ - TCP/IP server-side fixes in svrside.c
+ - various compile warnings fixed
+ - moved commonly used utility functions to trspi/trousers.c and
+ exported these functions in the header file tss/trousers.h.
+ - added new testcases for ChangeAuth of the TPM owner and SRK in
+ tcg/highlevel/tspi.
+ - added test tcg/highlevel/tpm/Tspi_TPM_PcrRead04.c
+ - updated Tspi_TPM_GetCapability manpage.
+ - added code to detect a 1.2 TPM and get auth sessions the 1.2 way.
+ - added manpage for Tspi_TPM_GetPubEndorsementKey
+ - Bugfixes
+ - in crypto.c, encrypted data area should be RSA_size(rsa) bytes
+ large, not always 256. This was keeping non-2048 bit keys from
+ working with the TPM keyring app.
+ - Fixed detection of an already closed Tddl.
+ - Allow validating the entire TCPA_PUBKEY structure in
+ Tspi_TPM_GetPubEndorsementKey, as National chips do this.
+ - Added support for TSS_TPMCAP_ORD and TSS_TPMCAP_FLAG in
+ Tspi_TPM_GetCapability, which required a call to
+ TCSP_GetCapabilityOwner to fetch the TPM's internal flags. Added
+ tcg/highlevel/tpm/Tspi_TPM_GetCapability0{4,5}.c to test.
+ - When loading the SRK from TCS PS, the TCS key handle should now
+ be 0x40000000 (TSS_SRK_KEY_HANDLE). There were checks for this in
+ the ChangeAuth code paths, which caused failing of various sorts.
+ - Bug fixed in roll over of TCS key handle generation. Previously we
+ would have smashed the SRK's fixed value and we would have thought
+ there were 2 SRK's loaded.
+ - sf.net bug #1154611, old SRK was not being removed from mem cache,
+ though disk cache was being deleted. This means that after re-taking
+ ownership the mem cache was corrupted until a restart of the TCSD.
+ - Feature Requests
+ - sf.net RFE #1122608 completed. Several different device locations
+ are now supported by default. If /dev/tpm is created its assumed that
+ the IBM Research device driver is being used and therefore ioctl's are
+ sent to the driver, all others get read/write's. Updated README.
+
+* TROUSERS_0_1_8
+
+ - added a manpage for Tspi_TPM_PcrExtend
+ - added SHA1_HASH_SIZE #define tied to openssl/sha.h
+ - Corrected typo in tcpa_types.h of pValdationData -> pValidationData
+ - updated README with info on device file stuff
+ - added a usage function and long options to tcsd
+ - added an error message when incorrect params are passed to tcsd on
+ the command line.
+ - added -lcrypto and -lpthread to the build of libtspi.so, so that app
+ writers will avoid having to include those when they don't have to.
+ - Connected up Tspi_TPM_SetStatus and Tspi_TPM_SelfTestFull to
+ TCSP_SetTempDeactivated, TCSP_SelfTestFull, TCSP_SetOwnerInstall,
+ TCSP_OwnerSetDisable and TCSP_PhysicalDisable.
+ - Bugfixes
+ - tcsem.c:507, error in calculating number of PCR events to copy out.
+ - sf.net bug #1151183 fixed. Tspi_TPM_GetPubEndorsementKey now takes
+ the correct number of params, and all testcases/TSS calls are changed.
+ - sf.net bug #1113313 fixed. Tspi_TPM_TakeOwnership now allows a NULL
+ pub endorsement key handle and a testcase,
+ tcg/highlevel/tpm/Tspi_TPM_TakeOwnership03.c, exists to test this.
+ - In Tspi_SetAttribData, set the TCPA_KEY's privkey, not the wrapper
+ object on a TSS_TSPATTRIB_KEYBLOB_PRIVATE_KEY.
+
+* TROUSERS_0_1_7
+
+ - Fixed the logging up so that if tcsd -f is specified, all logs go the
+ foreground, else all logs go to syslog.
+ - Moved the TPM_IOCTL #define into the tddl.h file. Now, if you're
+ using the IBM research device driver, compiling with #define TPM_IOCTL
+ will use ioctl's to open /dev/tpm and #undef TPM_IOCTL will use
+ read/write calls to /dev/tpm0.
+ - Revert accidental change in tddl.c
+ - Lots of 0's replaced with non-magic #define's in the TSP code
+ - In spi_getset.c: removed unimportant debugging stmts; make
+ Tspi_{Get|Set}AttribData set the correct public and private key data
+ when asked to.
+ - Lots of manpage verbage changes.
+ - added new manpages for: Tspi_TPM_TakeOwnership, Tspi_Key_LoadKey,
+ Tspi_Context_Create and Tspi_TPM_ClearOwner.
+ - Bugfixes
+ - cxt.c: when destroying a context object, release the tcs_ctx_lock before
+ calling ctx_ref_count_keys(). This prevents a deadlock.
+ - added a mutex unlock call for an error path that would have caused a
+ deadlock
+
+* TROUSERS_0_1_6
+
+ - Logging functionality changes only, for bug #1106301
+ - TCSD:
+ - Logs now go to stdout/stderr until a successful startup
+ - After a successful startup, cmdline args are parsed
+ - if -f is specified, logging continues to stdout/stderr and daemon runs
+ in the foreground, killable by ctrl-c.
+ - If -f is not specified, logs go to syslog and the tcsd forks into the
+ background
+ - TSP library
+ - If compiled w/o debugging, there is no logging of any kind
+ - If compiled w/ debugging, all logs go to stdout/stderr, unless the
+ environment variable TSS_DEBUG_OFF is set, then, there is no logging of
+ any kind
+ - There is no longer a --enable-stderrlog option to the configure script
+
+* TROUSERS_0_1_5
+
+ - Complete memory management overhaul. calloc_tspi is now used to clean up
+ memory allocated by Tspi functions. TCS blob functions have been changed
+ to not require a context, since there's no need w/o calloc_tspi. Its
+ now necessary to call free explicitly everywhere in the TCS. In the TSP,
+ calloc_tspi is now always called with the TSP context of the session, which
+ would will ensure all memory allocated by the session is accounted for.
+ - Unused #defines and variables removed from spi_utils.h
+ - Commented out code removed throughout the source.
+ - Removed log.o on a 'make clean'.
+ - commented out unnecessary logging, added more descriptive logging
+ - renamed variables named 'hContext' to specifiy whether they represent TSP
+ of TCS context handles.
+ - got rid of a few magic numbers
+ - Bugfixes
+ - in tcs/cache.c, getNextTimeStamp() was unlocking the mutex twice.
+ - removed destroy_key_refs() in TSP, which caused double free errors
+ - added call to event_log_final() in tcsd_shutdown() to clean up the event log
+ - added an intermediate copy stage of data in getTCSDPacket() to avoid
+ memcpy() calls with overlapping source and dest fields.
+
+* TROUSERS_0_1_4
+
+ - added ChangeLog :-)
+ - TSP object management overhaul. All API's should be correct for contexts
+ whether they're connected to a TCS or not.
+ - testsuite changes based on object mgmt overhaul
+ - various internal fixes and simplifications of the code due to object mgmt
+ overhaul
+
+* TROUSERS_0_1_3
+
+ - added helpful message when package gtk2-devel is not found in configure.in
+ - chown changes in dist/Makefile for new syntax
+ - added detailed flags to various manpages
+ - TSP memory management overhaul
+ - added more complete destroy_key_refs() function
+ - Bugfixes
+ - quashed memory leaks in TSP found by valgrind
+ - return TRUE/FALSE from getAttribData
+ - added TSS_TSPATTRIB_KEYINFO_SIZE to Tspi_GetAttribData
+ - call free() not Tspi_Context_FreeMemory() in spi_utils.c
+
+* TROUSERS_0_1_2
+
+ - added bug report mailing list to configure.in
+ - added --enable-stderrlog feature to configure.in
+ - Marked Tspi_TPM_GetCapabilitySigned as not implemented (per TSS v1.1b spec)
+ - Bugfixes
+ - Removed common.h from Tspi_Context_RegisterKey manpage
+ - added endianess macros to spi_utils.h
+ - made all endianess fixes to the TSP and testsuite
+ - logging improvements tcspbg.c
+ - tcs_utils.c compile time warning quashed
+
+* TROUSERS_0_1_1
+
+ - Updated design doc
+ - Updated README
+ - More sensible function naming (no addNewObject, just addObject)
+ - Bugfixes
+ - return data correctly in Tspi_GetAttribData
+ - malloc space for returned UUID correctly in tspps.c
+ - log errors in tddl.c
+ - follow a failure path in auth_mgr.c
+ - don't always return success in req_mgr.c
+
+* TROUSERS_0_1_0
+
+ - Initial code drop