mirror of
https://github.com/tailscale/tailscale.git
synced 2025-12-23 17:16:29 +00:00
types/persist: add AttestationKey (#17281)
Extend Persist with AttestationKey to record a hardware-backed attestation key for the node's identity. Add a flag to tailscaled to allow users to control the use of hardware-backed keys to bind node identity to individual machines. Updates tailscale/corp#31269 Change-Id: Idcf40d730a448d85f07f1bebf387f086d4c58be3 Signed-off-by: Patrick O'Doherty <patrick@tailscale.com>
This commit is contained in:
committed by
GitHub
parent
a2dc517d7d
commit
e45557afc0
@@ -6,6 +6,9 @@ package feature
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
||||
"tailscale.com/types/logger"
|
||||
"tailscale.com/types/persist"
|
||||
)
|
||||
|
||||
// HookCanAutoUpdate is a hook for the clientupdate package
|
||||
@@ -45,6 +48,8 @@ var HookProxySetTransportGetProxyConnectHeader Hook[func(*http.Transport)]
|
||||
// and available.
|
||||
var HookTPMAvailable Hook[func() bool]
|
||||
|
||||
var HookGenerateAttestationKeyIfEmpty Hook[func(p *persist.Persist, logf logger.Logf) (bool, error)]
|
||||
|
||||
// TPMAvailable reports whether a TPM device is supported and available.
|
||||
func TPMAvailable() bool {
|
||||
if f, ok := HookTPMAvailable.GetOk(); ok {
|
||||
@@ -52,3 +57,17 @@ func TPMAvailable() bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// HookHardwareAttestationAvailable is a hook that reports whether hardware
|
||||
// attestation is supported and available.
|
||||
var HookHardwareAttestationAvailable Hook[func() bool]
|
||||
|
||||
// HardwareAttestationAvailable reports whether hardware attestation is
|
||||
// supported and available (TPM on Windows/Linux, Secure Enclave on macOS|iOS,
|
||||
// KeyStore on Android)
|
||||
func HardwareAttestationAvailable() bool {
|
||||
if f, ok := HookHardwareAttestationAvailable.GetOk(); ok {
|
||||
return f()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user