Introducing the new TPM-Direct API
This is a major change to the go-tpm library. It introduces the API that was proposed in 2022 as "TPMDirect", which maps TPM commands to Go structs instead of funcs, allowing greater composability. Stay tuned for more information about this change and how to get started.
If you want to update to this release of go-tpm, you don't have to rewrite all your code! You can start using the new API at your leisure. Simply use the old API at its new path by changing from github.com/google/go-tpm/tpm2 to github.com/google/go-tpm/legacy/tpm2 in your code's import statements:
import github.com/google/go-tpm/tpm2
to
import github.com/google/go-tpm/legacy/tpm2
What's Changed
- Update tpmdirect with latest changes from master by @chrisfenner in #269
- Introduce Direct TPM2 API by @chrisfenner in #266
- Update README.md by @chrisfenner in #270
- Add a lot of policy and NV commands to TPMDirect by @chrisfenner in #272
- Implemented and Tested ReadPublic by @matt-tsai in #279
- Implemented and Tested GetRandom by @matt-tsai in #277
- Implemented and Tested Sign by @matt-tsai in #282
- Implemented and Tested Hash, HashSequenceStart, SequenceUpdate, and SequenceComplete by @matt-tsai in #284
- Supporting functionalities for direct migration by @matt-tsai in #283
- Define the structure related to ECDAA by @akakou in #288
- Implemented and Tested PolicyPCR by @matt-tsai in #289
- Implemented and Tested ContextSave, ContextLoad by @matt-tsai in #280
- Implemented and Tested Certify by @matt-tsai in #293
- Implemented and Tested CertifyCreation by @matt-tsai in #297
- Implemented and Tested pcrReset. by @matt-tsai in #295
- Adding comments to TestReadPublicKey by @matt-tsai in #299
- Implement TPM2_Commit by @akakou in #296
- rename tpmdirect to tpm2 and rename existing tpm2 as legacy/tpm2 by @chrisfenner in #304
- add several commands needed by Google PINT by @chrisfenner in #305
- Add type of ECDAA signature by @chrisfenner in #306
- flatten the new API to just tpm2 by @chrisfenner in #308
- Use generics to simplify the TPMDirect interface by @chrisfenner in #310
- make two transcription fixes by @chrisfenner in #316
- support go generate for constants by @chrisfenner in #317
- fix reflection on cmd structs not to use elem by @chrisfenner in #329
- Replay google/master work since the start of tpmdirect by @chrisfenner in #330
- get rid of adapter.go and rename Startup_ and Shutdown_ by @chrisfenner in #331
- rely on go-tpm-tools @ 4639ecce2abad383ae6c5cbbc0eba5ba37abb05a by @chrisfenner in #332
New Contributors
- @matt-tsai made their first contribution in #279
- @akakou made their first contribution in #288
Full Changelog: v0.3.3...v0.9.0