Build
tss2:
Command/ response parameter support for auditing and pHash policies:
Session-support:
tpm2_eventlog:
scripts/utils: Add a utility to read the cert chain of embedded CA.
tpm2_getekcertificate: Fix tool failing to return error/non-zero for HTTP 404.
tpm2_nvdefine: allow setting hash algorithm by command line parameter for NV indices set in extend mode.
tpm2_duplicate, tpm2_import: support duplicating non-TPM keys to a remote TPM without first requiring them to be loaded to a local TPM.
tpm2_dictionarylockout: Fix issue where setting value for one parameter caused to reset the others.
tpm2_getpolicydigest: Add new tool to enable TPM2_CC_PolicyGetDigest.
Fix segfault where optind > argc.
tools/tpm2_checkquote: fix missing initializer
tpm2_convert: fix EVP_EncodeUpdate usage for OSSL < 1.1.0
openssl: fix EVP_ENCODECTX(new|free)
test: Add support for swTPM simulator to the testing framework and make it the default if mssim isn't available.
tpm2_unseal:
tpm2_nvextend:
tpm2_nvdefine:
tpm2_changepps:
tpm2_changeeps:
tpm2_changeauth:
tpm2_certifycreation:
tpm2_certify:
tpm2_activatecredential:
tpm2_create:
tpm2_unseal:
tpm2_nvdefine:
tpm2_nvextend:
Build
tss2:
Command/ response parameter support for auditing and pHash policies:
Session-support:
tpm2_eventlog:
tpm2_getekcertificate: Fix tool failing to return error/non-zero for HTTP 404.
tpm2_nvdefine: allow setting hash algorithm by command line parameter for NV indices set in extend mode.
tpm2_duplicate, tpm2_import: support duplicating non-TPM keys to a remote TPM without first requiring them to be loaded to a local TPM.
tpm2_dictionarylockout: Fix issue where setting value for one parameter caused to reset the others.
tpm2_getpolicydigest: Add new tool to enable TPM2_CC_PolicyGetDigest.
Fix segfault where optind > argc.
tools/tpm2_checkquote: fix missing initializer
tpm2_convert: fix EVP_EncodeUpdate usage for OSSL < 1.1.0
openssl: fix EVP_ENCODECTX(new|free)
test: Add support for swTPM simulator to the testing framework and make it the default if mssim isn't available.
tpm2_unseal:
tpm2_nvextend:
tpm2_nvdefine:
tpm2_changepps:
tpm2_changeeps:
tpm2_changeauth:
tpm2_certifycreation:
tpm2_certify:
tpm2_activatecredential:
tpm2_create:
tpm2_unseal:
tpm2_nvdefine:
tpm2_nvextend:
Default hash algorithm is now sha256. Prior versions claimed sha1, but were inconsistent in choice. Best practice is to specify the hash algorithm to avoid suprises.
tpm2_tools and tss2_tools are now a busybox style commandlet. Ie tpm2_getrandom becomes tpm2 getrandom. make install will install symlinks to the old tool names and the tpm2 commandlet will interogate argv[0] for the command to run. This will provide backwards compatibility if they are installed. If you wish to use the old names not installed system wide, set DESTDIR during install to a seperate path and set the proper directory on PATH.
tpm2_eventlog's output changed to be YAML compliant. The output before was intended to be YAML compliant but was never properly checked and tested.
umask set to 0117 for all tools.
tpm2_getekcertificate now outputs the INTC EK certificates in PEM format by default. In order to output the URL safe variant of base64 encoded output of the INTC EK certificate use the added option --raw.
tpm2_zgen2phase:
tpm2_ecdhzgen:
tpm2_ecdhkeygen:
tpm2_commit:
tpm2_ecephemeral:
tpm2_geteccparameters:
tpm2_setcommandauditstatus:
tpm2_getcommandauditstatus:
tpm2_getsessionauditdigest:
tpm2_certifyX509certutil:
tpm2_policysigned:
tpm2_createprimary:
tpm2_startauthsession:
tpm2_getrandom:
tpm2_getcap:
tpm2_sign:
tpm2_getekcertificate:
tpm2_activatecredential:
tpm2_checkqoute:
tpm2_createak:
tpm2_policypcr:
tpm2_readpublic:
tpm2_print:
tpm2_send:
tpm2_verifysignature:
tpm2_eventlog:
tpm2_tools (all):
Fix printing short options when no ascii character is used.
OpenSSL: Fix deprecated OpenSSL functions. ECC Functions with suffix GFp will become deprecated (DEPRECATED_1_2_0).
tpm2_eventlog: output EV_POST_CODE as string not firmware blob to be compliant with TCG PC Client FPF section 2.3.4.1 and 9.4.12.3.4.1
Fix missing handle maps for ESY3 handle breaks. See #1994.
tpm2_rsaencrypt: fix OAEP RSA encryption failing to invalid hash selection.
tpm2_rsadecrypt: fix OAEP RSA decryption failing to invalid hash selection.
tpm2_sign: fix for signing failures with restricted signing keys when input data to sign is not a digest, rather the full message. The validation ticket creation process defaults to the owner hierarchy and so in order to choose other hierarchies the tpm2_hash tool should be used instead.
tpm2_print: fix segfault when -t option is omitted by appropriately warning of the required option.
tpm2_nvdefine: fix for default size when size is not specified by invoking TPM2_CC_GetCapability.
Fix for an issue where the return code for unsupported algorithms was tool_rc_general instead of tool_rc_unsupported in tpm2_create and tpm2_createprimary tools.
Fix for an issue where RSA_PSS signature verification caused failures.
tpm2_nvreadpublic, tpm2_kdfa, tpm2_checkquote, tpm2_quote: Fixes for issues with interoperability of the attestation tools between big and little endian platforms.
tss2_*:
Travis-CI
Cirrus-CI:
wiki pages have been removed and data has been migrated to tpm2-software.github.io portal's tutorial section.
Fix the problem with man and no-man help output for tools were not correctly displayed.
man:
tpm2_create: Correct max seal data size from 256 bytes to 128 bytes.
tpm2_nvread: Fix manpage example.
tpm2_nvwrite: Added missing information on how to specify the NV index as an argument.
tpm2_unseal: Add end-to-end example.
tpm2_nvincrement: Fix incorrect commands in example section.
tpm2_hmac: Fix the example section.
tss2_*: Fix double-free errors in commands asking for password authorization
tss2_*: Fix shorthand command -f that was falsely requiring an argument
tss2_*: Update tss2_encrypt to the new FAPI interface
tss2_*: Remove the additional '\n' that was appended when redirecting to stdout
tss2_*: Update mandatory vs optional treatment of arguments according to latest Fapi spec
tss2_*: tss2_getinfo now retrieves the correct FAPI version from Fapi_GetInfo
tss2_*: Fix the error handling in case of multiple inputs and/or outputs from stdin/stdout
tss2_*: Fix syntax errors and update content of man pages according to latest Fapi spec
tss2_*: Add parameter types to all man page
tss2_*: tss2_setappdata now reads from file or stdin allowing to store also binary data
tss2_*: Memory leaks are fixed in cases when a returned empty non-char output value was passed to file output
tss2_pcrextend: fix extending PCR 0
tss2_quote: fix unused TSS2_RC in LOG_ERR
Fix missing handle maps for ESY3 handle breaks. See #1994.
Bump ESYS minimum dependency version from 2.3.0 to 2.4.0.
Fix for loop declarations build error.
Fix various issues reported by static analysis tools.
Add integration test for ECC based getekcertificate.
Fix for issue #1959 where ARM builds were failing.
Add a check in autotools to add "expect" as a package dependency for fapi tools.
tpm2_createek: Drop the unused -p or --ek-auth option
tpm2_policyor: List of policy files should be specified as an argument instead of -l option. The -l option is still retained for backwards compatibility. See issue#1894.
tpm2_eventlog: add a tool for parsing and displaying the event log.
tpm2_createek: Fix an issue where the template
option looked for args
tpm2_hierarchycontrol: Fixed bug where tool operation failed silently
tpm2_nvdefine: Fixed an issue where text output suggested failures as passes
tpm2_certify: Add an example usage in man page
tpm2_policyor: Fix a bug where tool failed silently when no input were given
tpm2_getekcertificate: Intel (R) PTT EK cert web portal is set as default address
tpm2_alg_util.c: Fix a bug where string rsa3072 was not parsed
.ci/download-deps.sh: Change tss dependency to 2.4.0 to acquire SAPI handles for cpHash calculations
tpm2_policycphash: Add a tool to implement enhanced authorization with cpHash of a command
Add options to tools to enable cpHash outputs: tpm2_nvsetbits, tpm2_nvextend, tpm2_nvincrement, tpm2_nvread, tpm2_nvreadlock, tpm2_writelock, tpm2_nvdefine, tpm2_nvundefine, tpm2_nvcertify, tpm2_policynv, tpm2_policyauthorizenv, tpm2_policysecret, tpm2_create, tpm2_load, tpm2_activatecredential, tpm2_unseal, tpm2_changeauth, tpm2_duplicate, tpm2_import, tpm2_rsadecrypt, tpm2_certify, tpm2_certifycreation, tpm2_hierarchycontrol, tpm2_setprimarypolicy, tpm2_clearcontrol, tpm2_dictionarylockout, tpm2_evictcontrol, tpm2_setclock, tpm2_clockrateadjust, tpm2_clear, tpm2_nvwrite, tpm2_encryptdecrypt, tpm2_hmac.
tpm2_import: Fix an issue where the imported key always required to have a policy
tpm2_policysecret: Fix an issue where authorization model was fixed to password only
Feature API (FAPI) tools added. These additional set of tools implement utilities using the FAPI which was added to the tpm2-tss v2.4.4: tss2_decrypt, tss2_encrypt, tss2_list, tss2_changeauth, tss2_delete, tss2_import, tss2_getinfo, tss2_createkey, tss2_createseal, tss2_exportkey, tss2_getcertificate, tss2_getplatformcertificates, tss2_gettpmblobs, tss2_getappdata, tss2_setappdata, tss2_setcertificate, tss2_sign, tss2_verifysignature, tss2_verifyquote, tss2_createnv, tss2_nvextend, tss2_nvincrement, tss2_nvread, tss2_nvsetbits, tss2_nvwrite, tss2_getdescription, tss2_setdescription, tss2_pcrextend, tss2_quote, tss2_pcrread, tss2_authorizepolicy, tss2_exportpolicy, tss2_import, tss2_provision, tss2_getrandom, tss2_unseal, tss2_writeauthorizenv
tpm2_policycountertimer: Fix an issue where operandB array was reversed causing faulty comparisons.
tpm2_certifycreation: New tool enabling command TPM2_CertifyCreation.
tpm2_checkquote:
tpm2_changeeps: A new tool for changing the Endorsement hierarchy primary seed.
tpm2_changepps: A new tool for changing the Platform hierarchy primary seed.
tpm2_clockrateadjust: Add a new tool for modifying the period on the TPM.
tpm2_create: Add tool options for specifying output data for use in certification
tpm2_createprimary: Add tool options for specifying output data for use in certification
tpm2_evictcontrol:
tpm2_getcap: clean up remanenats of -c option in manpages and tool output.
tpm2_gettime: Add a new tool for retrieving a signed timestamp from a TPM.
tpm2_nvcertify: Add a new tool for certifying the contents of an NV index.
tpm2_nvdefine:
tpm2_nvextend: Add a new tool for extending an NV index similair to a PCR.
tpm2_nvreadpublic:
tpm2_nvsetbits: Add a new tool for setting the values of PCR with type "bits".
tpm2_nvundefine: Add support for deleting NV indices with attribute
TPMA_NV_POLICY_DELETE
set using NV Undefine Special command.
tpm2_nvwritelock: Add a new tool for setting a write lock on an NV index or globally locking nv indices with TPMA_NV_GLOBALLOCK.
tpm2_policyauthorizenv: New tool enabling signed, revocable policies.
tpm2_policyauthvalue: New tool enabling authorization to be bound to the authorization of another object.
tpm2_policycountertimer: Add a new tool for enabling policy bound to TPM clock or timer values.
tpm2_policynamehash: Add a new tool for specifying policy based on object name.
tpm2_policynv: Add a new tool for specifying policy based on NV contents.
tpm2_nvwritten: Add a new tool for specifying policy based on whether or not an NV index was written to.
tpm2_policysecret: Add tool options for specifying
tpm2_policysigned: New tool enabling policy command TPM2_PolicySigned.
tpm2_policytemplate: New tool enabling policy command TPM2_PolicyTemplate.
tpm2_policyticket: New tool enabling policy command TPM2_PolicyTicket.
tpm2_readclock: Add a new tool for reading the TPM clock.
tpm2_setclock: Add a new tool for setting the TPM clock.
tpm2_setprimarypolicy: New tool setting policy on hierarchies.
tpm2_shutdown: Add a new tool for issuing a TPM shutdown command.
misc:
tpm2_checkquote: Fix YAML output bug.
tpm2_activatecredential:
tpm2_certify:
tpm2_changeauth:
tpm2_checkquote:
tpm2_clear:
tpm2_clearcontrol:
tpm2_create
tpm2_createak:
tpm2_createek:
tpm2_createpolicy:
tpm2_createprimary:
tpm2_dictionarylockout:
tpm2_duplicate:
tpm2_encryptdecrypt:
tpm2_evictcontrol:
tpm2_getcap:
tpm2_getekcertificate:
tpm2_getmanufec:
tpm2_getpubak:
tpm2_getpubek:
tpm2_getrandom:
tpm_gettestresult:
tpm2_hash:
tpm2_hmac:
tpm2_hierarchycontrol:
tpm2_import:
-K
to -U
.tpm2_incrementalselftest:
tpm2_listpersistent:
tpm2_load:
--pwdp
changes to --auth-parent
.tpm2_loadexternal:
tpm2_makecredential:
--sec
changes to --secret
.tpm2_nvdefine:
tpm2_nvincrement:
tpm2_nvlist:
tpm2_nvread:
tpm2_nvreadlock:
tpm2_nvwrite:
tpm2_nvrelease:
tpm2_nvundefine:
tpm2_pcrallocate:
tpm2_pcrevent:
tpm2_pcrlist:
tpm2_pcrread:
tpm2_print:
tpm2_policyauthorize:
tpm2_policycommandcode:
tpm2_policyduplicationselect:
tpm2_policylocality:
tpm2_policypcr:
tpm2_policyor:
tpm2_policypassword:
tpm2_policysecret:
tpm2_quote:
tpm2_readpublic:
tpm2_rsadecrypt:
tpm2_rsaencrypt:
tpm2_selftest:
tpm2_send:
tpm2_sign:
tpm2_startauthsession:
tpm2_stirrandom:
tpm2_takeownership:
tpm2_testparms:
tpm2_unseal:
tpm2_verifysignature:
misc:
Makefile: add missing LICENSE and markdown files.
tpm2_getmanufec: -O as a flag for -f has changed. -O is for existing EK public structure and -f is only for generated EK public output.
tpm2_nvlist: output in yaml format.
tpm2_makecredential format changes to the -o output file.
tpm2-quote: -o option removed.
tpm2_rsaencrypt: -I is now an argument and input defaults to stdin. -o is optional and defaults to stdout.
tpm2_listpersistent: output friendly object attributes.
tpm2_createprimary: support friendly object attributes via -A. -H becomes auth hierarchy.
tpm2_create: support friendly object attributes via -A.
tpm2_nvwrite and tpm2_nvread have support for satisfying PCR policies.
tpm2_encryptdecrypt: has support for EncryptDecrypt2 command.
tpm2_nvwrite: -f option removed, support for stdin data supported. Support for starting index to write to.
errata framework added for dealing with spec errata.
tpm2_quote: -G option for signature hash algorithm specification.
tpm2_dump_capability: renamed to tpm2_getcap.
tpm2_send_command: renamed to tpm2_send and the input file is now an argument vs using -i.
tpm2_dump_capability: outputs human readable command codes.
camelCase options are now all lower case. For example, --camelCase becomes --camel-case.
tpm2_quote,readpublic, and sign now have support for pem/der output/inputs. See the respective man pages for more details.
tpm2_nvread: Has an output file option, -f.
manpages: Are now in Markdown and converted to roff using pandoc.
tpm2_create - options 'o' and 'O' changed to 'u' and 'r' respectively.
tpm2_pcrlist: support yaml output for parsing.
tpm2_pcrevent: new tool for hashing and extending pcrs.
Make tpm2_{createprimary,create,load,pcrlist,hmac} tools to support the --quiet option.
Support for a --quiet option to suppress messages printed by tools to standard output.
tpm2_hmac: support for files greater than 1024 bytes, changes in options and arguments.
tpm2_hash: support for files greater than 1024 bytes, changes in options and arguments.
Install is now to bin vs sbin. Ensure that sbin tools get removed!
make dist and distcheck are now working.
installation into customized locations are now working, see issue #402 for details.
tpm2_pcrlist: renamed from tpm2_listpcrs.
tpm2_pcrextend: new tool for extending PCRs.
tpm2_getmanufec: -E option no longer required, defaults to stdout.
tpm2_nvlist: Support for friendly nv attributes in output.
Support for friendly algorithm names for algorithm identifiers.
tpm2_nvread: The option, -s, or size option is no longer required.
tpm2_nvwrite: fixed to write files larger than 1024 in size.
tpm2_nvread: fixed to read files larger than 1024 in size.
tpm2_nvdefine supports "nice-names" for nv space attributes.
Support using PCR Policy directly with tpm2_unseal tool.
Support PCR policy creation in tpm2_createpolicy
Support using a policy session as input to tools that may need to satisfy complex policies other than password.
tpm2_unseal: supports output to stdoud.
tpm2_create: enforce policy based authorization.
tpm2_createprimary: add ability to create objects with policy based authorization.
tpm2_nvdefine: add ability to create nv indexes with policy based authorization.
Support Clang Build.
tpm2_unseal test uses endorsement hierarchy as platform hierarchy is unavailable on a real tpm.
Numerous cleanups and minor bug fixes.
Modified
Removed