google / google/go-tpm

Add remaining TPM commands to TPMDirect API

Open
#278 5 comments 0 reactions 0 assignees View on GitHub
tpmdirect
Dominant language
Go
Stars
673
Forks
188
PR merge metrics
No merged PRs in 30d

Description

Here are all the commands in [1.59](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part2_Structures_pub.pdf#page=48). We can use this tracking bug to track implementation of the rest of them in the [tpmdirect](https://github.com/google/go-tpm/tree/tpmdirect) branch.

- [ ] AC_GetCapability
- [ ] AC_Send
- [ ] ACT_SetTimeout
- [x] ActivateCredential
- [x] Certify
- [x] CertifyCreation
- [ ] CertifyX509
- [ ] ChangeEPS
- [ ] ChangePPS
- [x] Clear
- [ ] ClearControl
- [ ] ClockRateAdjust
- [ ] ClockSet
- [x] Commit
- [ ] ContextLoad
- [ ] ContextSave
- [x] Create
- [x] CreateLoaded
- [x] CreatePrimary
- [ ] DictionaryAttackLockReset
- [ ] DictionaryAttackParameters
- [ ] Duplicate
- [ ] EC_Ephemeral
- [ ] ECC_Parameters
- [ ] ECDH_KeyGen
- [x] ECDH_ZGen
- [ ] EncryptDecrypt
- [ ] EncryptDecrypt2
- [ ] EventSequenceComplete
- [ ] EvictControl
- [ ] FieldUpgradeData
- [ ] FieldUpgradeStart
- [ ] FirmwareRead
- [x] FlushContext
- [x] GetCapability
- [ ] GetCommandAuditDigest
- [x] GetRandom
- [x] GetSessionAuditDigest
- [ ] GetTestResult
- [ ] GetTime
- [ ] Hash
- [ ] HashSequenceStart
- [ ] HierarchyChangeAuth
- [ ] HierarchyControl
- [ ] HMAC
- [ ] HMAC_Start
- [ ] Import
- [ ] IncrementalSelfTest
- [x] Load
- [x] LoadExternal
- [ ] MAC
- [ ] MAC_Start
- [ ] MakeCredential
- [x] NV_Certify
- [ ] NV_ChangeAuth
- [x] NV_DefineSpace
- [ ] NV_Extend
- [ ] NV_GlobalWriteLock
- [x] NV_Increment
- [x] NV_Read
- [ ] NV_ReadLock
- [x] NV_ReadPublic
- [ ] NV_SetBits
- [x] NV_UndefineSpace
- [x] NV_UndefineSpaceSpecial
- [x] NV_Write
- [x] NV_WriteLock
- [ ] ObjectChangeAuth
- [ ] PCR_Allocate
- [x] PCR_Event
- [x] PCR_Extend
- [x] PCR_Read
- [x] PCR_Reset
- [ ] PCR_SetAuthPolicy
- [ ] PCR_SetAuthValue
- [ ] Policy_AC_SendSelect
- [x] PolicyAuthorize
- [x] PolicyAuthorizeNV
- [ ] PolicyAuthValue
- [x] PolicyCommandCode
- [ ] PolicyCounterTimer
- [x] PolicyCpHash
- [ ] PolicyDuplicationSelect
- [x] PolicyGetDigest
- [ ] PolicyLocality
- [ ] PolicyNameHash
- [x] PolicyNV
- [x] PolicyNvWritten
- [x] PolicyOR
- [ ] PolicyPassword
- [x] PolicyPCR
- [ ] PolicyPhysicalPresence
- [ ] PolicyRestart
- [x] PolicySecret
- [x] PolicySigned
- [ ] PolicyTemplate
- [ ] PolicyTicket
- [ ] PP_Commands
- [x] Quote
- [ ] ReadClock
- [x] ReadPublic
- [ ] Rewrap
- [ ] RSA_Decrypt
- [ ] RSA_Encrypt
- [ ] SelfTest
- [ ] SequenceComplete
- [ ] SequenceUpdate
- [ ] SetAlgorithmSet
- [ ] SetCommandCodeAuditStatus
- [ ] SetPrimaryPolicy
- [x] Shutdown
- [x] Sign
- [x] StartAuthSession
- [x] Startup
- [ ] StirRandom
- [ ] TestParms
- [x] Unseal
- [x] VerifySignature
- [ ] ZGen_2Phase

Contributor guide

Open the contributing guide

Research direction

Use the TCG TPM 2.0 Part 2 revision 1.59 command list to choose a specific unchecked command, then inspect the tpmdirect branch for the existing API patterns. Done means implementing the selected command and updating this tracking checklist; the issue does not identify files or tests to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.