Versions in this module Expand all Collapse all v2 v2.7.0 Feb 15, 2023 Changes in this version + const DataChunkIDACMHeaderSVN + const DataChunkIDACMPolicyStatus + const DataChunkIDACMSignature + const DataChunkIDBIOSStartup0 + const DataChunkIDBIOSStartup1 + const DataChunkIDBIOSStartup2 + const DataChunkIDBIOSStartup3 + const DataChunkIDBIOSStartup4 + const DataChunkIDBIOSStartup5 + const DataChunkIDBootPolicyManifestSignature + const DataChunkIDIBBDigest + const DataChunkIDKeyManifestSignature + const DataChunkIDUndefined + const DataChunkIDUnknown + const EndOfDataChunkID + const EndOfMeasurementID + const FlowAMDLocality0 + const FlowAMDLocality3 + const FlowAuto + const FlowIntelCBnT0T + const FlowIntelLegacyTXTDisabled + const FlowIntelLegacyTXTEnabled + const FlowIntelLegacyTXTEnabledTPM12 + const FlowLegacyAMDLocality0 + const FlowLegacyAMDLocality3 + const MeasurementIDACM + const MeasurementIDACMDate + const MeasurementIDACMDateInPlace + const MeasurementIDBIOSDirectoryLevel1 + const MeasurementIDBIOSDirectoryLevel1Entries + const MeasurementIDBIOSDirectoryLevel1Header + const MeasurementIDBIOSDirectoryLevel2 + const MeasurementIDBIOSDirectoryLevel2Entries + const MeasurementIDBIOSDirectoryLevel2Header + const MeasurementIDBIOSRTMVolume + const MeasurementIDBIOSStartupModule + const MeasurementIDBootPolicyManifest + const MeasurementIDDXE + const MeasurementIDDeepAnalysis + const MeasurementIDEmbeddedFirmwareStructure + const MeasurementIDFITHeaders + const MeasurementIDFITPointer + const MeasurementIDIBBFake + const MeasurementIDInit + const MeasurementIDKeyManifest + const MeasurementIDMP0C2PMsgRegisters + const MeasurementIDMicrocodePatch + const MeasurementIDPCDFirmwareVendorVersionCode + const MeasurementIDPCDFirmwareVendorVersionData + const MeasurementIDPCR0DATA + const MeasurementIDPMUFirmwareData + const MeasurementIDPMUFirmwareInstructions + const MeasurementIDPSPDirectoryLevel1 + const MeasurementIDPSPDirectoryLevel1Entries + const MeasurementIDPSPDirectoryLevel1Header + const MeasurementIDPSPDirectoryLevel2 + const MeasurementIDPSPDirectoryLevel2Entries + const MeasurementIDPSPDirectoryLevel2Header + const MeasurementIDPSPVersion + const MeasurementIDSCRTMSeparator + const MeasurementIDSeparator + const MeasurementIDUndefined + const MeasurementIDUnknown + const MeasurementIDVideoImageInterpreter + var DefaultMeasurementConfig = MeasurementConfig + var Flows = []Flow + var LoggingDataLimit = uint(20) + var Separator = []byte("\000\000\000\000") + func CalculatePCR(image []byte, initialValue uint8, measureEvents []MeasureEvent, ...) ([]byte, error) + func DetectTPM(firmware Firmware, regs registers.Registers) (tpmdetection.Type, error) + func GetMeasurements(firmware Firmware, pcrID ID, opts ...MeasureOption) (measurements Measurements, flow Flow, debugInfo map[string]interface{}, ...) + func IsAMDPSPFirmware(firmware Firmware) bool + func IsCBnTFirmware(firmware Firmware) bool + func Replay(eventLog *tpmeventlog.TPMEventLog, pcrIndex pcr.ID, ...) ([]byte, error) + type CachedMeasurement struct + func (m CachedMeasurement) Calculate(image []byte, hasher hash.Hash) ([]byte, error) + func (m CachedMeasurement) CompileMeasurableData(image []byte) []byte + type DataChunk struct + ForceData []byte + ID DataChunkID + Range bytes.Range + func NewRangeDataChunk(id DataChunkID, offset uint64, length uint64) *DataChunk + func NewStaticDataChunk(id DataChunkID, data []byte) *DataChunk + func (chunk DataChunk) CompileMeasurableData(image []byte) []byte + func (chunk DataChunk) Copy() *DataChunk + func (chunk DataChunk) String() string + type DataChunkID int + func DataChunkIDBIOSStartup(entryIndex uint) (DataChunkID, error) + func (id *DataChunkID) UnmarshalJSON(b []byte) error + func (id DataChunkID) MarshalJSON() ([]byte, error) + func (id DataChunkID) String() string + type DataChunks []DataChunk + func (s DataChunks) Copy() DataChunks + func (s DataChunks) Find(id DataChunkID) *DataChunk + func (s DataChunks) Ranges() bytes.Ranges + type DataProvider interface + FITEntries func() []fit.Entry + Firmware func() Firmware + PCDData func() pcd.ParsedFirmware + PSPFirmware func() *amd.PSPFirmware + type ErrCollect struct + Err error + MeasurementID MeasurementID + func (err ErrCollect) Error() string + func (err ErrCollect) Unwrap() error + type ErrGetFIT struct + Err error + func (err ErrGetFIT) Error() string + func (err ErrGetFIT) Unwrap() error + type ErrNoSACM struct + func (err ErrNoSACM) Error() string + type ErrNoTXTPolicyRecord struct + func (err *ErrNoTXTPolicyRecord) Error() string + type ErrNotSupportedIndex struct + Description string + Index ID + func (err ErrNotSupportedIndex) Error() string + type ErrPCDVendorVersion struct + func (err ErrPCDVendorVersion) Error() string + type ErrUnexpectedEventType struct + Event tpmeventlog.Event + Reason string + func (err ErrUnexpectedEventType) Error() string + type ErrUnknownPCRID struct + PCRID ID + func (err *ErrUnknownPCRID) Error() string + type Firmware = *uefi.UEFI + type Flow int + func DetectAttestationFlow(firmware Firmware, regs registers.Registers, tpmDevice tpmdetection.Type) (Flow, error) + func DetectMainAttestationFlow(firmware Firmware, regs registers.Registers, tpmDevice tpmdetection.Type) (Flow, error) + func FlowFromString(s string) (Flow, error) + func (f Flow) CPUVendorID() cpuid.Vendor + func (f Flow) MeasurementIDs() MeasurementIDs + func (f Flow) PlatformSecurityID() platformsecurity.ID + func (f Flow) String() string + func (f Flow) TPMLocality() uint8 + func (f Flow) ValidateFlow() ValidateFlow + type ID = types.ID + type MeasureEvent interface + Calculate func(image []byte, hasher hash.Hash) ([]byte, error) + CompileMeasurableData func(image []byte) []byte + GetID func() MeasurementID + type MeasureFunc func(MeasurementConfig, DataProvider) (Measurements, error) + type MeasureOption interface + Apply func(*MeasurementConfig) error + type Measurement struct + Data DataChunks + ID MeasurementID + func MeasureACM(imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasureACMDate(imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasureACMDateInPlace(hashAlg cbnt.Algorithm, imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasureBIOSDirectoryHeader(table *amd.BIOSDirectoryTable, biosDirectoryTableRange pkgbytes.Range) (*Measurement, error) + func MeasureBIOSDirectoryTable(table *amd.BIOSDirectoryTable, biosDirectoryTableRange pkgbytes.Range) (*Measurement, error) + func MeasureBIOSDirectoryTableEntries(table *amd.BIOSDirectoryTable) (*Measurement, error) + func MeasureBIOSStartupModule(imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasureBootPolicy(imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasureDXE(firmware Firmware) (*Measurement, error) + func MeasureFITHeaders(firmware Firmware) (*Measurement, error) + func MeasureFITPointer(firmware Firmware) *Measurement + func MeasureIBB(fitEntries []fit.Entry, firmwareSize uint64) (*Measurement, error) + func MeasureInit() *Measurement + func MeasureKeyManifest(imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasureMP0C2PMsgRegisters(regs registers.Registers) (*Measurement, error) + func MeasurePCDFirmwareVendorVersionCode(pcdData pcd.ParsedFirmware) (*Measurement, error) + func MeasurePCDFirmwareVendorVersionData(pcdData pcd.ParsedFirmware) (*Measurement, error) + func MeasurePCR0Data(config MeasurementConfig, imageSize uint64, fitEntries []fit.Entry) (*Measurement, error) + func MeasurePSPDirectoryHeader(table *amd.PSPDirectoryTable, pspDirectoryTableRange pkgbytes.Range) (*Measurement, error) + func MeasurePSPDirectoryTable(table *amd.PSPDirectoryTable, pspDirectoryTableRange pkgbytes.Range) (*Measurement, error) + func MeasurePSPDirectoryTableEntries(table *amd.PSPDirectoryTable) (*Measurement, error) + func MeasurePSPVersion(image []byte, pspDirectoryLevel1, pspDirectoryLevel2 *amd.PSPDirectoryTable) (*Measurement, error) + func MeasureSCRTMSeparator() *Measurement + func MeasureSeparator() *Measurement + func NewRangeMeasurement(id MeasurementID, offset uint64, length uint64) *Measurement + func NewRangesMeasurement(id MeasurementID, r bytes.Ranges) *Measurement + func NewStaticDataMeasurement(id MeasurementID, data []byte) *Measurement + func (m *Measurement) Calculate(image []byte, hashFunc hash.Hash) ([]byte, error) + func (m *Measurement) Equal(cmp *Measurement) bool + func (m *Measurement) IsFake() bool + func (m *Measurement) Validate(image []byte) error + func (m Measurement) Cache(image []byte, hasher hash.Hash) (*CachedMeasurement, error) + func (m Measurement) CompileMeasurableData(image []byte) []byte + func (m Measurement) Copy() *Measurement + func (m Measurement) EventLogEventTypes() []*tpmeventlog.EventType + func (m Measurement) GetID() MeasurementID + func (m Measurement) NoHash() bool + func (m Measurement) Ranges() bytes.Ranges + func (m Measurement) String() string + type MeasurementConfig struct + FindMissingFakeMeasurements bool + Flow Flow + PCR0DataIbbDigestHashAlgorithm cbnt.Algorithm + Registers registers.Registers + TPMDevice tpmdetection.Type + type MeasurementID int + func (id *MeasurementID) UnmarshalJSON(b []byte) error + func (id MeasurementID) EventLogEventTypes() []*tpmeventlog.EventType + func (id MeasurementID) IsFake() bool + func (id MeasurementID) IsMultiple() bool + func (id MeasurementID) MarshalJSON() ([]byte, error) + func (id MeasurementID) MeasureFunc() MeasureFunc + func (id MeasurementID) NoHash() bool + func (id MeasurementID) PCRIDs() []ID + func (id MeasurementID) String() string + type MeasurementIDs []MeasurementID + func TPMEventTypeToMeasurementIDs(pcrID ID, tpmEventType tpmeventlog.EventType) MeasurementIDs + func (s MeasurementIDs) Contains(id MeasurementID) bool + func (s MeasurementIDs) FilterByPCRIndex(pcrIndex ID) MeasurementIDs + type Measurements []*Measurement + func MeasureEntryFromBIOSDirectory(entryType amd.BIOSDirectoryTableEntryType, optCountCheck *int, ...) (Measurements, error) + func (s Measurements) AddOffset(offset int64) + func (s Measurements) Calculate(image []byte, initialValue uint8, hashFunc hash.Hash, logger Printfer) []byte + func (s Measurements) CompileMeasurableData(image []byte) []byte + func (s Measurements) Copy() Measurements + func (s Measurements) Data() DataChunks + func (s Measurements) FilterByPCRIndex(pcrIndex ID) Measurements + func (s Measurements) Find(id MeasurementID) *Measurement + func (s Measurements) FindOverlapping(byteRange bytes.Range) Measurements + func (s Measurements) Ranges() bytes.Ranges + type Printfer interface + Printf func(fmt string, args ...interface{}) + type SetFindMissingFakeMeasurements bool + func (opt SetFindMissingFakeMeasurements) Apply(config *MeasurementConfig) error + type SetFlow Flow + func (opt SetFlow) Apply(config *MeasurementConfig) error + type SetIBBHashDigest tpm2.Algorithm + func (opt SetIBBHashDigest) Apply(config *MeasurementConfig) error + type SetRegisters registers.Registers + func (opt SetRegisters) Apply(config *MeasurementConfig) error + type SetTPMDevice tpmdetection.Type + func (opt SetTPMDevice) Apply(config *MeasurementConfig) error + type ValidateFlow []Validator + func (s ValidateFlow) Validate(firmware Firmware) error + type ValidateManifests struct + func (v ValidateManifests) Validate(firmware Firmware) error + type Validator interface + Validate func(firmware Firmware) error