summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--feature/tpm/tpm.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/feature/tpm/tpm.go b/feature/tpm/tpm.go
index 18e56ae89..f571524b0 100644
--- a/feature/tpm/tpm.go
+++ b/feature/tpm/tpm.go
@@ -5,6 +5,7 @@
package tpm
import (
+ "log"
"slices"
"sync"
@@ -63,6 +64,44 @@ func infoFromCapabilities(tpm transport.TPM) *tailcfg.TPMInfo {
}
cap.apply(info, props.TPMProperty[0].Value)
}
+ {
+ resp, err := tpm2.GetCapability{
+ Capability: tpm2.TPMCapCommands,
+ Property: 0,
+ PropertyCount: (1024 - 4 - 4) / 4,
+ }.Execute(tpm)
+ if err != nil {
+ log.Printf("GetCapability: %v", err)
+ return info
+ }
+ cmd, err := resp.CapabilityData.Data.Command()
+ if err != nil {
+ log.Printf("Data.Command: %v", err)
+ return info
+ }
+ for _, cc := range cmd.CommandAttributes {
+ log.Printf("supported command 0x%x", cc.CommandIndex)
+ }
+ }
+ {
+ resp, err := tpm2.GetCapability{
+ Capability: tpm2.TPMCapAlgs,
+ Property: 0,
+ PropertyCount: (1024 - 4 - 4) / 4,
+ }.Execute(tpm)
+ if err != nil {
+ log.Printf("GetCapability: %v", err)
+ return info
+ }
+ alg, err := resp.CapabilityData.Data.Algorithms()
+ if err != nil {
+ log.Printf("Data.Command: %v", err)
+ return info
+ }
+ for _, a := range alg.AlgProperties {
+ log.Printf("supported algorithm 0x%x", a.Alg)
+ }
+ }
return info
}