Documentation
¶
Overview ¶
Package tpm is a generated GoMock package.
Index ¶
- Constants
- Variables
- func AttestationKeyTemplate(keyAlgo KeyAlgorithm) (tpm2.TPMTPublic, error)
- func BuildTCGCSRIDevID(standardCSR []byte, productModel string, productSerial string, ekCert []byte, ...) ([]byte, error)
- func ConvertTPMSignatureToDER(sig *tpm2.TPMTSignature) ([]byte, error)
- func EmbedTCGCSRInX509(standardCSR []byte, tcgCSRData []byte) ([]byte, error)
- func EndorsementKeyTemplate(keyAlgo KeyAlgorithm) (tpm2.TPMTPublic, error)
- func IsTCGCSRFormat(data []byte) bool
- func LDevIDTemplate(keyAlgo KeyAlgorithm) (tpm2.TPMTPublic, error)
- func LoadCAsFromPaths(paths []string) (*x509.CertPool, error)
- func NormalizeEnrollmentCSR(csrString string) ([]byte, bool, error)
- func ParseTCGCSRBytes(raw string) ([]byte, bool)
- func VerifyTCGCSRChainOfTrust(csrData []byte) error
- func VerifyTCGCSRChainOfTrustWithRoots(csrData []byte, trustedRoots *x509.CertPool) error
- type CSRPayload
- type Client
- func (c *Client) AttestationCollector(ctx context.Context) string
- func (c *Client) Clear() error
- func (c *Client) Close(ctx context.Context) error
- func (c *Client) GetSigner() crypto.Signer
- func (c *Client) MakeCSR(deviceName string, qualifyingData []byte) ([]byte, error)
- func (c *Client) Public() crypto.PublicKey
- func (c *Client) Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error)
- func (c *Client) UpdateNonce(nonce []byte) error
- func (c *Client) VendorInfoCollector(ctx context.Context) string
- type IDevIDContent
- type KeyAlgorithm
- type KeyType
- type MockSession
- func (m *MockSession) CertifyKey(keyType KeyType, qualifyingData []byte) ([]byte, []byte, error)
- func (m *MockSession) Clear() error
- func (m *MockSession) Close() error
- func (m *MockSession) CreateKey(keyType KeyType) (*tpm2.CreateResponse, error)
- func (m *MockSession) EXPECT() *MockSessionMockRecorder
- func (m *MockSession) FlushAllTransientHandles() error
- func (m *MockSession) GetEndorsementKeyCert() ([]byte, error)
- func (m *MockSession) GetHandle(keyType KeyType) (*tpm2.NamedHandle, error)
- func (m *MockSession) GetPublicKey(keyType KeyType) (*tpm2.TPM2BPublic, error)
- func (m *MockSession) LoadKey(keyType KeyType) (*tpm2.NamedHandle, error)
- func (m *MockSession) Sign(keyType KeyType, digest []byte) ([]byte, error)
- type MockSessionMockRecorder
- func (mr *MockSessionMockRecorder) CertifyKey(keyType, qualifyingData any) *gomock.Call
- func (mr *MockSessionMockRecorder) Clear() *gomock.Call
- func (mr *MockSessionMockRecorder) Close() *gomock.Call
- func (mr *MockSessionMockRecorder) CreateKey(keyType any) *gomock.Call
- func (mr *MockSessionMockRecorder) FlushAllTransientHandles() *gomock.Call
- func (mr *MockSessionMockRecorder) GetEndorsementKeyCert() *gomock.Call
- func (mr *MockSessionMockRecorder) GetHandle(keyType any) *gomock.Call
- func (mr *MockSessionMockRecorder) GetPublicKey(keyType any) *gomock.Call
- func (mr *MockSessionMockRecorder) LoadKey(keyType any) *gomock.Call
- func (mr *MockSessionMockRecorder) Sign(keyType, digest any) *gomock.Call
- type MockStorage
- func (m *MockStorage) ClearKey(keyType KeyType) error
- func (m *MockStorage) ClearPassword() error
- func (m *MockStorage) Close() error
- func (m *MockStorage) EXPECT() *MockStorageMockRecorder
- func (m *MockStorage) GetKey(keyType KeyType) (*tpm2.TPM2BPublic, *tpm2.TPM2BPrivate, error)
- func (m *MockStorage) GetPassword() ([]byte, error)
- func (m *MockStorage) StoreKey(keyType KeyType, public tpm2.TPM2BPublic, private tpm2.TPM2BPrivate) error
- func (m *MockStorage) StorePassword(password []byte) error
- type MockStorageMockRecorder
- func (mr *MockStorageMockRecorder) ClearKey(keyType any) *gomock.Call
- func (mr *MockStorageMockRecorder) ClearPassword() *gomock.Call
- func (mr *MockStorageMockRecorder) Close() *gomock.Call
- func (mr *MockStorageMockRecorder) GetKey(keyType any) *gomock.Call
- func (mr *MockStorageMockRecorder) GetPassword() *gomock.Call
- func (mr *MockStorageMockRecorder) StoreKey(keyType, public, private any) *gomock.Call
- func (mr *MockStorageMockRecorder) StorePassword(password any) *gomock.Call
- type ParsedTCGCSR
- type ParsedTCGContent
- type ParsedTCGPayload
- type Session
- type Storage
- type TCGCSRIDevID
- type TCGCSRParser
- type TPMAttestationData
Constants ¶
const ( TCGAlgSHA256 = 0x000B TCGAlgSHA384 = 0x000C TCGAlgSHA512 = 0x000D )
TCG Algorithm IDs (from TCG Algorithm Registry)
const (
MinNonceLength = 8
)
Variables ¶
var (
ErrNotFound = errors.New("not found")
)
var TCGCSRExtensionOID = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 9, 7}
CSR Extension OID for TCG-CSR-IDEVID Using id-pkcs9-at-challengePassword temporarily - should be replaced with proper TCG OID
Functions ¶
func AttestationKeyTemplate ¶ added in v0.9.0
func AttestationKeyTemplate(keyAlgo KeyAlgorithm) (tpm2.TPMTPublic, error)
AttestationKeyTemplate generates a Local Attestation Key template based on the specified algorithm. Based on go-tpm-tools AKTemplateECC/AKTemplateRSA templates.
func BuildTCGCSRIDevID ¶ added in v0.9.0
func BuildTCGCSRIDevID( standardCSR []byte, productModel string, productSerial string, ekCert []byte, attestationPub []byte, signingPub []byte, signingCertifyInfo []byte, signingCertifySignature []byte, signer crypto.Signer, ) ([]byte, error)
BuildTCGCSRIDevID creates a TCG-CSR-IDEVID structure with embedded TPM attestation data
func ConvertTPMSignatureToDER ¶ added in v0.9.0
func ConvertTPMSignatureToDER(sig *tpm2.TPMTSignature) ([]byte, error)
ConvertTPMSignatureToDER handles TPM2 signatures for RSA and ECDSA keys.
func EmbedTCGCSRInX509 ¶ added in v0.9.0
EmbedTCGCSRInX509 embeds TCG-CSR-IDEVID data as an extension in a standard X.509 CSR
func EndorsementKeyTemplate ¶ added in v0.9.0
func EndorsementKeyTemplate(keyAlgo KeyAlgorithm) (tpm2.TPMTPublic, error)
EndorsementKeyTemplate generates an Endorsement Key template based on the specified algorithm. Endorsement keys are used for device identity and attestation operations.
func IsTCGCSRFormat ¶ added in v0.9.0
IsTCGCSRFormat checks if the provided data appears to be TCG-CSR-IDEVID format
func LDevIDTemplate ¶ added in v0.9.0
func LDevIDTemplate(keyAlgo KeyAlgorithm) (tpm2.TPMTPublic, error)
LDevIDTemplate generates a Local Device Identity key template based on the specified algorithm. This key template uses the Storage Root Key as the parent key. Key attributes are aligned with definitions from https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM-2p0-DevID_v1p00_r10_12july2021.pdf. Specifically, for key attribute and parameter recommendations, see Sections 7.3.4.1 and 7.3.4.3.
func LoadCAsFromPaths ¶ added in v0.9.0
LoadCAsFromPaths loads CA certificates from a list of file paths
func NormalizeEnrollmentCSR ¶ added in v0.9.0
NormalizeEnrollmentCSR extracts the embedded standard X.509 CSR from a TCG CSR if present.
func ParseTCGCSRBytes ¶ added in v0.9.0
ParseTCGCSRBytes returns the decoded TCG-formatted CSR bytes if valid, or false if not.
func VerifyTCGCSRChainOfTrust ¶ added in v0.9.0
VerifyTCGCSRChainOfTrust verifies the complete chain of trust in a TCG-CSR-IDEVID
Types ¶
type CSRPayload ¶ added in v0.9.0
type CSRPayload struct {
// Product model string
ProdModel []byte `json:"prodModel"`
// Product serial number string
ProdSerial []byte `json:"prodSerial"`
// CA-specific data
ProdCaData []byte `json:"prodCaData"`
// Boot event log
BootEvntLog []byte `json:"bootEvntLog"`
// TPM EK certificate (DER format)
EkCert []byte `json:"ekCert"`
// Attestation key public area
AttestPub []byte `json:"attestPub"`
// TPM2_CertifyCreation ticket
AtCreateTkt []byte `json:"atCreateTkt"`
// TPM2_Certify info for attestation key (currently unused)
AtCertifyInfo []byte `json:"atCertifyInfo"`
// Signature over attestation certify info (currently unused)
AtCertifyInfoSignature []byte `json:"atCertifyInfoSignature"`
// Signing key public area
SigningPub []byte `json:"signingPub"`
// TPM2_Certify info for signing key
SgnCertifyInfo []byte `json:"sgnCertifyInfo"`
// Signature over signing certify info
SgnCertifyInfoSignature []byte `json:"sgnCertifyInfoSignature"`
// Padding
Pad []byte `json:"pad"`
}
CSRPayload contains the actual payload data referenced by the content structure
type Client ¶ added in v0.9.0
type Client struct {
// contains filtered or unexported fields
}
Client represents a simplified TPM client that exposes signing capabilities and attestation data for CSR generation.
func NewClient ¶ added in v0.9.0
func NewClient(log *log.PrefixLogger, rw fileio.ReadWriter, config *agent_config.Config) (*Client, error)
NewClient creates a new simplified TPM client with the given configuration.
func (*Client) AttestationCollector ¶ added in v0.9.0
AttestationCollector returns TPM attestation information for system info collection
func (*Client) GetSigner ¶ added in v0.9.0
GetSigner returns the crypto.Signer interface for this client
func (*Client) MakeCSR ¶ added in v0.9.0
MakeCSR generates a TCG-CSR-IDEVID structure for enrollment requests This combines standard CSR data with TPM attestation according to TCG specifications This is the primary CSR generation method for TPM clients
func (*Client) Public ¶ added in v0.9.0
Public returns the public key corresponding to the LDevID private key.
func (*Client) Sign ¶ added in v0.9.0
Sign implements the crypto.Signer interface using the TPM's LDevID key. The rand parameter is ignored as the TPM generates its own randomness internally.
func (*Client) UpdateNonce ¶ added in v0.9.0
UpdateNonce updates the nonce used for TPM operations
type IDevIDContent ¶ added in v0.9.0
type IDevIDContent struct {
StructVer [4]byte `json:"-"` // Version 1.0 = 0x00000100
HashAlgoId [4]byte `json:"-"` // TCG algorithm identifier for CSR hash
HashSz [4]byte `json:"-"` // Size, in bytes, of hash used
// Hash of all that follows is placed here order must not change
ProdModelSz [4]byte `json:"-"` // Size of unterminated product model string
ProdSerialSz [4]byte `json:"-"` // Size of unterminated product serial number string
ProdCaDataSz [4]byte `json:"-"` // Size of CA-specific required data structure
BootEvntLogSz [4]byte `json:"-"` // Size of boot event log
EkCertSz [4]byte `json:"-"` // TPM EK cert size
AttestPubSz [4]byte `json:"-"` // Attestation key public size
AtCreateTktSz [4]byte `json:"-"` // TPM2_CertifyCreation ticket size
AtCertifyInfoSz [4]byte `json:"-"` // TPM2_Certify info size
AtCertifyInfoSignatureSz [4]byte `json:"-"` // TPM2_CertifyInfo Signature size
SigningPubSz [4]byte `json:"-"` // Signing key public size
SgnCertifyInfoSz [4]byte `json:"-"` // TPM2_Certify info size
SgnCertifyInfoSignatureSz [4]byte `json:"-"` // TPM2_CertifyInfo Signature size
PadSz [4]byte `json:"-"` // Padding size
}
IDevIDContent represents the content portion of TCG-CSR-IDEVID
func (IDevIDContent) MarshalJSON ¶ added in v0.9.0
func (t IDevIDContent) MarshalJSON() ([]byte, error)
MarshalJSON implements custom JSON marshaling for DevIDContent
func (*IDevIDContent) UnmarshalJSON ¶ added in v0.9.0
func (t *IDevIDContent) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom JSON unmarshaling for TCGIDevIDContent
type KeyAlgorithm ¶ added in v0.9.0
type KeyAlgorithm string
KeyAlgorithm represents the cryptographic algorithm used for keys
const ( ECDSA KeyAlgorithm = "ecdsa" RSA KeyAlgorithm = "rsa" )
type KeyType ¶ added in v0.9.0
type KeyType string
KeyType represents the type of TPM key
const ( // LDevID (Local Device Identity Key) is a unique identity key for the device, // used to authenticate the device to external services. LDevID KeyType = "ldevid" // LAK (Local Attestation Key) is a restricted signing key used for TPM attestation operations. LAK KeyType = "lak" // SRK (Storage Root Key) is a well-known, persistent primary key in the TPM's storage hierarchy. SRK KeyType = "srk" )
type MockSession ¶ added in v0.9.0
type MockSession struct {
// contains filtered or unexported fields
}
MockSession is a mock of Session interface.
func NewMockSession ¶ added in v0.9.0
func NewMockSession(ctrl *gomock.Controller) *MockSession
NewMockSession creates a new mock instance.
func (*MockSession) CertifyKey ¶ added in v0.9.0
CertifyKey mocks base method.
func (*MockSession) Clear ¶ added in v0.9.0
func (m *MockSession) Clear() error
Clear mocks base method.
func (*MockSession) Close ¶ added in v0.9.0
func (m *MockSession) Close() error
Close mocks base method.
func (*MockSession) CreateKey ¶ added in v0.9.0
func (m *MockSession) CreateKey(keyType KeyType) (*tpm2.CreateResponse, error)
CreateKey mocks base method.
func (*MockSession) EXPECT ¶ added in v0.9.0
func (m *MockSession) EXPECT() *MockSessionMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockSession) FlushAllTransientHandles ¶ added in v0.9.0
func (m *MockSession) FlushAllTransientHandles() error
FlushAllTransientHandles mocks base method.
func (*MockSession) GetEndorsementKeyCert ¶ added in v0.9.0
func (m *MockSession) GetEndorsementKeyCert() ([]byte, error)
GetEndorsementKeyCert mocks base method.
func (*MockSession) GetHandle ¶ added in v0.9.0
func (m *MockSession) GetHandle(keyType KeyType) (*tpm2.NamedHandle, error)
GetHandle mocks base method.
func (*MockSession) GetPublicKey ¶ added in v0.9.0
func (m *MockSession) GetPublicKey(keyType KeyType) (*tpm2.TPM2BPublic, error)
GetPublicKey mocks base method.
func (*MockSession) LoadKey ¶ added in v0.9.0
func (m *MockSession) LoadKey(keyType KeyType) (*tpm2.NamedHandle, error)
LoadKey mocks base method.
type MockSessionMockRecorder ¶ added in v0.9.0
type MockSessionMockRecorder struct {
// contains filtered or unexported fields
}
MockSessionMockRecorder is the mock recorder for MockSession.
func (*MockSessionMockRecorder) CertifyKey ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) CertifyKey(keyType, qualifyingData any) *gomock.Call
CertifyKey indicates an expected call of CertifyKey.
func (*MockSessionMockRecorder) Clear ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) Clear() *gomock.Call
Clear indicates an expected call of Clear.
func (*MockSessionMockRecorder) Close ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) Close() *gomock.Call
Close indicates an expected call of Close.
func (*MockSessionMockRecorder) CreateKey ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) CreateKey(keyType any) *gomock.Call
CreateKey indicates an expected call of CreateKey.
func (*MockSessionMockRecorder) FlushAllTransientHandles ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) FlushAllTransientHandles() *gomock.Call
FlushAllTransientHandles indicates an expected call of FlushAllTransientHandles.
func (*MockSessionMockRecorder) GetEndorsementKeyCert ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) GetEndorsementKeyCert() *gomock.Call
GetEndorsementKeyCert indicates an expected call of GetEndorsementKeyCert.
func (*MockSessionMockRecorder) GetHandle ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) GetHandle(keyType any) *gomock.Call
GetHandle indicates an expected call of GetHandle.
func (*MockSessionMockRecorder) GetPublicKey ¶ added in v0.9.0
func (mr *MockSessionMockRecorder) GetPublicKey(keyType any) *gomock.Call
GetPublicKey indicates an expected call of GetPublicKey.
type MockStorage ¶ added in v0.9.0
type MockStorage struct {
// contains filtered or unexported fields
}
MockStorage is a mock of Storage interface.
func NewMockStorage ¶ added in v0.9.0
func NewMockStorage(ctrl *gomock.Controller) *MockStorage
NewMockStorage creates a new mock instance.
func (*MockStorage) ClearKey ¶ added in v0.9.0
func (m *MockStorage) ClearKey(keyType KeyType) error
ClearKey mocks base method.
func (*MockStorage) ClearPassword ¶ added in v0.9.0
func (m *MockStorage) ClearPassword() error
ClearPassword mocks base method.
func (*MockStorage) Close ¶ added in v0.9.0
func (m *MockStorage) Close() error
Close mocks base method.
func (*MockStorage) EXPECT ¶ added in v0.9.0
func (m *MockStorage) EXPECT() *MockStorageMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockStorage) GetKey ¶ added in v0.9.0
func (m *MockStorage) GetKey(keyType KeyType) (*tpm2.TPM2BPublic, *tpm2.TPM2BPrivate, error)
GetKey mocks base method.
func (*MockStorage) GetPassword ¶ added in v0.9.0
func (m *MockStorage) GetPassword() ([]byte, error)
GetPassword mocks base method.
func (*MockStorage) StoreKey ¶ added in v0.9.0
func (m *MockStorage) StoreKey(keyType KeyType, public tpm2.TPM2BPublic, private tpm2.TPM2BPrivate) error
StoreKey mocks base method.
func (*MockStorage) StorePassword ¶ added in v0.9.0
func (m *MockStorage) StorePassword(password []byte) error
StorePassword mocks base method.
type MockStorageMockRecorder ¶ added in v0.9.0
type MockStorageMockRecorder struct {
// contains filtered or unexported fields
}
MockStorageMockRecorder is the mock recorder for MockStorage.
func (*MockStorageMockRecorder) ClearKey ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) ClearKey(keyType any) *gomock.Call
ClearKey indicates an expected call of ClearKey.
func (*MockStorageMockRecorder) ClearPassword ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) ClearPassword() *gomock.Call
ClearPassword indicates an expected call of ClearPassword.
func (*MockStorageMockRecorder) Close ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) Close() *gomock.Call
Close indicates an expected call of Close.
func (*MockStorageMockRecorder) GetKey ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) GetKey(keyType any) *gomock.Call
GetKey indicates an expected call of GetKey.
func (*MockStorageMockRecorder) GetPassword ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) GetPassword() *gomock.Call
GetPassword indicates an expected call of GetPassword.
func (*MockStorageMockRecorder) StoreKey ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) StoreKey(keyType, public, private any) *gomock.Call
StoreKey indicates an expected call of StoreKey.
func (*MockStorageMockRecorder) StorePassword ¶ added in v0.9.0
func (mr *MockStorageMockRecorder) StorePassword(password any) *gomock.Call
StorePassword indicates an expected call of StorePassword.
type ParsedTCGCSR ¶ added in v0.9.0
type ParsedTCGCSR struct {
StructVer uint32
Contents uint32
SigSz uint32
CSRContents *ParsedTCGContent
Signature []byte
IsValid bool
ValidationError string
}
ParsedTCGCSR contains the parsed TCG-CSR-IDEVID data
func ParseTCGCSR ¶ added in v0.9.0
func ParseTCGCSR(data []byte) (*ParsedTCGCSR, error)
ParseTCGCSR parses TCG-CSR-IDEVID format data
type ParsedTCGContent ¶ added in v0.9.0
type ParsedTCGContent struct {
StructVer uint32
HashAlgoId uint32
HashSz uint32
ProdModelSz uint32
ProdSerialSz uint32
ProdCaDataSz uint32
BootEvntLogSz uint32
EkCertSz uint32
AttestPubSz uint32
AtCreateTktSz uint32
AtCertifyInfoSz uint32
AtCertifyInfoSignatureSz uint32
SigningPubSz uint32
SgnCertifyInfoSz uint32
SgnCertifyInfoSignatureSz uint32
PadSz uint32
Payload *ParsedTCGPayload
}
ParsedTCGContent contains the parsed content portion
type ParsedTCGPayload ¶ added in v0.9.0
type ParsedTCGPayload struct {
ProdModel []byte
ProdSerial []byte
ProdCaData []byte
BootEvntLog []byte
EkCert []byte
AttestPub []byte
AtCreateTkt []byte
AtCertifyInfo []byte
AtCertifyInfoSignature []byte
SigningPub []byte
SgnCertifyInfo []byte
SgnCertifyInfoSignature []byte
Pad []byte
}
ParsedTCGPayload contains the parsed payload data
type Session ¶ added in v0.9.0
type Session interface {
// GetHandle returns the active handle for a key type
GetHandle(keyType KeyType) (*tpm2.NamedHandle, error)
// CreateKey creates a new key of the specified type
CreateKey(keyType KeyType) (*tpm2.CreateResponse, error)
// LoadKey loads a key into the TPM and returns its handle
LoadKey(keyType KeyType) (*tpm2.NamedHandle, error)
// CertifyKey certifies a key with the LAK
CertifyKey(keyType KeyType, qualifyingData []byte) (certifyInfo, signature []byte, err error)
// Sign signs data with the specified key
Sign(keyType KeyType, digest []byte) ([]byte, error)
// GetPublicKey gets the public key for a key type
GetPublicKey(keyType KeyType) (*tpm2.TPM2BPublic, error)
// GetEndorsementKeyCert returns the endorsement key certificate
GetEndorsementKeyCert() ([]byte, error)
// FlushAllTransientHandles aggressively flushes all transient handles
FlushAllTransientHandles() error
// Clear performs a best-effort clear of the TPM, resetting keys and auth
Clear() error
// Close closes the session and flushes handles
Close() error
}
Session manages active TPM state and operations
func NewSession ¶ added in v0.9.0
func NewSession(conn io.ReadWriteCloser, rw fileio.ReadWriter, log *log.PrefixLogger, authEnabled bool, persistencePath string, keyAlgo KeyAlgorithm) (Session, error)
NewSession creates a new TPM session
type Storage ¶ added in v0.9.0
type Storage interface {
// GetKey retrieves stored key data for the specified key type
// Returns nil values if key doesn't exist
GetKey(keyType KeyType) (*tpm2.TPM2BPublic, *tpm2.TPM2BPrivate, error)
// StoreKey stores key data for the specified key type
StoreKey(keyType KeyType, public tpm2.TPM2BPublic, private tpm2.TPM2BPrivate) error
// ClearKey clears key data for the specified key type
ClearKey(keyType KeyType) error
// GetPassword retrieves the stored storage hierarchy password
GetPassword() ([]byte, error)
// StorePassword stores the storage hierarchy password
StorePassword(password []byte) error
// ClearPassword removes the stored password
ClearPassword() error
// Close closes the storage and releases any resources
Close() error
}
Storage handles pure disk persistence of TPM data on disk
func NewFileStorage ¶ added in v0.9.0
func NewFileStorage(rw fileio.ReadWriter, path string, log *log.PrefixLogger) Storage
NewFileStorage creates a new file-based storage implementation
type TCGCSRIDevID ¶ added in v0.9.0
type TCGCSRIDevID struct {
// Version 1.0 = 0x01000100
StructVer [4]byte `json:"-"`
// Size of csrContents
Contents [4]byte `json:"-"`
// Size, in bytes, of signature
SigSz [4]byte `json:"-"`
// The actual content
CSRContents IDevIDContent `json:"csrContents"`
// DER encoded signature, including algorithm ID
Signature []byte `json:"signature"`
}
TCG-CSR-IDEVID implementation according to TCG TPM 2.0 Keys for Device Identity and Attestation v1.0 Rev 12 Section 13.1: TCG-CSR Structures. TCGCSRIDevID represents the complete TCG-CSR-IDEVID structure The TCG-CSR-IDEVID uses Big Endian byte ordering. All sizes are in bytes.
func (TCGCSRIDevID) MarshalJSON ¶ added in v0.9.0
func (t TCGCSRIDevID) MarshalJSON() ([]byte, error)
MarshalJSON implements custom JSON marshaling for TCGCSRIDevID
func (*TCGCSRIDevID) UnmarshalJSON ¶ added in v0.9.0
func (t *TCGCSRIDevID) UnmarshalJSON(data []byte) error
UnmarshalJSON implements custom JSON unmarshaling for TCGCSRIDevID
type TCGCSRParser ¶ added in v0.9.0
type TCGCSRParser struct {
// contains filtered or unexported fields
}
TCGCSRParser provides functionality to parse TCG-CSR-IDEVID format
type TPMAttestationData ¶ added in v0.9.0
type TPMAttestationData struct {
EKCertificate []byte
LAKPublicKey []byte
LAKCertifyInfo []byte // (currently unused)
LAKCertifySignature []byte // (currently unused)
LDevIDPublicKey []byte
LDevIDCertifyInfo []byte
LDevIDCertifySignature []byte
ProductModel string
ProductSerial string
StandardCSR []byte // Embedded standard X.509 CSR if available
}
TPMAttestationData represents the extracted TPM data in a usable format