-
Notifications
You must be signed in to change notification settings - Fork 172
Open
Description
Suggest adding DictionaryAttackLockReset command from 25.2 TPM2_DictionaryAttackLockReset (and probably also TPM2_DictionaryAttackParameters)
for the former, maybe
// DictionaryAttackLockReset is the input to TPM2_DictionaryAttackLockReset.
// See definition in Part 3, Commands, section 25.2.
type DictionaryAttackLockReset struct {
LockHandle TPMIRHLockout `gotpm:"handle,auth"`
}
// Command implements the Command interface.
func (DictionaryAttackLockReset) Command() TPMCC { return TPMCCDictionaryAttackLockReset }
// Execute executes the command and returns the response.
func (cmd DictionaryAttackLockReset) Execute(t transport.TPM, s ...Session) (*DictionaryAttackLockResetResponse, error) {
var rsp DictionaryAttackLockResetResponse
if err := execute[DictionaryAttackLockResetResponse](t, cmd, &rsp, s...); err != nil {
return nil, err
}
return &rsp, nil
}
// DictionaryAttackLockResetResponse is the response from TPM2_DictionaryAttackLockReset.
type DictionaryAttackLockResetResponse struct{}and a simple test could be
func TestDictionaryAttackLockReset(t *testing.T) {
thetpm, err := simulator.OpenSimulator()
if err != nil {
t.Fatalf("could not connect to TPM simulator: %v", err)
}
defer thetpm.Close()
dl := DictionaryAttackLockReset{
LockHandle: TPMRHLockout,
}
if _, err := dl.Execute(thetpm); err != nil {
t.Fatalf("DictionaryAttackLockReset failed: %v", err)
}
}thought a full end-to-end maybe more complex where you force a lockout, verify by reading tpm2_getcap properties-variable inLockout, reset and reread the property
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels