From 7359759c7ca408105d19db62e0f01988dbd26b9e Mon Sep 17 00:00:00 2001 From: HaokunXing Date: Wed, 28 Feb 2024 15:05:11 +0800 Subject: [PATCH] common/golang: common sdk for golang (#105) --- .gitignore | 4 +- common/golang/api.go | 40 + common/golang/blob.go | 84 ++ common/golang/blob_test.go | 44 + common/golang/event_log.go | 631 ++++++++ common/golang/event_log_test.go | 53 + common/golang/go.mod | 11 + common/golang/go.sum | 9 + common/golang/ima_recorder.go | 38 + common/golang/ima_recorder_test.go | 15 + common/golang/model.go | 20 + common/golang/tcg.go | 184 +++ common/golang/tdx/quote.go | 640 ++++++++ common/golang/tdx/quote_test.go | 38 + common/golang/tdx/report.go | 44 + common/golang/tdx/rtmr.go | 14 + common/golang/tdx/tdx.go | 96 ++ common/golang/test_data/ccel_data.bin | Bin 0 -> 65536 bytes common/golang/test_data/formated_el.txt | 1537 ++++++++++++++++++++ common/golang/test_data/formated_quote.txt | 128 ++ common/golang/test_data/ima_log.bin | 1 + common/golang/test_data/quote.bin | Bin 0 -> 5026 bytes 22 files changed, 3630 insertions(+), 1 deletion(-) create mode 100644 common/golang/api.go create mode 100644 common/golang/blob.go create mode 100644 common/golang/blob_test.go create mode 100644 common/golang/event_log.go create mode 100644 common/golang/event_log_test.go create mode 100644 common/golang/go.mod create mode 100644 common/golang/go.sum create mode 100644 common/golang/ima_recorder.go create mode 100644 common/golang/ima_recorder_test.go create mode 100644 common/golang/model.go create mode 100644 common/golang/tcg.go create mode 100644 common/golang/tdx/quote.go create mode 100644 common/golang/tdx/quote_test.go create mode 100644 common/golang/tdx/report.go create mode 100644 common/golang/tdx/rtmr.go create mode 100644 common/golang/tdx/tdx.go create mode 100644 common/golang/test_data/ccel_data.bin create mode 100644 common/golang/test_data/formated_el.txt create mode 100644 common/golang/test_data/formated_quote.txt create mode 100644 common/golang/test_data/ima_log.bin create mode 100644 common/golang/test_data/quote.bin diff --git a/.gitignore b/.gitignore index c0e3c5e5..9bc390b3 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,6 @@ __pycache__/ venv/ dist/ -*.egg-info/ \ No newline at end of file +*.egg-info/ + +!common/golang/go.mod diff --git a/common/golang/api.go b/common/golang/api.go new file mode 100644 index 00000000..55f3e7d9 --- /dev/null +++ b/common/golang/api.go @@ -0,0 +1,40 @@ +package cctrusted_base + +type CC_Type int32 + +const ( + TYPE_CC_NONE CC_Type = -1 + TYPE_CC_TPM CC_Type = 0 + TYPE_CC_TDX CC_Type = 1 + TYPE_CC_SEV CC_Type = 2 + TYPE_CC_CCA CC_Type = 3 +) + +func (t CC_Type) String() string { + switch t { + case TYPE_CC_NONE: + return "NONE" + case TYPE_CC_TPM: + return "TPM" + case TYPE_CC_TDX: + return "TDX" + case TYPE_CC_SEV: + return "SEV" + case TYPE_CC_CCA: + return "CCA" + } + return "" +} + +type CCTrustedAPI interface { + GetDefaultAlgorithm() TCG_ALG + + GetCCReport(nonce, userData string) (Report, error) + DumpCCReport(reportBytes []byte) error + + GetMeasurementCount() (int, error) + GetCCMeasurement(index int, alg TCG_ALG) (TcgDigest, error) + + GetCCEventLog(start, count int32) (*EventLogger, error) + ReplayCCEventLog(formatedEventLogs []FormatedTcgEvent) map[int]map[TCG_ALG][]byte +} diff --git a/common/golang/blob.go b/common/golang/blob.go new file mode 100644 index 00000000..b3b563ce --- /dev/null +++ b/common/golang/blob.go @@ -0,0 +1,84 @@ +package cctrusted_base + +import ( + "encoding/binary" + "fmt" + "log" + "unicode" +) + +// BinaryBlob helps parse raw bytes into structure data +type BinaryBlob struct { + Binary []byte + Base int +} + +func NewBinaryBlob(b []byte, base int) BinaryBlob { + return BinaryBlob{ + Binary: b, + Base: base, + } +} + +func (b *BinaryBlob) ParseUint8(start int) (uint8, int) { + return b.Binary[start], start + 1 +} + +func (b *BinaryBlob) ParseUint16(start int) (uint16, int) { + val := binary.LittleEndian.Uint16(b.Binary[start : start+2]) + return val, start + 2 +} + +func (b *BinaryBlob) ParseUint32(start int) (uint32, int) { + val := binary.LittleEndian.Uint32(b.Binary[start : start+4]) + return val, start + 4 +} + +func (b *BinaryBlob) ParseUint64(start int) (uint64, int) { + val := binary.LittleEndian.Uint64(b.Binary[start : start+8]) + return val, start + 8 +} + +func (b *BinaryBlob) ParseBytes(start, count int) ([]byte, int) { + return b.Binary[start : start+count], start + count +} + +func (b *BinaryBlob) Dump() { + l := log.Default() + index := 0 + length := len(b.Binary) + baseAddr := "" + hexStr := "" + readableStr := "" + for ; index < length; index++ { + if index%16 == 0 { + if len(baseAddr) != 0 { + l.Println(baseAddr, hexStr, readableStr) + } + baseAddr = fmt.Sprintf("%08x", b.Base+index/16*16) + hexStr = "" + readableStr = "" + } + chr := b.Binary[index] + hexStr += fmt.Sprintf("%02x ", chr) + switch chr { + case 0xC, 0xB, 0xA, 0xD, 0x9: + readableStr += "." + default: + + if !unicode.IsPrint(rune(chr)) { + readableStr += "." + } else { + readableStr += string(chr) + } + } + } + if index%16 != 0 { + for i := 0; i < 16-index%16; i++ { + hexStr += " " + } + l.Println(baseAddr, hexStr, readableStr) + } else if index == length { + l.Println(baseAddr, hexStr, readableStr) + } +} diff --git a/common/golang/blob_test.go b/common/golang/blob_test.go new file mode 100644 index 00000000..4c98f78f --- /dev/null +++ b/common/golang/blob_test.go @@ -0,0 +1,44 @@ +package cctrusted_base + +import ( + "bufio" + "bytes" + "log" + "strings" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestBlobDump(t *testing.T) { + content := []byte("2 67c70809bd405ea82081e8f1eb2ca16108bce307f5f139492da641e08e07ec99e2163649f29323a5f5963fe07bb06cc6 ima-ng sha384:cd01ce7f8d1a658f8fdaf33bfb18a7bf9bc3d45386f16be3caf22ef9cb32a26ec53d8b8b74c76b94b744bdf191506cb3 boot_aggregate") + expected := []string{ + "00000000 32 20 36 37 63 37 30 38 30 39 62 64 34 30 35 65 2 67c70809bd405e", + "00000010 61 38 32 30 38 31 65 38 66 31 65 62 32 63 61 31 a82081e8f1eb2ca1", + "00000020 36 31 30 38 62 63 65 33 30 37 66 35 66 31 33 39 6108bce307f5f139", + "00000030 34 39 32 64 61 36 34 31 65 30 38 65 30 37 65 63 492da641e08e07ec", + "00000040 39 39 65 32 31 36 33 36 34 39 66 32 39 33 32 33 99e2163649f29323", + "00000050 61 35 66 35 39 36 33 66 65 30 37 62 62 30 36 63 a5f5963fe07bb06c", + "00000060 63 36 20 69 6d 61 2d 6e 67 20 73 68 61 33 38 34 c6 ima-ng sha384", + "00000070 3a 63 64 30 31 63 65 37 66 38 64 31 61 36 35 38 :cd01ce7f8d1a658", + "00000080 66 38 66 64 61 66 33 33 62 66 62 31 38 61 37 62 f8fdaf33bfb18a7b", + "00000090 66 39 62 63 33 64 34 35 33 38 36 66 31 36 62 65 f9bc3d45386f16be", + "000000a0 33 63 61 66 32 32 65 66 39 63 62 33 32 61 32 36 3caf22ef9cb32a26", + "000000b0 65 63 35 33 64 38 62 38 62 37 34 63 37 36 62 39 ec53d8b8b74c76b9", + "000000c0 34 62 37 34 34 62 64 66 31 39 31 35 30 36 63 62 4b744bdf191506cb", + "000000d0 33 20 62 6f 6f 74 5f 61 67 67 72 65 67 61 74 65 3 boot_aggregate", + } + + var buf bytes.Buffer + log.SetOutput(&buf) + blob := NewBinaryBlob(content, 0) + blob.Dump() + + r := strings.NewReader(buf.String()) + s := bufio.NewScanner(r) + index := 0 + for s.Scan() { + assert.Contains(t, s.Text(), expected[index]) + index++ + } +} diff --git a/common/golang/event_log.go b/common/golang/event_log.go new file mode 100644 index 00000000..fd10f326 --- /dev/null +++ b/common/golang/event_log.go @@ -0,0 +1,631 @@ +package cctrusted_base + +import ( + "bufio" + "bytes" + "crypto/sha1" + "crypto/sha256" + "crypto/sha512" + "encoding/hex" + "errors" + "fmt" + "hash" + "log" + "strconv" + "strings" +) + +type TcgDigest struct { + AlgID TCG_ALG + Hash []byte +} + +type TcgEventLogParser struct { + RecNum int + ImrIndex int + EventType TcgEventType + Digests []TcgDigest + EventSize int + Event []byte + ExtraInfo map[string]string +} + +func (p *TcgEventLogParser) Format(format TcgEventFormat) FormatedTcgEvent { + switch format { + case TCG_PCCLIENT_FORMAT: + return p.formatTcgPCClient() + case TCG_CANONICAL_FORMAT: + return p.formatTcgCanonical() + } + return nil +} + +func (p *TcgEventLogParser) formatTcgPCClient() FormatedTcgEvent { + if p.EventType == EV_NO_ACTION && p.RecNum == 0 && p.ImrIndex == 0 { + event := &TcgPcClientImrEvent{ + ImrIndex: uint32(p.ImrIndex), + EventType: p.EventType, + EventDataSize: uint32(p.EventSize), + Event: p.Event, + FormatType: TCG_PCCLIENT_FORMAT, + } + copy(event.Digest[:], p.Digests[0].Hash) + + return event + } + + return &TcgImrEvent{ + ImrIndex: uint32(p.ImrIndex), + EventType: p.EventType, + Digests: p.Digests, + EventSize: uint32(p.EventSize), + Event: p.Event, + FormatType: TCG_PCCLIENT_FORMAT, + } +} + +func (p *TcgEventLogParser) formatTcgCanonical() FormatedTcgEvent { + // TODO: canonical format + return nil +} + +type FormatedTcgEvent interface { + Dump() + GetFormatType() TcgEventFormat + GetImrIndex() uint32 + GetEventType() TcgEventType + GetDigests() []TcgDigest +} + +var _ FormatedTcgEvent = (*TcgImrEvent)(nil) + +type TcgImrEvent struct { + ImrIndex uint32 + EventType TcgEventType + Digests []TcgDigest + EventSize uint32 + Event []byte + FormatType TcgEventFormat +} + +// GetDigests implements FormatedTcgEvent. +func (e *TcgImrEvent) GetDigests() []TcgDigest { + return e.Digests +} + +// GetEventType implements FormatedTcgEvent. +func (e *TcgImrEvent) GetEventType() TcgEventType { + return e.EventType +} + +// GetImrIndex implements FormatedTcgEvent. +func (e *TcgImrEvent) GetImrIndex() uint32 { + return e.ImrIndex +} + +// FormatType implements FormatedTcgEvent. +func (e *TcgImrEvent) GetFormatType() TcgEventFormat { + return e.FormatType +} + +// Dump implements FormatedTcgEvent. +func (e *TcgImrEvent) Dump() { + l := log.Default() + l.Println("----------------------------------Event Log Entry---------------------------------") + l.Printf("IMR : %d\n", e.ImrIndex) + l.Printf("Type : 0x%X (%v)\n", uint32(e.EventType), e.EventType) + count := 0 + for _, digest := range e.Digests { + l.Printf("Algorithm_id[%d] : %d (%v) \n", count, digest.AlgID, digest.AlgID) + l.Printf("Digest[%d]:\n", count) + digestBlob := NewBinaryBlob(digest.Hash, 0) + digestBlob.Dump() + count += 1 + } + l.Println("Event:") + eventBlob := NewBinaryBlob(e.Event, 0) + eventBlob.Dump() +} + +var _ FormatedTcgEvent = (*TcgPcClientImrEvent)(nil) + +type TcgPcClientImrEvent struct { + ImrIndex uint32 + EventType TcgEventType + Digest [20]byte + EventDataSize uint32 + Event []byte + FormatType TcgEventFormat +} + +// GetDigests implements FormatedTcgEvent. +func (e *TcgPcClientImrEvent) GetDigests() []TcgDigest { + return nil +} + +// GetEventType implements FormatedTcgEvent. +func (e *TcgPcClientImrEvent) GetEventType() TcgEventType { + return e.EventType +} + +// GetImrIndex implements FormatedTcgEvent. +func (e *TcgPcClientImrEvent) GetImrIndex() uint32 { + return e.ImrIndex +} + +// FormatType implements FormatedTcgEvent. +func (e *TcgPcClientImrEvent) GetFormatType() TcgEventFormat { + return e.FormatType +} + +// Dump implements FormatedTcgEvent. +func (e *TcgPcClientImrEvent) Dump() { + l := log.Default() + l.Println("--------------------Header Specification ID Event--------------------------") + l.Printf("IMR : %d\n", e.ImrIndex) + l.Printf("Type : 0x%X (%v) \n", uint32(e.EventType), e.EventType) + l.Println("Digest:") + digestBlob := NewBinaryBlob(e.Digest[:], 0) + digestBlob.Dump() + l.Println("Event:") + eventBlob := NewBinaryBlob(e.Event, 0) + eventBlob.Dump() +} + +type TcgEfiSpecIdEventAlgorithmSize struct { + AlgorithmId uint16 + DigestSize uint16 +} + +type TcgEfiSpecIdEvent struct { + Signature [16]byte + PlatformClass uint32 + SpecVersionMinor uint8 + SpecVersionMajor uint8 + SpecErrata uint8 + UintnSize uint8 + NumberOfAlgorithms uint32 + DigestSizes []TcgEfiSpecIdEventAlgorithmSize + VendorInfoSize uint8 + VendorInfo []byte +} + +type EventLogger struct { + bootTimeLog []byte + runTimeLog []byte + imrCount [24]int + count int + eventFormat TcgEventFormat + tcgEventLogs []FormatedTcgEvent + specIdHeaderEvent *TcgEfiSpecIdEvent + isSelected bool +} + +func NewEventLogger(bootTimeLog, runTimeLog []byte, eventFormat TcgEventFormat) *EventLogger { + l := &EventLogger{ + bootTimeLog: bootTimeLog, + runTimeLog: runTimeLog, + eventFormat: eventFormat, + imrCount: [24]int{}, + count: 0, + tcgEventLogs: make([]FormatedTcgEvent, 0), + } + return l +} + +func (l *EventLogger) Parse() error { + if err := l.parseEventLog(); err != nil { + return err + } + if err := l.parseIMALog(); err != nil { + return err + } + return nil +} + +func (l *EventLogger) Dump(format QuoteDumpFormat) { + lg := log.Default() + + if format == QuoteDumpFormatRaw { + + lg.Printf("RAW UEFI EVENT LOG DATA: ---------------------------------------------------\n") + blob := NewBinaryBlob(l.bootTimeLog, 0) + blob.Dump() + if len(l.runTimeLog) > 0 { + blob := NewBinaryBlob(l.runTimeLog, 0) + blob.Dump() + } + lg.Printf("End: -----------------------------------------------------------------------\n") + return + } + + lg.Printf("Event Log Entries:\n") + for _, el := range l.tcgEventLogs { + el.Dump() + } +} + +func (l *EventLogger) Count() int { + return l.count +} + +func (l *EventLogger) IsSelected() bool { + return l.isSelected +} + +func (l *EventLogger) Select(start, count int) (*EventLogger, error) { + if l.isSelected { + return nil, errors.New("the eventlog is selected, can not be selected again") + } + if start < 0 || start >= l.count { + return nil, fmt.Errorf("the start %d is out of valid range [%d, %d)", start, 0, l.count) + } + if count <= 0 || start+count >= l.count { + return nil, fmt.Errorf("the count %d is <=0 or > %d the max valid count", 0, l.count-start) + } + + l.tcgEventLogs = l.tcgEventLogs[start : start+count] + l.isSelected = true + return l, nil +} + +func (l *EventLogger) EventLog() []FormatedTcgEvent { + return l.tcgEventLogs +} + +func ReplayFormatedEventLog(formatedEventLogs []FormatedTcgEvent) map[int]map[TCG_ALG][]byte { + ret := make(map[int]map[TCG_ALG][]byte, 0) + lg := log.Default() + for _, event := range formatedEventLogs { + if !isSupportedFormat(event) { + lg.Println("event with unknown format. Skip this one...") + continue + } + if event.GetEventType() == EV_NO_ACTION { + continue + } + + idx := int(event.GetImrIndex()) + if _, ok := ret[idx]; !ok { + ret[idx] = make(map[TCG_ALG][]byte, 0) + } + + for _, digest := range event.GetDigests() { + var hash hash.Hash + alg := digest.AlgID + switch alg { + case TPM_ALG_SHA1: + hash = sha1.New() + case TPM_ALG_SHA384: + hash = sha512.New384() + case TPM_ALG_SHA256: + hash = sha256.New() + case TPM_ALG_SHA512: + hash = sha512.New() + default: + lg.Printf("Unsupported hash algorithm %v\n", alg) + continue + } + + val := make([]byte, TPM_ALG_HASH_DIGEST_SIZE_TABLE[alg]) + if b, ok := ret[idx][alg]; !ok { + ret[idx][alg] = make([]byte, 0) + } else { + val = b + } + hash.Write(append(val, digest.Hash...)) + ret[idx][alg] = hash.Sum(nil) + } + + } + return ret +} + +func (l *EventLogger) Replay() map[int]map[TCG_ALG][]byte { + return ReplayFormatedEventLog(l.tcgEventLogs) + // ret := make(map[int]map[TCG_ALG][]byte, 0) + // lg := log.Default() + // for _, event := range l.tcgEventLogs { + // if !l.isSupportedFormat(event) { + // lg.Println("event with unknown format. Skip this one...") + // continue + // } + // if event.GetEventType() == EV_NO_ACTION { + // continue + // } + + // idx := int(event.GetImrIndex()) + // if _, ok := ret[idx]; !ok { + // ret[idx] = make(map[TCG_ALG][]byte, 0) + // } + + // for _, digest := range event.GetDigests() { + // var hash hash.Hash + // alg := digest.AlgID + // switch alg { + // case TPM_ALG_SHA1: + // hash = sha1.New() + // case TPM_ALG_SHA384: + // hash = sha512.New384() + // case TPM_ALG_SHA256: + // hash = sha256.New() + // case TPM_ALG_SHA512: + // hash = sha512.New() + // default: + // lg.Printf("Unsupported hash algorithm %v\n", alg) + // continue + // } + + // val := make([]byte, TPM_ALG_HASH_DIGEST_SIZE_TABLE[alg]) + // if b, ok := ret[idx][alg]; !ok { + // ret[idx][alg] = make([]byte, 0) + // } else { + // val = b + // } + // hash.Write(append(val, digest.Hash...)) + // ret[idx][alg] = hash.Sum(nil) + // } + + // } + // return ret +} + +func isSupportedFormat(e FormatedTcgEvent) bool { + switch e.GetFormatType() { + case TCG_PCCLIENT_FORMAT: + fallthrough + case TCG_CANONICAL_FORMAT: + return true + } + return false +} + +type EventLogBlob struct { + BinaryBlob +} + +func NewEventLogBlob(b []byte) EventLogBlob { + return EventLogBlob{ + BinaryBlob{b, 0}, + } +} + +func (b *EventLogBlob) Meta(start int) (uint32, TcgEventType, int, error) { + imr, idx := b.ParseUint32(start) + eventType, idx := b.ParseUint32(idx) + return imr, TcgEventType(eventType), idx, nil +} + +func (b *EventLogBlob) ParseSpecIdEventLog(start, recNum, imr int, eventType TcgEventType) (*TcgEventLogParser, *TcgEfiSpecIdEvent, int, error) { + hash, idx := b.ParseBytes(start, 20) + digest := TcgDigest{ + TPM_ALG_ERROR, + hash, + } + + headerEventSize, idx := b.ParseUint32(idx) + headerEvent, _ := b.ParseBytes(idx, int(headerEventSize)) + + specificationIdHeader := &TcgEventLogParser{ + RecNum: recNum, + ImrIndex: imr - 1, + EventType: eventType, + Digests: []TcgDigest{digest}, + EventSize: int(headerEventSize), + Event: headerEvent, + } + + // Parse EFI Spec Id Event structure + specIdEvent, idx, err := b.parseEFISpecIdEvent(idx) + if err != nil { + return nil, nil, idx, err + } + return specificationIdHeader, specIdEvent, idx, nil +} + +func (b *EventLogBlob) ParseEventLog(start, recNum, imr int, eventType TcgEventType, digestSizes []TcgEfiSpecIdEventAlgorithmSize) (*TcgEventLogParser, int, error) { + cnt, idx := b.ParseUint32(start) + digests := make([]TcgDigest, 0) + for i := uint32(0); i < cnt; i++ { + algId, next := b.ParseUint16(idx) + size := findDigestSize(algId, digestSizes) + hash, next := b.ParseBytes(next, int(size)) + digests = append(digests, TcgDigest{ + TCG_ALG(algId), + hash, + }) + idx = next + } + eventSize, idx := b.ParseUint32(idx) + eventBytes, idx := b.ParseBytes(idx, int(eventSize)) + event := &TcgEventLogParser{ + RecNum: recNum, + ImrIndex: imr - 1, + EventType: eventType, + Digests: digests, + EventSize: int(eventSize), + Event: eventBytes, + } + return event, idx, nil +} + +func findDigestSize(algId uint16, digestSizes []TcgEfiSpecIdEventAlgorithmSize) uint16 { + for _, elem := range digestSizes { + if elem.AlgorithmId == algId { + return elem.DigestSize + } + } + return 0 +} + +func (b *EventLogBlob) parseEFISpecIdEvent(start int) (*TcgEfiSpecIdEvent, int, error) { + signature, idx := b.ParseBytes(start, 16) + platformCls, idx := b.ParseUint32(idx) + versionMajor, idx := b.ParseUint8(idx) + versionMinor, idx := b.ParseUint8(idx) + errata, idx := b.ParseUint8(idx) + uintSize, idx := b.ParseUint8(idx) + numOfAlgo, idx := b.ParseUint32(idx) + digestSizes := make([]TcgEfiSpecIdEventAlgorithmSize, 0) + for i := uint32(0); i < numOfAlgo; i++ { + algoId, next := b.ParseUint16(idx) + size, next := b.ParseUint16(next) + digestSizes = append(digestSizes, TcgEfiSpecIdEventAlgorithmSize{ + AlgorithmId: algoId, + DigestSize: size, + }) + idx = next + } + vendorSize, idx := b.ParseUint8(idx) + vendorInfo, idx := b.ParseBytes(idx, int(vendorSize)) + + event := &TcgEfiSpecIdEvent{ + PlatformClass: platformCls, + SpecVersionMinor: versionMajor, + SpecVersionMajor: versionMinor, + SpecErrata: errata, + UintnSize: uintSize, + NumberOfAlgorithms: numOfAlgo, + DigestSizes: digestSizes, + VendorInfoSize: vendorSize, + VendorInfo: vendorInfo, + } + copy(event.Signature[:], signature) + + return event, idx, nil +} + +func (l *EventLogger) getRecordNumber(imr int) int { + cnt := l.imrCount[imr] + l.imrCount[imr]++ + return cnt +} + +func (l *EventLogger) parseEventLog() error { + blob := NewEventLogBlob(l.bootTimeLog) + idx := 0 + length := len(l.bootTimeLog) + for idx < length { + imr, eventType, next, err := blob.Meta(idx) + idx = next + if err != nil { + return err + } + if imr == 0xFFFFFFFF { + break + } + var parser *TcgEventLogParser + recNum := l.getRecordNumber(int(imr - 1)) + if eventType == EV_NO_ACTION && l.count == 0 { + specIdEventParser, specIdEvent, next, err := + blob.ParseSpecIdEventLog(idx, recNum, int(imr), eventType) + if err != nil { + return err + } + parser = specIdEventParser + idx = next + l.specIdHeaderEvent = specIdEvent + } else { + eventParser, next, err := + blob.ParseEventLog(idx, recNum, int(imr), eventType, l.specIdHeaderEvent.DigestSizes) + if err != nil { + return err + } + parser = eventParser + idx = next + } + + if parser == nil { + break + } + formatedLog := parser.Format(l.eventFormat) + l.tcgEventLogs = append(l.tcgEventLogs, formatedLog) + l.count++ + } + + return nil +} + +type IMALogBlob struct { + BinaryBlob + *bufio.Scanner +} + +func NewIMALogBlob(b []byte) IMALogBlob { + blob := IMALogBlob{ + BinaryBlob: BinaryBlob{b, 0}, + } + r := bytes.NewReader(blob.Binary) + s := bufio.NewScanner(r) + blob.Scanner = s + return blob +} + +func (b *IMALogBlob) ParseLine(line []byte) (*TcgEventLogParser, error) { + elements := strings.Split(string(line), " ") + + if len(elements) < 4 { + return nil, errors.New("unrecognized ima log: " + string(line)) + } + imrIdx, err := strconv.Atoi(elements[0]) + if err != nil { + return nil, err + } + + hexDigest := elements[1] + lenOfDigest := len(hexDigest) / 2 + algId := TPM_ALG_ERROR + for k, v := range TPM_ALG_HASH_DIGEST_SIZE_TABLE { + if lenOfDigest == v { + algId = k + break + } + } + + digest := TcgDigest{ + algId, + make([]byte, lenOfDigest), + } + hash, err := hex.DecodeString(hexDigest) + if err != nil { + return nil, err + } + copy(digest.Hash, hash) + + extraInfo := map[string]string{ + "template_name": elements[2], + } + + event := []byte(strings.Join(elements[3:], " ")) + eventSize := len(event) + + parser := &TcgEventLogParser{ + RecNum: -1, + ImrIndex: imrIdx, + EventType: IMA_MEASUREMENT_EVENT, + Digests: []TcgDigest{digest}, + EventSize: eventSize, + Event: event, + ExtraInfo: extraInfo, + } + return parser, nil +} + +func (l *EventLogger) parseIMALog() error { + if len(l.runTimeLog) <= 0 { + return nil + } + blob := NewIMALogBlob(l.runTimeLog) + for blob.Scan() { + line := bytes.TrimSpace(blob.Bytes()) + parser, err := blob.ParseLine(line) + if err != nil { + return err + } + + recNum := l.getRecordNumber(parser.ImrIndex) + parser.RecNum = recNum + l.tcgEventLogs = append(l.tcgEventLogs, parser.Format(l.eventFormat)) + } + return nil +} diff --git a/common/golang/event_log_test.go b/common/golang/event_log_test.go new file mode 100644 index 00000000..4abafb39 --- /dev/null +++ b/common/golang/event_log_test.go @@ -0,0 +1,53 @@ +package cctrusted_base + +import ( + "bufio" + "bytes" + "encoding/hex" + "log" + "os" + "strings" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestEventLog(t *testing.T) { + var buf bytes.Buffer + log.SetOutput(&buf) + + elBin, err := os.ReadFile("./test_data/ccel_data.bin") + assert.Nil(t, err) + imaBin, err := os.ReadFile("./test_data/ima_log.bin") + assert.Nil(t, err) + expected, err := os.ReadFile("./test_data/formated_el.txt") + assert.Nil(t, err) + expectedImrs := map[int]string{ + 0: "57518d2150d2a7a402a5e7370db779474db869bed15d83ab02467ed90646d8b9b8e5d34175f79ff00de3c346a7ad9f6a", + 1: "6cef5b111a32290d4dbd88af175676172d31894ed3a71e567ef51c8c0d84309bb589e5b6535c9cc6dbd76a566d59c629", + 2: "0ba032df5987b49b7c36aa314b8c599f3daf16ad1d1b93c824f8a2d69522139b4021f6f256be23d80d119d36bff8e7e4", + } + + el := NewEventLogger(elBin, imaBin, TCG_PCCLIENT_FORMAT) + el.Parse() + el.Dump(QuoteDumpFormatHuman) + + r := strings.NewReader(buf.String()) + s := bufio.NewScanner(r) + + r2 := strings.NewReader(string(expected)) + s2 := bufio.NewScanner(r2) + + for s.Scan() && s2.Scan() { + assert.EqualValues(t, s.Text()[20:], s2.Text()[20:]) + } + + replay := el.Replay() + for idx, elem := range replay { + for k, v := range elem { + assert.Equal(t, k, TPM_ALG_SHA384) + assert.EqualValues(t, hex.EncodeToString(v), expectedImrs[idx]) + } + } + +} diff --git a/common/golang/go.mod b/common/golang/go.mod new file mode 100644 index 00000000..5d0ef6cc --- /dev/null +++ b/common/golang/go.mod @@ -0,0 +1,11 @@ +module github.com/cc-api/cc-trusted-api/common/golang/cctrusted_base + +go 1.22.0 + +require github.com/stretchr/testify v1.8.4 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/common/golang/go.sum b/common/golang/go.sum new file mode 100644 index 00000000..8cf66553 --- /dev/null +++ b/common/golang/go.sum @@ -0,0 +1,9 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/common/golang/ima_recorder.go b/common/golang/ima_recorder.go new file mode 100644 index 00000000..0ffdfebc --- /dev/null +++ b/common/golang/ima_recorder.go @@ -0,0 +1,38 @@ +package cctrusted_base + +import "os" + +const ( + IMA_DATA_FILE = "/sys/kernel/security/integrity/ima/ascii_runtime_measurements" +) + +type IMARecorder interface { + FullIMALog() ([]byte, error) + ProbeIMARecorder() error +} + +var _ IMARecorder = (*DefaultIMARecorder)(nil) + +type DefaultIMARecorder struct { + recoder string + rawIMALog []byte +} + +// ProbeRecorder implements IMARecorder. +func (r *DefaultIMARecorder) ProbeIMARecorder() error { + r.recoder = IMA_DATA_FILE + if _, err := os.Stat(r.recoder); err != nil { + return err + } + return nil +} + +// FullIMALog implements IMARecorder. +func (r *DefaultIMARecorder) FullIMALog() ([]byte, error) { + log, err := os.ReadFile(r.recoder) + if err != nil { + return nil, err + } + r.rawIMALog = log + return r.rawIMALog, nil +} diff --git a/common/golang/ima_recorder_test.go b/common/golang/ima_recorder_test.go new file mode 100644 index 00000000..b26716a5 --- /dev/null +++ b/common/golang/ima_recorder_test.go @@ -0,0 +1,15 @@ +package cctrusted_base + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestDefaultIMARecorder(t *testing.T) { + r := &DefaultIMARecorder{} + r.ProbeIMARecorder() + l, err := r.FullIMALog() + assert.Nil(t, err) + assert.NotNil(t, l) +} diff --git a/common/golang/model.go b/common/golang/model.go new file mode 100644 index 00000000..184d63dd --- /dev/null +++ b/common/golang/model.go @@ -0,0 +1,20 @@ +package cctrusted_base + +type QuoteDumpFormat string +type DeviceVersion string + +const ( + QuoteDumpFormatRaw QuoteDumpFormat = "raw" + QuoteDumpFormatHuman QuoteDumpFormat = "human" +) + +type IMRGroup struct { + MaxIndex int + Group []TcgDigest +} + +type Report interface { + InitFromBytes([]byte) error + IMRGroup() IMRGroup + Dump(QuoteDumpFormat) +} diff --git a/common/golang/tcg.go b/common/golang/tcg.go new file mode 100644 index 00000000..3f466a7a --- /dev/null +++ b/common/golang/tcg.go @@ -0,0 +1,184 @@ +package cctrusted_base + +type TcgEventFormat string +type TcgEventType uint32 +type TCG_ALG int32 + +const ( + TPM_ALG_ERROR TCG_ALG = 0x0 + TPM_ALG_RSA TCG_ALG = 0x1 + TPM_ALG_SHA1 TCG_ALG = 0x4 + TPM_ALG_SHA256 TCG_ALG = 0xB + TPM_ALG_SHA384 TCG_ALG = 0xC + TPM_ALG_SHA512 TCG_ALG = 0xD + TPM_ALG_ECDSA TCG_ALG = 0x18 +) + +func GetDefaultTPMAlg() TCG_ALG { + return TPM_ALG_SHA384 +} + +func (alg TCG_ALG) String() string { + switch alg { + case TPM_ALG_ERROR: + return "TPM_ALG_ERROR" + case TPM_ALG_RSA: + return "TPM_ALG_RSA" + case TPM_ALG_SHA1: + return "TPM_ALG_SHA1" + case TPM_ALG_SHA256: + return "TPM_ALG_SHA256" + case TPM_ALG_SHA384: + return "TPM_ALG_SHA384" + case TPM_ALG_SHA512: + return "TPM_ALG_SHA512" + case TPM_ALG_ECDSA: + return "TPM_ALG_ECDSA" + } + return "" +} + +var ( + TPM_ALG_HASH_DIGEST_SIZE_TABLE = map[TCG_ALG]int{ + TPM_ALG_SHA1: 20, + TPM_ALG_SHA256: 32, + TPM_ALG_SHA384: 48, + TPM_ALG_SHA512: 64, + } +) + +const ( + TCG_PCCLIENT_FORMAT TcgEventFormat = "tcg_pcclient" + TCG_CANONICAL_FORMAT TcgEventFormat = "tcg_canonical" + + EV_PREBOOT_CERT TcgEventType = 0x0 + EV_POST_CODE TcgEventType = 0x1 + EV_UNUSED TcgEventType = 0x2 + EV_NO_ACTION TcgEventType = 0x3 + EV_SEPARATOR TcgEventType = 0x4 + EV_ACTION TcgEventType = 0x5 + EV_EVENT_TAG TcgEventType = 0x6 + EV_S_CRTM_CONTENTS TcgEventType = 0x7 + EV_S_CRTM_VERSION TcgEventType = 0x8 + EV_CPU_MICROCODE TcgEventType = 0x9 + EV_PLATFORM_CONFIG_FLAGS TcgEventType = 0xa + EV_TABLE_OF_DEVICES TcgEventType = 0xb + EV_COMPACT_HASH TcgEventType = 0xc + EV_IPL TcgEventType = 0xd + EV_IPL_PARTITION_DATA TcgEventType = 0xe + EV_NONHOST_CODE TcgEventType = 0xf + EV_NONHOST_CONFIG TcgEventType = 0x10 + EV_NONHOST_INFO TcgEventType = 0x11 + EV_OMIT_BOOT_DEVICE_EVENTS TcgEventType = 0x12 + EV_POST_CODE2 TcgEventType = 0x13 + // IMA event type defined aligned with MSFT + IMA_MEASUREMENT_EVENT TcgEventType = 0x14 + EV_EFI_EVENT_BASE TcgEventType = 0x80000000 + EV_EFI_VARIABLE_DRIVER_CONFIG TcgEventType = EV_EFI_EVENT_BASE + 0x1 + EV_EFI_VARIABLE_BOOT TcgEventType = EV_EFI_EVENT_BASE + 0x2 + EV_EFI_BOOT_SERVICES_APPLICATION TcgEventType = EV_EFI_EVENT_BASE + 0x3 + EV_EFI_BOOT_SERVICES_DRIVER TcgEventType = EV_EFI_EVENT_BASE + 0x4 + EV_EFI_RUNTIME_SERVICES_DRIVER TcgEventType = EV_EFI_EVENT_BASE + 0x5 + EV_EFI_GPT_EVENT TcgEventType = EV_EFI_EVENT_BASE + 0x6 + EV_EFI_ACTION TcgEventType = EV_EFI_EVENT_BASE + 0x7 + EV_EFI_PLATFORM_FIRMWARE_BLOB TcgEventType = EV_EFI_EVENT_BASE + 0x8 + EV_EFI_HANDOFF_TABLES TcgEventType = EV_EFI_EVENT_BASE + 0x9 + EV_EFI_PLATFORM_FIRMWARE_BLOB2 TcgEventType = EV_EFI_EVENT_BASE + 0xa + EV_EFI_HANDOFF_TABLES2 TcgEventType = EV_EFI_EVENT_BASE + 0xb + EV_EFI_VARIABLE_BOOT2 TcgEventType = EV_EFI_EVENT_BASE + 0xc + EV_EFI_GPT_EVENT2 TcgEventType = EV_EFI_EVENT_BASE + 0xd + EV_EFI_HCRTM_EVENT TcgEventType = EV_EFI_EVENT_BASE + 0x10 + EV_EFI_VARIABLE_AUTHORITY TcgEventType = EV_EFI_EVENT_BASE + 0xe0 + EV_EFI_SPDM_FIRMWARE_BLOB TcgEventType = EV_EFI_EVENT_BASE + 0xe1 + EV_EFI_SPDM_FIRMWARE_CONFIG TcgEventType = EV_EFI_EVENT_BASE + 0xe2 + EV_EFI_SPDM_DEVICE_POLICY TcgEventType = EV_EFI_EVENT_BASE + 0xe3 + EV_EFI_SPDM_DEVICE_AUTHORITY TcgEventType = EV_EFI_EVENT_BASE + 0xe4 +) + +func (t TcgEventType) String() string { + switch t { + case EV_PREBOOT_CERT: + return "EV_PREBOOT_CERT" + case EV_POST_CODE: + return "EV_POST_CODE" + case EV_UNUSED: + return "EV_UNUSED" + case EV_NO_ACTION: + return "EV_NO_ACTION" + case EV_SEPARATOR: + return "EV_SEPARATOR" + case EV_ACTION: + return "EV_ACTION" + case EV_EVENT_TAG: + return "EV_EVENT_TAG" + case EV_S_CRTM_CONTENTS: + return "EV_S_CRTM_CONTENTS" + case EV_S_CRTM_VERSION: + return "EV_S_CRTM_VERSION" + case EV_CPU_MICROCODE: + return "EV_CPU_MICROCODE" + case EV_PLATFORM_CONFIG_FLAGS: + return "EV_PLATFORM_CONFIG_FLAGS" + case EV_TABLE_OF_DEVICES: + return "EV_TABLE_OF_DEVICES" + case EV_COMPACT_HASH: + return "EV_COMPACT_HASH" + case EV_IPL: + return "EV_IPL" + case EV_IPL_PARTITION_DATA: + return "EV_IPL_PARTITION_DATA" + case EV_NONHOST_CODE: + return "EV_NONHOST_CODE" + case EV_NONHOST_CONFIG: + return "EV_NONHOST_CONFIG" + case EV_NONHOST_INFO: + return "EV_NONHOST_INFO" + case EV_OMIT_BOOT_DEVICE_EVENTS: + return "EV_OMIT_BOOT_DEVICE_EVENTS" + case EV_POST_CODE2: + return "EV_POST_CODE2" + case IMA_MEASUREMENT_EVENT: + return "IMA_MEASUREMENT_EVENT" + case EV_EFI_EVENT_BASE: + return "EV_EFI_EVENT_BASE" + case EV_EFI_VARIABLE_DRIVER_CONFIG: + return "EV_EFI_VARIABLE_DRIVER_CONFIG" + case EV_EFI_VARIABLE_BOOT: + return "EV_EFI_VARIABLE_BOOT" + case EV_EFI_BOOT_SERVICES_APPLICATION: + return "EV_EFI_BOOT_SERVICES_APPLICATION" + case EV_EFI_BOOT_SERVICES_DRIVER: + return "EV_EFI_BOOT_SERVICES_DRIVER" + case EV_EFI_RUNTIME_SERVICES_DRIVER: + return "EV_EFI_RUNTIME_SERVICES_DRIVER" + case EV_EFI_GPT_EVENT: + return "EV_EFI_GPT_EVENT" + case EV_EFI_ACTION: + return "EV_EFI_ACTION" + case EV_EFI_PLATFORM_FIRMWARE_BLOB: + return "EV_EFI_PLATFORM_FIRMWARE_BLOB" + case EV_EFI_HANDOFF_TABLES: + return "EV_EFI_HANDOFF_TABLES" + case EV_EFI_PLATFORM_FIRMWARE_BLOB2: + return "EV_EFI_PLATFORM_FIRMWARE_BLOB2" + case EV_EFI_HANDOFF_TABLES2: + return "EV_EFI_HANDOFF_TABLES2" + case EV_EFI_VARIABLE_BOOT2: + return "EV_EFI_VARIABLE_BOOT2" + case EV_EFI_GPT_EVENT2: + return "EV_EFI_GPT_EVENT2" + case EV_EFI_HCRTM_EVENT: + return "EV_EFI_HCRTM_EVENT" + case EV_EFI_VARIABLE_AUTHORITY: + return "EV_EFI_VARIABLE_AUTHORITY" + case EV_EFI_SPDM_FIRMWARE_BLOB: + return "EV_EFI_SPDM_FIRMWARE_BLOB" + case EV_EFI_SPDM_FIRMWARE_CONFIG: + return "EV_EFI_SPDM_FIRMWARE_CONFIG" + case EV_EFI_SPDM_DEVICE_POLICY: + return "EV_EFI_SPDM_DEVICE_POLICY" + case EV_EFI_SPDM_DEVICE_AUTHORITY: + return "EV_EFI_SPDM_DEVICE_AUTHORITY" + } + return "" +} diff --git a/common/golang/tdx/quote.go b/common/golang/tdx/quote.go new file mode 100644 index 00000000..19743fcc --- /dev/null +++ b/common/golang/tdx/quote.go @@ -0,0 +1,640 @@ +package tdx + +import ( + "encoding/binary" + "encoding/hex" + "errors" + "fmt" + "log" + "unsafe" + + "github.com/cc-api/cc-trusted-api/common/golang/cctrusted_base" +) + +type QeCertDataType uint32 + +const ( + PCK_ID_PLAIN QeCertDataType = 1 + PCK_ID_RSA_2048_OAEP QeCertDataType = 2 + PCK_ID_RSA_3072_OAEP QeCertDataType = 3 + PCK_LEAF_CERT_PLAIN QeCertDataType = 4 // Currently not supported + PCK_CERT_CHAIN QeCertDataType = 5 + QE_REPORT_CERT QeCertDataType = 6 + PLATFORM_MANIFEST QeCertDataType = 7 // Currently not supported + + // QE Vendor ID. Unique identifier of the QE Vendor. + // Note: Each vendor that decides to provide a customized Quote data + // structure should have unique ID. + // e.g. Value: 939A7233F79C4CA9940A0DB3957F0607 (Intel® SGX QE Vendor) + QE_VENDOR_INTEL_SGX = "939a7233f79c4ca9940a0db3957f0607" +) + +func (t QeCertDataType) String() string { + switch t { + case PCK_ID_PLAIN: + return " QeCertDataType.PCK_ID_PLAIN" + case PCK_ID_RSA_2048_OAEP: + return " QeCertDataType.PCK_ID_RSA_2048_OAEP" + case PCK_ID_RSA_3072_OAEP: + return " QeCertDataType.PCK_ID_RSA_3072_OAEP" + case PCK_LEAF_CERT_PLAIN: + return " QeCertDataType.PCK_LEAF_CERT_PLAIN" + case PCK_CERT_CHAIN: + return " QeCertDataType.PCK_CERT_CHAIN" + case QE_REPORT_CERT: + return " QeCertDataType.QE_REPORT_CERT" + case PLATFORM_MANIFEST: + return " QeCertDataType.PLATFORM_MANIFEST" + } + return "" +} + +type TdxReportReq15 struct { + ReportData [TD_REPORTDATA_LEN]uint8 + Tdreport [TD_REPORT_LEN]uint8 +} + +type TdxQuoteReq struct { + Buf uint64 // Pass user data that includes TDREPORT as input. Upon successful completion of IOCTL, output is copied back to the same buffer + Len uint64 // Length of the Quote buffer +} + +func NewTdxQuoteReqVer15(hdr *TdxQuoteHdr) *TdxQuoteReq { + t := &TdxQuoteReq{} + t.Buf = uint64(uintptr(unsafe.Pointer(hdr))) + t.Len = TDX_QUOTE_LEN + return t +} + +type TdxQuoteHdr struct { + Version uint64 // Quote version, filled by TD + Status uint64 // Status code of Quote request, filled by VMM + InLen uint32 // Length of TDREPORT, filled by TD + OutLen uint32 // Length of Quote, filled by VMM + DataLenBeBytes [4]uint8 // big-endian 4 bytes indicate the size of data following + Data [TDX_QUOTE_LEN]uint8 // Actual Quote data or TDREPORT on input +} + +func NewTdxQuoteHdrVer15(req *QgsMsgGetQuoteReq) *TdxQuoteHdr { + t := &TdxQuoteHdr{} + reqBytes := req.Bytes() + lenOfReqBytes := uint32(len(reqBytes)) + + t.Version = 1 + t.Status = 0 + t.InLen = lenOfReqBytes + 4 + t.OutLen = 0 + + be := make([]uint8, 4) + binary.BigEndian.PutUint32(be, lenOfReqBytes) + copy(t.DataLenBeBytes[:], be[0:4]) + + copy(t.Data[:], reqBytes) + return t +} + +func NewTdxQuoteHdrFromBytes(b []byte) *TdxQuoteHdr { + t := &TdxQuoteHdr{} + t.Version = binary.LittleEndian.Uint64(b[0:8]) + t.Status = binary.LittleEndian.Uint64(b[8:16]) + t.InLen = binary.LittleEndian.Uint32(b[16:20]) + t.OutLen = binary.LittleEndian.Uint32(b[20:24]) + copy(t.DataLenBeBytes[:], b[24:28]) + copy(t.Data[:], b[28:28+TDX_QUOTE_LEN]) + + return t +} + +func (t *TdxQuoteHdr) LenOfBytes() uint32 { + return 8*2 + 4*3 + TDX_QUOTE_LEN +} + +type QgsMsgGetQuoteReq struct { + Header QgsMsgHeader + ReportSize uint32 // cannot be 0 + IdListSize uint32 // length of id_list, in byte, can be 0 + // ReportIdList stores tdreport and id list. + // TD_REPORT_LEN-fixed-lengthed tdreport in front of array, + // and id list with the length IdListSize is stored in the tail. + ReportIdList []uint8 +} + +func NewQgsMsgGetQuoteReqVer15(tdreport [TD_REPORT_LEN]uint8) *QgsMsgGetQuoteReq { + q := &QgsMsgGetQuoteReq{} + q.Header = *NewQgsMsgHeaderVer15() + + q.ReportSize = TD_REPORT_LEN + q.IdListSize = 0 + q.ReportIdList = tdreport[:] + // sizeof(Header) + sizeof(ReportSize) + sizeof(ReportIdList) + ReportSize + IdListSize + q.Header.Size = q.Header.LenOfBytes() + 4 + 4 + q.ReportSize + q.IdListSize + return q +} + +func (q *QgsMsgGetQuoteReq) Bytes() []byte { + headBytes := q.Header.Bytes() + + lenOfBytes := 4 + 4 + le := make([]uint8, lenOfBytes) + binary.LittleEndian.PutUint32(le[0:4], q.ReportSize) + binary.LittleEndian.PutUint32(le[4:8], q.IdListSize) + + le = append(le, q.ReportIdList...) + + return append(headBytes, le...) +} + +type QgsMsgGetQuoteResp struct { + Header QgsMsgHeader // header.type = GET_QUOTE_RESP + SelectedIdSize uint32 // can be 0 in case only one id is sent in request + QuoteSize uint32 // length of quote_data, in byte + IdQuote [TDX_QUOTE_LEN]uint8 // selected id followed by quote +} + +func NewQgsMsgGetQuoteRespFromBytes(b []byte) *QgsMsgGetQuoteResp { + q := &QgsMsgGetQuoteResp{} + lenOfHeader := q.Header.LenOfBytes() + q.Header = *NewQgsMsgHeaderFromBytes(b[:lenOfHeader]) + q.SelectedIdSize = binary.LittleEndian.Uint32(b[lenOfHeader : lenOfHeader+4]) + q.QuoteSize = binary.LittleEndian.Uint32(b[lenOfHeader+4 : lenOfHeader+8]) + copy(q.IdQuote[:], b[lenOfHeader+8:]) + return q +} + +type QgsMsgHeader struct { + MajorVersion uint16 // TDX major version + MinorVersion uint16 // TDX minor version + MsgType QgsMsgType // GET_QUOTE_REQ or GET_QUOTE_RESP + Size uint32 // size of the whole message, include this header, in byte + ErrorCode uint32 // used in response only +} + +func NewQgsMsgHeaderVer15() *QgsMsgHeader { + q := &QgsMsgHeader{} + q.MajorVersion = 1 + q.MinorVersion = 0 + q.MsgType = GetQuoteReq + q.Size = 0 + q.ErrorCode = 0 + return q +} + +func NewQgsMsgHeaderFromBytes(b []byte) *QgsMsgHeader { + q := &QgsMsgHeader{} + q.MajorVersion = binary.LittleEndian.Uint16(b[0:2]) + q.MinorVersion = binary.LittleEndian.Uint16(b[2:4]) + + q.MsgType = QgsMsgType(binary.LittleEndian.Uint32(b[4:8])) + q.Size = binary.LittleEndian.Uint32(b[8:12]) + q.ErrorCode = binary.LittleEndian.Uint32(b[12:16]) + return q +} + +func (q *QgsMsgHeader) Bytes() []byte { + le := make([]uint8, q.LenOfBytes()) + + binary.LittleEndian.PutUint16(le[0:2], q.MajorVersion) + binary.LittleEndian.PutUint16(le[2:4], q.MinorVersion) + + binary.LittleEndian.PutUint32(le[4:8], uint32(q.MsgType)) + binary.LittleEndian.PutUint32(le[8:12], q.Size) + binary.LittleEndian.PutUint32(le[12:16], q.ErrorCode) + + return le +} + +func (q *QgsMsgHeader) LenOfBytes() uint32 { + return 16 +} + +type TdxQuote struct { + Header *TdxQuoteHeader + Body *TdxQuoteBody + Signature TdxQuoteSignature +} + +func NewTdxQuote(b []byte) (*TdxQuote, error) { + lenOfBytes := len(b) + if lenOfBytes <= 0 { + return nil, errors.New("the length of the raw quote can not less than 0s") + } + + quote := &TdxQuote{} + idx := 0 + + if idx+48 > lenOfBytes { + return nil, fmt.Errorf("tdx quote header need 48 bytes, but only provided %d", lenOfBytes-idx) + } + quote.Header = NewTdxQuoteHeader(b[idx : idx+48]) + idx += 48 + + switch quote.Header.Version { + case TDX_QUOTE_VERSION_4: + if idx+584 > lenOfBytes { + return nil, fmt.Errorf("tdx quote body need 584 bytes, but only provided %d", lenOfBytes-idx) + } + quote.Body = NewTdxQuoteBody(b[idx : idx+584]) + idx += 584 + + if idx+4 > lenOfBytes { + return nil, fmt.Errorf("the length of tdx quote signature parse need 4 bytes, but only provided %d", lenOfBytes-idx) + } + lenOfSig := binary.LittleEndian.Uint32(b[idx : idx+4]) + idx += 4 + + if idx+int(lenOfSig) > lenOfBytes { + return nil, fmt.Errorf("tdx quote signature need %d bytes, but only provided %d", lenOfSig, lenOfBytes-idx) + } + + if quote.Header.AKType == AttestationKeyType_ECDSA_P256 { + quote.Signature = NewTdxQuoteSignatureEcdsa256(b[idx : idx+int(lenOfSig)]) + } else { + quote.Signature = NewTdxQuoteSignatureDefault(b[idx : idx+int(lenOfSig)]) + } + case TDX_QUOTE_VERSION_5: + } + return quote, nil +} + +func (q *TdxQuote) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%s======================================\n", indent) + l.Printf("%sTD Quote\n", indent) + l.Printf("%s======================================\n", indent) + q.Header.Dump(format, indent) + q.Body.Dump(format, indent) + q.Signature.Dump(format, indent) +} + +type TdxQuoteHeader struct { + raw cctrusted_base.BinaryBlob + Version uint16 + AKType AttestationKeyType + TeeType TeeType + Reserved1 [2]byte + Reserved2 [2]byte + QeVendor [16]byte + UserData [20]byte +} + +func NewTdxQuoteHeader(b []byte) *TdxQuoteHeader { + header := &TdxQuoteHeader{} + header.raw = cctrusted_base.NewBinaryBlob(b, 0) + blob := header.raw + idx := 0 + + header.Version, idx = blob.ParseUint16(idx) + akType, idx := blob.ParseUint16(idx) + header.AKType = AttestationKeyType(akType) + teeType, idx := blob.ParseUint32(idx) + header.TeeType = TeeType(teeType) + + r1, idx := blob.ParseBytes(idx, 2) + copy(header.Reserved1[:], r1) + r2, idx := blob.ParseBytes(idx, 2) + copy(header.Reserved2[:], r2) + + vendor, idx := blob.ParseBytes(idx, 16) + copy(header.QeVendor[:], vendor) + + userData, _ := blob.ParseBytes(idx, 20) + copy(header.UserData[:], userData) + return header +} + +func (h *TdxQuoteHeader) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTD Quote Header:\n", indent) + indent += " " + if format == cctrusted_base.QuoteDumpFormatRaw { + h.raw.Dump() + return + } + + l.Printf("%sHeader Version: %d\n", indent, h.Version) + l.Printf("%sAttestation Key Type: %v\n", indent, h.AKType) + l.Printf("%sTEE Type: %v\n", indent, h.TeeType) + l.Printf("%sReserved 1: 0x%s\n", indent, hex.EncodeToString(h.Reserved1[:])) + l.Printf("%sReserved 2: 0x%s\n", indent, hex.EncodeToString(h.Reserved2[:])) + + qeVendorHex := hex.EncodeToString(h.QeVendor[:]) + qeVendorName := "" + if QE_VENDOR_INTEL_SGX == qeVendorHex { + // This is the only defined QE Vendor so far according to the spec + // The link to the spec is given in the docstring of TdxQuoteHeader. + qeVendorName = " # Intel® SGX QE Vendor" + } + + l.Printf("%sQE Vendor ID: 0x%s %s", indent, qeVendorHex, qeVendorName) + l.Printf("%sUser Data: 0x%s", indent, hex.EncodeToString(h.UserData[:])) +} + +type TdxQuoteBody struct { + raw cctrusted_base.BinaryBlob + TeeTcbSvn TdxQuoteTeeTcbSvn + MrSeam [48]byte + MrSignerSeam [48]byte + SeamAttributes [8]byte + TdAttributes [8]byte + Xfam [8]byte + MrTd [48]byte + MrConfigId [48]byte + MrOwner [48]byte + MrOwnerConfig [48]byte + Rtmr0 [48]byte + Rtmr1 [48]byte + Rtmr2 [48]byte + Rtmr3 [48]byte + ReportData [64]byte +} + +func NewTdxQuoteBody(b []byte) *TdxQuoteBody { + body := &TdxQuoteBody{} + body.raw = cctrusted_base.NewBinaryBlob(b, 0) + idx := 0 + body.TeeTcbSvn = *NewTdxQuoteTeeTcbSvn(b[idx : idx+16]) + idx += 16 + copy(body.MrSeam[:], b[idx:idx+48]) + idx += 48 + copy(body.MrSignerSeam[:], b[idx:idx+48]) + idx += 48 + copy(body.SeamAttributes[:], b[idx:idx+8]) + idx += 8 + copy(body.TdAttributes[:], b[idx:idx+8]) + idx += 8 + copy(body.Xfam[:], b[idx:idx+8]) + idx += 8 + copy(body.MrTd[:], b[idx:idx+48]) + idx += 48 + copy(body.MrConfigId[:], b[idx:idx+48]) + idx += 48 + copy(body.MrOwner[:], b[idx:idx+48]) + idx += 48 + copy(body.MrOwnerConfig[:], b[idx:idx+48]) + idx += 48 + copy(body.Rtmr0[:], b[idx:idx+48]) + idx += 48 + copy(body.Rtmr1[:], b[idx:idx+48]) + idx += 48 + copy(body.Rtmr2[:], b[idx:idx+48]) + idx += 48 + copy(body.Rtmr3[:], b[idx:idx+48]) + idx += 48 + copy(body.ReportData[:], b[idx:idx+64]) + return body +} + +func (b *TdxQuoteBody) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTD Quote Body:\n", indent) + indent += " " + + if format == cctrusted_base.QuoteDumpFormatRaw { + b.raw.Dump() + return + } + + b.TeeTcbSvn.Dump(format, indent) + l.Printf("%sMRSEAM: 0x%s\n", indent, hex.EncodeToString(b.MrSeam[:])) + l.Printf("%sMRSIGNERSEAM: 0x%s\n", indent, hex.EncodeToString(b.MrSignerSeam[:])) + l.Printf("%sSEAMATTRIBUTES: 0x%s\n", indent, hex.EncodeToString(b.SeamAttributes[:])) + l.Printf("%sTDATTRIBUTES: 0x%s\n", indent, hex.EncodeToString(b.TdAttributes[:])) + l.Printf("%sXFAM: 0x%s\n", indent, hex.EncodeToString(b.Xfam[:])) + l.Printf("%sMRTD: 0x%s\n", indent, hex.EncodeToString(b.MrTd[:])) + l.Printf("%sMRCONFIG: 0x%s\n", indent, hex.EncodeToString(b.MrConfigId[:])) + l.Printf("%sMROWNER: 0x%s\n", indent, hex.EncodeToString(b.MrOwner[:])) + l.Printf("%sMROWNERCONFIG: 0x%s\n", indent, hex.EncodeToString(b.MrOwnerConfig[:])) + l.Printf("%sRTMR0: 0x%s\n", indent, hex.EncodeToString(b.Rtmr0[:])) + l.Printf("%sRTMR1: 0x%s\n", indent, hex.EncodeToString(b.Rtmr1[:])) + l.Printf("%sRTMR2: 0x%s\n", indent, hex.EncodeToString(b.Rtmr2[:])) + l.Printf("%sRTMR3: 0x%s\n", indent, hex.EncodeToString(b.Rtmr3[:])) + l.Printf("%sREPORTDATA: 0x%s\n", indent, hex.EncodeToString(b.ReportData[:])) +} + +type TdxQuoteTeeTcbSvn struct { + raw cctrusted_base.BinaryBlob +} + +func NewTdxQuoteTeeTcbSvn(b []byte) *TdxQuoteTeeTcbSvn { + return &TdxQuoteTeeTcbSvn{ + raw: cctrusted_base.NewBinaryBlob(b, 0), + } +} + +func (s *TdxQuoteTeeTcbSvn) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTdxQuoteTeeTcbSvn:\n", indent) + indent += " " + if format == cctrusted_base.QuoteDumpFormatRaw { + s.raw.Dump() + return + } + + l.Printf("%stdxtcbcomp01: %d\n", indent, s.raw.Binary[0]) + l.Printf("%stdxtcbcomp02: %d\n", indent, s.raw.Binary[1]) + l.Printf("%stdxtcbcomp03: %d\n", indent, s.raw.Binary[2]) + l.Printf("%stdxtcbcomp04: %d\n", indent, s.raw.Binary[3]) + l.Printf("%stdxtcbcomp05: %d\n", indent, s.raw.Binary[4]) + l.Printf("%stdxtcbcomp06: %d\n", indent, s.raw.Binary[5]) + l.Printf("%stdxtcbcomp07: %d\n", indent, s.raw.Binary[6]) + l.Printf("%stdxtcbcomp08: %d\n", indent, s.raw.Binary[7]) + l.Printf("%stdxtcbcomp09: %d\n", indent, s.raw.Binary[8]) + l.Printf("%stdxtcbcomp10: %d\n", indent, s.raw.Binary[9]) + l.Printf("%stdxtcbcomp11: %d\n", indent, s.raw.Binary[10]) + l.Printf("%stdxtcbcomp12: %d\n", indent, s.raw.Binary[11]) + l.Printf("%stdxtcbcomp13: %d\n", indent, s.raw.Binary[12]) + l.Printf("%stdxtcbcomp14: %d\n", indent, s.raw.Binary[13]) + l.Printf("%stdxtcbcomp15: %d\n", indent, s.raw.Binary[14]) + l.Printf("%stdxtcbcomp16: %d\n", indent, s.raw.Binary[15]) + +} + +type TdxQuoteSignature interface { + Dump(cctrusted_base.QuoteDumpFormat, string) +} + +var _ TdxQuoteSignature = (*TdxQuoteSignatureDefault)(nil) + +type TdxQuoteSignatureDefault struct { +} + +// Dump implements TdxQuoteSignature. +func (*TdxQuoteSignatureDefault) Dump(cctrusted_base.QuoteDumpFormat, string) { + panic("unimplemented") +} + +func NewTdxQuoteSignatureDefault(b []byte) *TdxQuoteSignatureDefault { + sig := &TdxQuoteSignatureDefault{} + return sig +} + +var _ TdxQuoteSignature = (*TdxQuoteSignatureEcdsa256)(nil) + +type TdxQuoteSignatureEcdsa256 struct { + raw cctrusted_base.BinaryBlob + Sig [64]byte + Ak [64]byte + QeCert TdxQuoteQeCert +} + +func NewTdxQuoteSignatureEcdsa256(b []byte) *TdxQuoteSignatureEcdsa256 { + sig := &TdxQuoteSignatureEcdsa256{} + sig.raw = cctrusted_base.NewBinaryBlob(b, 0) + copy(sig.Sig[:], b[0:64]) + copy(sig.Ak[:], b[64:128]) + sig.QeCert = *NewTdxQuoteQeCert(b[128:]) + return sig +} + +// Dump implements TdxQuoteSignature. +func (s *TdxQuoteSignatureEcdsa256) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTD Quote Signature:\n", indent) + indent += " " + if format == cctrusted_base.QuoteDumpFormatRaw { + s.raw.Dump() + return + } + + l.Printf(" Quote Signature (ECDSA P-256 Signature): 0x%s\n", hex.EncodeToString(s.Sig[:])) + l.Printf(" ECDSA Attestation Key (ECDSA P-256 Public Key): 0x%s\n", hex.EncodeToString(s.Ak[:])) + s.QeCert.Dump(format, indent) +} + +type TdxQuoteQeCert struct { + raw cctrusted_base.BinaryBlob + CertType QeCertDataType + ReportCert *TdxQuoteQeReportCert + CertData []byte +} + +func NewTdxQuoteQeCert(b []byte) *TdxQuoteQeCert { + cert := &TdxQuoteQeCert{} + cert.raw = cctrusted_base.NewBinaryBlob(b, 0) + certType, idx := cert.raw.ParseUint16(0) + cert.CertType = QeCertDataType(certType) + certSize, idx := cert.raw.ParseUint32(idx) + if cert.CertType == QE_REPORT_CERT { + cert.ReportCert = NewTdxQuoteQeReportCert(b[idx : idx+int(certSize)]) + } else { + cert.CertData = b[idx : idx+int(certSize)] + } + return cert +} + +func (c *TdxQuoteQeCert) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTdxQuoteQeCert:\n", indent) + indent += " " + if format == cctrusted_base.QuoteDumpFormatRaw { + c.raw.Dump() + return + } + + l.Printf("%sQuote QE Cert Data Type: %v", indent, c.CertType) + switch c.CertType { + case QE_REPORT_CERT: + c.ReportCert.Dump(format, indent) + case PCK_CERT_CHAIN: + l.Printf("%sPCK Cert Chain (PEM, Leaf||Intermediate||Root):\n", indent) + l.Printf("%s%s\n", indent, string(c.CertData)) + default: + l.Printf("%sQuote QE Cert Data: %s\n", indent, c.CertData) + } + +} + +type TdxQuoteQeReportCert struct { + raw cctrusted_base.BinaryBlob + QeReport TdxEnclaveReportBody + QeReportSig [64]byte + QeAuthData []byte + QeCertData *TdxQuoteQeCert +} + +func NewTdxQuoteQeReportCert(b []byte) *TdxQuoteQeReportCert { + c := &TdxQuoteQeReportCert{} + c.raw = cctrusted_base.NewBinaryBlob(b, 0) + c.QeReport = *NewTdxEnclaveReportBody(b[0:384]) + copy(c.QeReportSig[:], b[384:448]) + authDataSize, idx := c.raw.ParseUint16(448) + c.QeAuthData = b[idx : idx+int(authDataSize)] + c.QeCertData = NewTdxQuoteQeCert(b[idx+int(authDataSize):]) + return c +} + +func (c *TdxQuoteQeReportCert) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTdxQuoteQeReportCert:\n", indent) + indent += " " + if format == cctrusted_base.QuoteDumpFormatRaw { + c.raw.Dump() + return + } + + c.QeReport.Dump(format, indent) + l.Printf(" Quote QE Report Signature: 0x%s\n", hex.EncodeToString(c.QeReportSig[:])) + if len(c.QeAuthData) != 0 { + l.Printf(" Quote QE Authentication Data: 0x%s\n", hex.EncodeToString(c.QeAuthData)) + } else { + l.Println(" Quote QE Authentication Data: None") + } + c.QeCertData.Dump(format, indent) +} + +type TdxEnclaveReportBody struct { + raw cctrusted_base.BinaryBlob + CpuSvn [16]byte + Miscselect uint32 + Reserved1 [28]byte + Attributes [16]byte + Mrenclave [32]byte + Reserved2 [32]byte + MrSigner [32]byte + Reserved3 [96]byte + IsvProdid uint16 + IsvSvn uint16 + Reserved4 [60]byte + ReportData [64]byte +} + +func NewTdxEnclaveReportBody(b []byte) *TdxEnclaveReportBody { + body := &TdxEnclaveReportBody{} + body.raw = cctrusted_base.NewBinaryBlob(b, 0) + copy(body.CpuSvn[:], b[0:16]) + body.Miscselect, _ = body.raw.ParseUint32(16) + copy(body.Reserved1[:], b[20:48]) + copy(body.Attributes[:], b[48:64]) + copy(body.Mrenclave[:], b[64:96]) + copy(body.Reserved2[:], b[96:128]) + copy(body.MrSigner[:], b[128:160]) + copy(body.Reserved3[:], b[160:256]) + body.IsvProdid, _ = body.raw.ParseUint16(256) + body.IsvSvn, _ = body.raw.ParseUint16(258) + copy(body.Reserved4[:], b[260:320]) + copy(body.ReportData[:], b[320:384]) + return body +} + +func (b *TdxEnclaveReportBody) Dump(format cctrusted_base.QuoteDumpFormat, indent string) { + l := log.Default() + l.Printf("%sTdxEnclaveReportBody:\n", indent) + indent += " " + if format == cctrusted_base.QuoteDumpFormatRaw { + b.raw.Dump() + return + } + + l.Printf("%sCPU SVN: 0x%s\n", indent, hex.EncodeToString(b.CpuSvn[:])) + l.Printf("%sMISCSELECT: %d\n", indent, b.Miscselect) + l.Printf("%sReserved: 0x%s\n", indent, hex.EncodeToString(b.Reserved1[:])) + l.Printf("%sAttributes: 0x%s\n", indent, hex.EncodeToString(b.Attributes[:])) + l.Printf("%sMRENCLAVE:0x%s\n", indent, hex.EncodeToString(b.Mrenclave[:])) + l.Printf("%sReserved: 0x%s\n", indent, hex.EncodeToString(b.Reserved2[:])) + l.Printf("%sMRSIGNER: 0x%s\n", indent, hex.EncodeToString(b.MrSigner[:])) + l.Printf("%sReserved: 0x%s\n", indent, hex.EncodeToString(b.Reserved3[:])) + l.Printf("%sISV ProdID: %d\n", indent, b.IsvProdid) + l.Printf("%sISV SVN: %d\n", indent, b.IsvSvn) + l.Printf("%sReserved: 0x%s\n", indent, hex.EncodeToString(b.Reserved4[:])) + l.Printf("%sReport Data: 0x%s\n", indent, hex.EncodeToString(b.ReportData[:])) +} diff --git a/common/golang/tdx/quote_test.go b/common/golang/tdx/quote_test.go new file mode 100644 index 00000000..87eb416f --- /dev/null +++ b/common/golang/tdx/quote_test.go @@ -0,0 +1,38 @@ +package tdx + +import ( + "bufio" + "bytes" + "log" + "os" + "strings" + "testing" + + "github.com/cc-api/cc-trusted-api/common/golang/cctrusted_base" + + "github.com/stretchr/testify/assert" +) + +func TestQuoteDumpHuman(t *testing.T) { + var buf bytes.Buffer + log.SetOutput(&buf) + + quoteBin, err := os.ReadFile("../test_data/quote.bin") + assert.Nil(t, err) + expected, err := os.ReadFile("../test_data/formated_quote.txt") + assert.Nil(t, err) + + quote, err := NewTdxQuote(quoteBin) + assert.Nil(t, err) + quote.Dump(cctrusted_base.QuoteDumpFormatHuman, "") + r := strings.NewReader(buf.String()) + s := bufio.NewScanner(r) + + r2 := strings.NewReader(string(expected)) + s2 := bufio.NewScanner(r2) + + for s.Scan() && s2.Scan() { + assert.EqualValues(t, s.Text()[20:], s2.Text()[20:]) + } + +} diff --git a/common/golang/tdx/report.go b/common/golang/tdx/report.go new file mode 100644 index 00000000..6e505f22 --- /dev/null +++ b/common/golang/tdx/report.go @@ -0,0 +1,44 @@ +package tdx + +import "github.com/cc-api/cc-trusted-api/common/golang/cctrusted_base" + +var _ cctrusted_base.Report = (*TdxReport)(nil) + +type TdxReport struct { + Quote *TdxQuote +} + +func NewTdxReportFromBytes(b []byte) (*TdxReport, error) { + t := &TdxReport{} + err := t.InitFromBytes(b) + if err != nil { + return nil, err + } + return t, nil +} + +// IMRGroup implements cctrusted_base.Report. +func (t *TdxReport) IMRGroup() cctrusted_base.IMRGroup { + group := cctrusted_base.IMRGroup{} + group.MaxIndex = 3 + group.Group = make([]cctrusted_base.TcgDigest, 4) + r0 := t.Quote.Body.Rtmr0 + group.Group[0] = NewRTMR(r0) + r1 := t.Quote.Body.Rtmr1 + group.Group[1] = NewRTMR(r1) + r2 := t.Quote.Body.Rtmr2 + group.Group[2] = NewRTMR(r2) + r3 := t.Quote.Body.Rtmr3 + group.Group[3] = NewRTMR(r3) + return group +} + +// InitFromBytes implements cctrusted_base.Report. +func (t *TdxReport) InitFromBytes(b []byte) (err error) { + t.Quote, err = NewTdxQuote(b) + return err +} + +func (t *TdxReport) Dump(format cctrusted_base.QuoteDumpFormat) { + t.Quote.Dump(format, "") +} diff --git a/common/golang/tdx/rtmr.go b/common/golang/tdx/rtmr.go new file mode 100644 index 00000000..bfe8c7c9 --- /dev/null +++ b/common/golang/tdx/rtmr.go @@ -0,0 +1,14 @@ +package tdx + +import "github.com/cc-api/cc-trusted-api/common/golang/cctrusted_base" + +const ( + RTMRMaxIndex = 3 +) + +func NewRTMR(digest [48]byte) cctrusted_base.TcgDigest { + d := cctrusted_base.TcgDigest{} + d.AlgID = cctrusted_base.TPM_ALG_SHA384 + d.Hash = digest[:] + return d +} diff --git a/common/golang/tdx/tdx.go b/common/golang/tdx/tdx.go new file mode 100644 index 00000000..a31323ca --- /dev/null +++ b/common/golang/tdx/tdx.go @@ -0,0 +1,96 @@ +package tdx + +import ( + "encoding/binary" + + "github.com/cc-api/cc-trusted-api/common/golang/cctrusted_base" +) + +// Common definition for Intel TDX. + +type OperatorName string +type QgsMsgType uint32 +type AttestationKeyType uint16 +type TeeType uint32 + +const ( + TDX_VERSION_1_0 cctrusted_base.DeviceVersion = "1.0" + TDX_VERSION_1_0_DEVICE string = "/dev/tdx-guest" + + TDX_VERSION_1_5 cctrusted_base.DeviceVersion = "1.5" + TDX_VERSION_1_5_DEVICE string = "/dev/tdx_guest" + + TDX_QUOTE_VERSION_4 = 4 + TDX_QUOTE_VERSION_5 = 5 + + // The length of the reportdata + TD_REPORTDATA_LEN = 64 + // The length of the tdreport + TD_REPORT_LEN = 1024 + // The length of the report/quote + TDX_QUOTE_LEN = 4 * 4096 + + // Allowd Operation + // Get td report, td report is a structure consisting of some + // info from tdx module and td vm. Being signed by the Intel PCS, + // it becomes the report for remote attestation. + GetTdReport OperatorName = "GetTdReport" + // Get td quote + GetQuote OperatorName = "GetQuote" + + GetQuoteReq QgsMsgType = 0 + GetQuoteResp QgsMsgType = 1 + + AttestationKeyType_ECDSA_P256 AttestationKeyType = 2 + AttestationKeyType_ECDSA_P384 AttestationKeyType = 3 + + TEE_SGX TeeType = 0x00000000 + TEE_TDX TeeType = 0x00000081 +) + +func (t AttestationKeyType) String() string { + switch t { + case AttestationKeyType_ECDSA_P256: + return "AttestationKeyType.ECDSA_P256" + case AttestationKeyType_ECDSA_P384: + return "AttestationKeyType.ECDSA_P384" + } + return "" +} + +func (t TeeType) String() string { + switch t { + case TEE_SGX: + return "TeeType.TEE_SGX" + case TEE_TDX: + return "TeeType.TEE_TDX" + } + return "" +} + +type TDXDeviceSpec struct { + Version cctrusted_base.DeviceVersion + DevicePath string + AllowedOperation map[OperatorName]uintptr +} + +var ( + TdxDeviceSpecs = map[string]TDXDeviceSpec{ + TDX_VERSION_1_0_DEVICE: { + Version: TDX_VERSION_1_0, + DevicePath: TDX_VERSION_1_0_DEVICE, + AllowedOperation: map[OperatorName]uintptr{ + GetTdReport: uintptr(binary.BigEndian.Uint32([]byte{192, 8, 'T', 1})), + GetQuote: uintptr(binary.BigEndian.Uint32([]byte{128, 8, 'T', 2})), + }, + }, + TDX_VERSION_1_5_DEVICE: { + Version: TDX_VERSION_1_5, + DevicePath: TDX_VERSION_1_5_DEVICE, + AllowedOperation: map[OperatorName]uintptr{ + GetTdReport: uintptr(binary.BigEndian.Uint32([]byte{196, 64, 'T', 1})), + GetQuote: uintptr(binary.BigEndian.Uint32([]byte{128, 16, 'T', 4})), + }, + }, + } +) diff --git a/common/golang/test_data/ccel_data.bin b/common/golang/test_data/ccel_data.bin new file mode 100644 index 0000000000000000000000000000000000000000..825b0f4c97bd70d74a5640aaea845ebc64b8b8ed GIT binary patch literal 65536 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 B*Bbx; literal 0 HcmV?d00001 diff --git a/common/golang/test_data/formated_el.txt b/common/golang/test_data/formated_el.txt new file mode 100644 index 00000000..5cb3765a --- /dev/null +++ b/common/golang/test_data/formated_el.txt @@ -0,0 +1,1537 @@ +2024/02/20 16:01:34 Event Log Entries: +2024/02/20 16:01:34 --------------------Header Specification ID Event-------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x3 (EV_NO_ACTION) +2024/02/20 16:01:34 Digest: +2024/02/20 16:01:34 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000010 00 00 00 00 .... +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 53 70 65 63 20 49 44 20 45 76 65 6e 74 30 33 00 Spec ID Event03. +2024/02/20 16:01:34 00000010 00 00 00 00 00 02 00 02 01 00 00 00 0c 00 30 00 ..............0. +2024/02/20 16:01:34 00000020 00 . +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x8000000B (EV_EFI_HANDOFF_TABLES2) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 0b 87 72 e5 b0 b4 1b 83 e6 04 4a 68 39 7e 02 f4 ..rå°´..æ.Jh9~.ô +2024/02/20 16:01:34 00000010 9f b4 70 66 b4 fb e4 91 7e a2 c4 5c 64 f3 23 fd .´pf´ûä.~¢Ä\dó#ý +2024/02/20 16:01:34 00000020 ac bb 37 94 8f 82 1e ba f8 bc 9c 93 8b a8 a7 49 ¬»7....ºø¼...¨§I +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 09 54 64 78 54 61 62 6c 65 00 01 00 00 00 00 00 .TdxTable....... +2024/02/20 16:01:34 00000010 00 00 af 96 bb 93 f2 b9 b8 4e 94 62 e0 ba 74 56 ..¯.».ò¹¸N.bàºtV +2024/02/20 16:01:34 00000020 42 36 00 90 80 00 00 00 00 00 B6........ +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x8000000A (EV_EFI_PLATFORM_FIRMWARE_BLOB2) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 34 4b c5 1c 98 0b a6 21 aa a0 0d a3 ed 74 36 f7 4KÅ...¦!ª..£ít6÷ +2024/02/20 16:01:34 00000010 d6 e5 49 19 7d fe 69 95 15 df a2 c6 58 3d 95 e6 ÖåI.}þi..ߢÆX=.æ +2024/02/20 16:01:34 00000020 41 2a f2 1c 09 7d 47 31 55 87 5f fd 56 1d 67 90 A*ò..}G1U._ýV.g. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 29 46 76 28 58 58 58 58 58 58 58 58 2d 58 58 58 )Fv(XXXXXXXX-XXX +2024/02/20 16:01:34 00000010 58 2d 58 58 58 58 2d 58 58 58 58 2d 58 58 58 58 X-XXXX-XXXX-XXXX +2024/02/20 16:01:34 00000020 58 58 58 58 58 58 58 58 29 00 00 00 c0 ff 00 00 XXXXXXXX)...Àÿ.. +2024/02/20 16:01:34 00000030 00 00 00 40 08 00 00 00 00 00 ...@...... +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000001 (EV_EFI_VARIABLE_DRIVER_CONFIG) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 cf a4 e2 c6 06 f5 72 62 7b f0 6d 56 69 cc 2a b1 ϤâÆ.õrb{ðmViÌ*± +2024/02/20 16:01:34 00000010 12 83 58 d2 7b 45 bc 63 ee 9e a5 6e c1 09 cf af ..XÒ{E¼cî.¥nÁ.ϯ +2024/02/20 16:01:34 00000020 b7 19 40 06 f8 47 a6 a7 4b 5e ae d6 b7 33 32 ec ·.@.øG¦§K^®Ö·32ì +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 61 df e4 8b ca 93 d2 11 aa 0d 00 e0 98 03 2b 8c aßä.Ê.Ò.ª..à..+. +2024/02/20 16:01:34 00000010 0a 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 53 00 65 00 63 00 75 00 72 00 65 00 42 00 6f 00 S.e.c.u.r.e.B.o. +2024/02/20 16:01:34 00000030 6f 00 74 00 00 o.t.. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000001 (EV_EFI_VARIABLE_DRIVER_CONFIG) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 6f 2e 3c bc 14 f9 de f8 69 80 f5 f6 6f d8 5e 99 o.<¼.ùÞøi.õöoØ^. +2024/02/20 16:01:34 00000010 d6 3e 69 a7 30 14 ed 8a 56 33 ce 56 ec a5 b6 4b Ö>i§0.í.V3ÎV쥶K +2024/02/20 16:01:34 00000020 69 21 08 c5 61 10 e2 2a ca dc ef 58 c3 25 0f 1b i!.Åa.â*ÊÜïXÃ%.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 61 df e4 8b ca 93 d2 11 aa 0d 00 e0 98 03 2b 8c aßä.Ê.Ò.ª..à..+. +2024/02/20 16:01:34 00000010 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 50 00 4b 00 P.K. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000001 (EV_EFI_VARIABLE_DRIVER_CONFIG) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 d6 07 c0 ef b4 1c 0d 75 7d 69 bc a0 61 5c 3a 9a Ö.Àï´..u}i¼.a\:. +2024/02/20 16:01:34 00000010 c0 b1 db 06 c5 57 d9 92 e9 06 c6 b7 de e4 0e 0e À±Û.ÅWÙ.é.Æ·Þä.. +2024/02/20 16:01:34 00000020 03 16 40 c7 bf d7 bc d3 58 44 ef 9e de ad c6 f9 ..@ǿ׼ÓXDï.Þ.Æù +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 61 df e4 8b ca 93 d2 11 aa 0d 00 e0 98 03 2b 8c aßä.Ê.Ò.ª..à..+. +2024/02/20 16:01:34 00000010 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 4b 00 45 00 4b 00 K.E.K. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000001 (EV_EFI_VARIABLE_DRIVER_CONFIG) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 08 a7 4f 89 63 b3 37 ac b6 c9 36 82 f9 34 49 63 .§O.c³7¬¶É6.ù4Ic +2024/02/20 16:01:34 00000010 73 67 9d d2 6a f1 08 9c b4 ea f0 c3 0c f2 60 a1 sg.Òjñ..´êðÃ.ò`¡ +2024/02/20 16:01:34 00000020 2e 81 48 56 38 5a b8 84 3e 56 a9 ac ea 19 e1 27 ..HV8Z¸.>V©¬ê.á' +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 cb b2 19 d7 3a 3d 96 45 a3 bc da d0 0e 67 65 6f ˲.×:=.E£¼ÚÐ.geo +2024/02/20 16:01:34 00000010 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 64 00 62 00 d.b. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000001 (EV_EFI_VARIABLE_DRIVER_CONFIG) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 18 cc 6e 01 f0 c6 ea 99 aa 23 f8 a2 80 42 3e 94 .Ìn.ðÆê.ª#ø¢.B>. +2024/02/20 16:01:34 00000010 ad 81 d9 6d 0a eb 51 80 50 4f c0 f7 a4 0c b3 61 ..Ùm.ëQ.POÀ÷¤.³a +2024/02/20 16:01:34 00000020 9d d3 9b d6 a9 5e c1 68 0a 86 ed 6a b0 f9 82 8d .Ó.Ö©^Áh..íj°ù.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 cb b2 19 d7 3a 3d 96 45 a3 bc da d0 0e 67 65 6f ˲.×:=.E£¼ÚÐ.geo +2024/02/20 16:01:34 00000010 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 64 00 62 00 78 00 d.b.x. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x4 (EV_SEPARATOR) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 39 43 41 b7 18 2c d2 27 c5 c6 b0 7e f8 00 0c df 9CA·.,Ò'ÅÆ°~ø..ß +2024/02/20 16:01:34 00000010 d8 61 36 c4 29 2b 8e 57 65 73 ad 7e d9 ae 41 01 Øa6Ä)+.Wes.~Ù®A. +2024/02/20 16:01:34 00000020 9f 58 18 b4 b9 71 c9 ef fc 60 e1 ad 9f 12 89 f0 .X.´¹qÉïü`á....ð +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 00 00 00 00 .... +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0xA (EV_PLATFORM_CONFIG_FLAGS) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 69 15 73 68 e0 4a d3 c5 59 29 ad 24 a0 2b dd 51 i.shàJÓÅY).$.+ÝQ +2024/02/20 16:01:34 00000010 8c 40 08 8b 9a 5f 9c 4d f0 70 50 e1 fa 86 6f 53 .@..._.MðpPáú.oS +2024/02/20 16:01:34 00000020 79 1c d9 9d 83 70 22 64 c4 13 6f 4b 75 6a 95 f9 y.Ù..p"dÄ.oKuj.ù +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 41 43 50 49 20 44 41 54 41 ACPI DATA +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0xA (EV_PLATFORM_CONFIG_FLAGS) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 d9 ec aa e9 92 e0 8c 71 ea a3 34 c4 54 dc aa be Ùìªé.à.qê£4ÄTܪ¾ +2024/02/20 16:01:34 00000010 d6 3f 92 53 00 ca 54 51 a5 86 f8 59 45 48 af 38 Ö?.S.ÊTQ¥.øYEH¯8 +2024/02/20 16:01:34 00000020 a9 92 10 42 73 86 6e 7e 15 17 60 25 c6 03 25 d5 ©..Bs.n~..`%Æ.%Õ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 41 43 50 49 20 44 41 54 41 ACPI DATA +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0xA (EV_PLATFORM_CONFIG_FLAGS) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 7b 8c 2a 5d 77 a7 30 ca 75 9f 8d ea b4 d2 5f ef {.*]w§0Êu..ê´Ò_ï +2024/02/20 16:01:34 00000010 1d fd bf 8b b7 17 c2 cc 11 41 fa 19 30 25 88 a3 .ý¿.·.ÂÌ.Aú.0%.£ +2024/02/20 16:01:34 00000020 b2 63 33 e7 d9 c7 33 3e b0 e7 1e ca 1c 52 bb 9d ²c3çÙÇ3>°ç.Ê.R». +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 41 43 50 49 20 44 41 54 41 ACPI DATA +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000002 (EV_EFI_VARIABLE_BOOT) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 52 b9 a0 2d e9 46 b9 47 36 4b 57 d8 21 0c 63 11 R¹.-éF¹G6KWØ!.c. +2024/02/20 16:01:34 00000010 3b 90 58 99 6e 2a 3b a7 ce ad 54 af 11 ae 08 73 ;.X.n*;§Î.T¯.®.s +2024/02/20 16:01:34 00000020 b0 85 d1 e5 2b c0 1e 4f eb e5 7c a0 5c a1 33 2b °.Ñå+À.Oëå|.\¡3+ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 61 df e4 8b ca 93 d2 11 aa 0d 00 e0 98 03 2b 8c aßä.Ê.Ò.ª..à..+. +2024/02/20 16:01:34 00000010 09 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 42 00 6f 00 6f 00 74 00 4f 00 72 00 64 00 65 00 B.o.o.t.O.r.d.e. +2024/02/20 16:01:34 00000030 72 00 00 00 01 00 r..... +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000002 (EV_EFI_VARIABLE_BOOT) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 23 ad a0 7f 52 61 f1 2f 34 a0 bd 8e 46 76 09 62 #...Rañ/4.½.Fv.b +2024/02/20 16:01:34 00000010 d6 b4 d5 76 a4 16 f1 fe a1 c6 4b c6 56 b1 d2 8e Ö´Õv¤.ñþ¡ÆKÆV±Ò. +2024/02/20 16:01:34 00000020 ac f7 04 7a e6 e9 67 c5 8f d2 a9 8b fa 74 c2 98 ¬÷.zæégÅ.Ò©.útÂ. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 61 df e4 8b ca 93 d2 11 aa 0d 00 e0 98 03 2b 8c aßä.Ê.Ò.ª..à..+. +2024/02/20 16:01:34 00000010 08 00 00 00 00 00 00 00 3e 00 00 00 00 00 00 00 ........>....... +2024/02/20 16:01:34 00000020 42 00 6f 00 6f 00 74 00 30 00 30 00 30 00 30 00 B.o.o.t.0.0.0.0. +2024/02/20 16:01:34 00000030 09 01 00 00 2c 00 55 00 69 00 41 00 70 00 70 00 ....,.U.i.A.p.p. +2024/02/20 16:01:34 00000040 00 00 04 07 14 00 c9 bd b8 7c eb f8 34 4f aa ea ......ɽ¸|ëø4Oªê +2024/02/20 16:01:34 00000050 3e e4 af 65 16 a1 04 06 14 00 21 aa 2c 46 14 76 >ä¯e.¡....!ª,F.v +2024/02/20 16:01:34 00000060 03 45 83 6e 8a b6 f4 66 23 31 7f ff 04 00 .E.n.¶ôf#1.ÿ.. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x80000002 (EV_EFI_VARIABLE_BOOT) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 e1 eb e6 4b c2 30 e0 f0 03 cd f5 ed b0 10 eb f0 áëæKÂ0àð.Íõí°.ëð +2024/02/20 16:01:34 00000010 7b 27 7e d4 37 a0 69 ab 41 e2 51 e5 23 0e c8 f9 {'~Ô7.i«AâQå#.Èù +2024/02/20 16:01:34 00000020 4e 6f 62 cd 0b d4 5e b9 b7 a8 d0 11 01 20 1c f9 NobÍ.Ô^¹·¨Ð.. .ù +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 61 df e4 8b ca 93 d2 11 aa 0d 00 e0 98 03 2b 8c aßä.Ê.Ò.ª..à..+. +2024/02/20 16:01:34 00000010 08 00 00 00 00 00 00 00 4e 00 00 00 00 00 00 00 ........N....... +2024/02/20 16:01:34 00000020 42 00 6f 00 6f 00 74 00 30 00 30 00 30 00 31 00 B.o.o.t.0.0.0.1. +2024/02/20 16:01:34 00000030 01 00 00 00 16 00 55 00 45 00 46 00 49 00 20 00 ......U.E.F.I. . +2024/02/20 16:01:34 00000040 4d 00 69 00 73 00 63 00 20 00 44 00 65 00 76 00 M.i.s.c. .D.e.v. +2024/02/20 16:01:34 00000050 69 00 63 00 65 00 00 00 02 01 0c 00 d0 41 03 0a i.c.e.......ÐA.. +2024/02/20 16:01:34 00000060 00 00 00 00 01 01 06 00 00 03 7f ff 04 00 4e ac ...........ÿ..N¬ +2024/02/20 16:01:34 00000070 08 81 11 9f 59 4d 85 0e e2 1a 52 2c 59 b2 ....YM..â.R,Y² +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000007 (EV_EFI_ACTION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 77 a0 da b2 31 2b 4e 1e 57 a8 4d 86 5a 21 e5 b2 w.Ú²1+N.W¨M.Z!å² +2024/02/20 16:01:34 00000010 ee 8d 67 7a 21 01 2a da 81 9d 0a 98 98 80 78 d3 î.gz!.*Ú......xÓ +2024/02/20 16:01:34 00000020 d7 40 f6 34 6b fe 0a ba a9 38 ca 20 43 9a 8d 71 ×@ö4kþ.º©8Ê C..q +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 43 61 6c 6c 69 6e 67 20 45 46 49 20 41 70 70 6c Calling EFI Appl +2024/02/20 16:01:34 00000010 69 63 61 74 69 6f 6e 20 66 72 6f 6d 20 42 6f 6f ication from Boo +2024/02/20 16:01:34 00000020 74 20 4f 70 74 69 6f 6e t Option +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x4 (EV_SEPARATOR) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 39 43 41 b7 18 2c d2 27 c5 c6 b0 7e f8 00 0c df 9CA·.,Ò'ÅÆ°~ø..ß +2024/02/20 16:01:34 00000010 d8 61 36 c4 29 2b 8e 57 65 73 ad 7e d9 ae 41 01 Øa6Ä)+.Wes.~Ù®A. +2024/02/20 16:01:34 00000020 9f 58 18 b4 b9 71 c9 ef fc 60 e1 ad 9f 12 89 f0 .X.´¹qÉïü`á....ð +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 00 00 00 00 .... +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000006 (EV_EFI_GPT_EVENT) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 d8 c7 09 b3 97 f4 73 b3 a4 a4 29 ff 53 54 18 39 ØÇ.³.ôs³¤¤)ÿST.9 +2024/02/20 16:01:34 00000010 b1 46 80 c9 c7 24 7d 40 70 35 ef fe ea d6 28 c9 ±F.ÉÇ$}@p5ïþêÖ(É +2024/02/20 16:01:34 00000020 72 b4 45 c9 aa 95 c9 b8 e5 c4 85 95 73 54 a3 bb r´Eɪ.ɸåÄ..sT£» +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 EFI PART....\... +2024/02/20 16:01:34 00000010 3d 2a 7b 93 00 00 00 00 01 00 00 00 00 00 00 00 =*{............. +2024/02/20 16:01:34 00000020 ff ff 7f 02 00 00 00 00 22 00 00 00 00 00 00 00 ÿÿ......"....... +2024/02/20 16:01:34 00000030 de ff 7f 02 00 00 00 00 b8 8f 1c 1c 6e 30 82 46 Þÿ......¸...n0.F +2024/02/20 16:01:34 00000040 b6 6a f4 18 c6 e3 fc cf 02 00 00 00 00 00 00 00 ¶jô.ÆãüÏ........ +2024/02/20 16:01:34 00000050 80 00 00 00 80 00 00 00 72 0a d8 d0 03 00 00 00 ........r.ØÐ.... +2024/02/20 16:01:34 00000060 00 00 00 00 af 3d c6 0f 83 84 72 47 8e 79 3d 69 ....¯=Æ...rG.y=i +2024/02/20 16:01:34 00000070 d8 47 7d e4 73 39 73 cc 2a 51 50 40 84 e0 3e 8e ØG}äs9sÌ*QP@.à>. +2024/02/20 16:01:34 00000080 f0 b2 ba 2c 00 78 03 00 00 00 00 00 de ff 7f 02 ð²º,.x......Þÿ.. +2024/02/20 16:01:34 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000000e0 00 00 00 00 48 61 68 21 49 64 6f 6e 74 4e 65 65 ....Hah!IdontNee +2024/02/20 16:01:34 000000f0 64 45 46 49 52 b5 4d a4 bb c4 5b 41 bd 80 a9 55 dEFIRµM¤»Ä[A½.©U +2024/02/20 16:01:34 00000100 c0 a3 66 77 00 08 00 00 00 00 00 00 ff 27 00 00 À£fw........ÿ'.. +2024/02/20 16:01:34 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000160 00 00 00 00 28 73 2a c1 1f f8 d2 11 ba 4b 00 a0 ....(s*Á.øÒ.ºK.. +2024/02/20 16:01:34 00000170 c9 3e c9 3b 79 4a 7a 50 a4 ec d0 4f 8b bc d5 f4 É>É;yJzP¤ìÐO.¼Õô +2024/02/20 16:01:34 00000180 fa c3 e7 23 00 28 00 00 00 00 00 00 ff 77 03 00 úÃç#.(......ÿw.. +2024/02/20 16:01:34 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 000001e0 00 00 00 00 .... +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000003 (EV_EFI_BOOT_SERVICES_APPLICATION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 8d dc 5c c6 a1 fa d3 7a d6 12 21 14 85 2b b5 5d .Ü\Æ¡úÓzÖ.!..+µ] +2024/02/20 16:01:34 00000010 90 dd 35 37 bb 99 aa 82 99 9f 45 d5 83 d5 77 7e .Ý57».ª...EÕ.Õw~ +2024/02/20 16:01:34 00000020 ec db a1 62 63 80 ee c8 08 45 1d 0b 6b 0e 5c 55 ìÛ¡bc.îÈ.E..k.\U +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 18 90 be 7b 00 00 00 00 d8 a7 0e 00 00 00 00 00 ..¾{....ا...... +2024/02/20 16:01:34 00000010 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 ........p....... +2024/02/20 16:01:34 00000020 02 01 0c 00 d0 41 03 0a 00 00 00 00 01 01 06 00 ....ÐA.......... +2024/02/20 16:01:34 00000030 00 03 04 01 2a 00 0f 00 00 00 00 28 00 00 00 00 ....*......(.... +2024/02/20 16:01:34 00000040 00 00 00 50 03 00 00 00 00 00 79 4a 7a 50 a4 ec ...P......yJzP¤ì +2024/02/20 16:01:34 00000050 d0 4f 8b bc d5 f4 fa c3 e7 23 02 02 04 04 30 00 ÐO.¼ÕôúÃç#....0. +2024/02/20 16:01:34 00000060 5c 00 45 00 46 00 49 00 5c 00 42 00 4f 00 4f 00 \.E.F.I.\.B.O.O. +2024/02/20 16:01:34 00000070 54 00 5c 00 42 00 4f 00 4f 00 54 00 58 00 36 00 T.\.B.O.O.T.X.6. +2024/02/20 16:01:34 00000080 34 00 2e 00 45 00 46 00 49 00 00 00 7f ff 04 00 4...E.F.I....ÿ.. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 05 33 57 ea 65 18 5f 01 0b 8c aa 1f c2 65 cf d5 .3Wêe._...ª.ÂeÏÕ +2024/02/20 16:01:34 00000010 e8 0c 7c c7 81 25 4f a3 f1 e5 ea 9d 34 5a 87 00 è.|Ç.%O£ñåê.4Z.. +2024/02/20 16:01:34 00000020 3c f7 61 47 2a 2f 04 23 f1 52 97 f5 5c fe 24 8f <÷aG*/.#ñR.õ\þ$. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 4d 6f 6b 4c 69 73 74 00 MokList. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 80 ee 25 71 33 4a 57 bf 90 23 8d 21 96 44 47 e5 .î%q3JW¿.#.!.DGå +2024/02/20 16:01:34 00000010 42 07 9d 48 05 fa 87 88 78 17 a9 7d cb 72 09 06 B..H.ú..x.©}Ër.. +2024/02/20 16:01:34 00000020 68 3a 09 b1 ac 63 4c 76 c0 c0 be 11 77 f7 61 10 h:.±¬cLvÀÀ¾.w÷a. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 4d 6f 6b 4c 69 73 74 58 00 MokListX. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x800000E0 (EV_EFI_VARIABLE_AUTHORITY) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 62 bb 10 36 f9 eb 75 8b b5 e2 56 c1 4d 53 a3 c1 b».6ùëu.µâVÁMS£Á +2024/02/20 16:01:34 00000010 f1 49 77 79 ec 88 16 e2 16 3b 48 48 6e 22 d0 b7 ñIwyì..â.;HHn"з +2024/02/20 16:01:34 00000020 4f a1 8c 3b c1 f1 71 71 1b 7f bc c0 37 eb 84 93 O¡.;Áñqq..¼À7ë.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 50 ab 5d 60 46 e0 00 43 ab b6 3d d8 10 dd 8b 23 P«]`Fà.C«¶=Ø.Ý.# +2024/02/20 16:01:34 00000010 09 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 53 00 62 00 61 00 74 00 4c 00 65 00 76 00 65 00 S.b.a.t.L.e.v.e. +2024/02/20 16:01:34 00000030 6c 00 73 62 61 74 2c 31 2c 32 30 32 32 30 35 32 l.sbat,1,2022052 +2024/02/20 16:01:34 00000040 34 30 30 0a 67 72 75 62 2c 32 0a 400.grub,2. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 8d 2c e8 7d 86 f5 5f cf ab 77 0a 04 7b 09 0d a2 .,è}.õ_Ï«w..{..¢ +2024/02/20 16:01:34 00000010 32 70 fa 20 68 32 df ea 7e 0c 94 6f ff 45 1f 81 2pú h2ßê~..oÿE.. +2024/02/20 16:01:34 00000020 9a dd 24 23 74 be 55 1b 0d 63 18 ed 6c 7d 41 d8 .Ý$#t¾U..c.íl}AØ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 4d 6f 6b 4c 69 73 74 54 72 75 73 74 65 64 00 MokListTrusted. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000003 (EV_EFI_BOOT_SERVICES_APPLICATION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 fe 21 ee 53 03 30 b0 01 9f 7f ab 92 df 0f cb 5d þ!îS.0°...«.ß.Ë] +2024/02/20 16:01:34 00000010 9c c9 55 cd c8 57 a5 6b e4 4a 39 b6 e5 7c af 8f .ÉUÍÈW¥käJ9¶å|¯. +2024/02/20 16:01:34 00000020 6a 5c 75 af 10 ff 12 94 2c c8 56 e2 71 c0 15 7f j\u¯.ÿ..,ÈVâqÀ.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 18 70 e0 7c 00 00 00 00 e8 58 01 00 00 00 00 00 .pà|....èX...... +2024/02/20 16:01:34 00000010 00 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 ........0....... +2024/02/20 16:01:34 00000020 04 04 2c 00 5c 00 45 00 46 00 49 00 5c 00 42 00 ..,.\.E.F.I.\.B. +2024/02/20 16:01:34 00000030 4f 00 4f 00 54 00 5c 00 66 00 62 00 78 00 36 00 O.O.T.\.f.b.x.6. +2024/02/20 16:01:34 00000040 34 00 2e 00 65 00 66 00 69 00 00 00 7f ff 04 00 4...e.f.i....ÿ.. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000003 (EV_EFI_BOOT_SERVICES_APPLICATION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 8d dc 5c c6 a1 fa d3 7a d6 12 21 14 85 2b b5 5d .Ü\Æ¡úÓzÖ.!..+µ] +2024/02/20 16:01:34 00000010 90 dd 35 37 bb 99 aa 82 99 9f 45 d5 83 d5 77 7e .Ý57».ª...EÕ.Õw~ +2024/02/20 16:01:34 00000020 ec db a1 62 63 80 ee c8 08 45 1d 0b 6b 0e 5c 55 ìÛ¡bc.îÈ.E..k.\U +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 18 90 be 7b 00 00 00 00 d8 a7 0e 00 00 00 00 00 ..¾{....ا...... +2024/02/20 16:01:34 00000010 00 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 ........t....... +2024/02/20 16:01:34 00000020 02 01 0c 00 d0 41 03 0a 00 00 00 00 01 01 06 00 ....ÐA.......... +2024/02/20 16:01:34 00000030 00 03 04 01 2a 00 0f 00 00 00 00 28 00 00 00 00 ....*......(.... +2024/02/20 16:01:34 00000040 00 00 00 50 03 00 00 00 00 00 79 4a 7a 50 a4 ec ...P......yJzP¤ì +2024/02/20 16:01:34 00000050 d0 4f 8b bc d5 f4 fa c3 e7 23 02 02 04 04 34 00 ÐO.¼ÕôúÃç#....4. +2024/02/20 16:01:34 00000060 5c 00 45 00 46 00 49 00 5c 00 75 00 62 00 75 00 \.E.F.I.\.u.b.u. +2024/02/20 16:01:34 00000070 6e 00 74 00 75 00 5c 00 73 00 68 00 69 00 6d 00 n.t.u.\.s.h.i.m. +2024/02/20 16:01:34 00000080 78 00 36 00 34 00 2e 00 65 00 66 00 69 00 00 00 x.6.4...e.f.i... +2024/02/20 16:01:34 00000090 7f ff 04 00 .ÿ.. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 05 33 57 ea 65 18 5f 01 0b 8c aa 1f c2 65 cf d5 .3Wêe._...ª.ÂeÏÕ +2024/02/20 16:01:34 00000010 e8 0c 7c c7 81 25 4f a3 f1 e5 ea 9d 34 5a 87 00 è.|Ç.%O£ñåê.4Z.. +2024/02/20 16:01:34 00000020 3c f7 61 47 2a 2f 04 23 f1 52 97 f5 5c fe 24 8f <÷aG*/.#ñR.õ\þ$. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 4d 6f 6b 4c 69 73 74 00 MokList. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 80 ee 25 71 33 4a 57 bf 90 23 8d 21 96 44 47 e5 .î%q3JW¿.#.!.DGå +2024/02/20 16:01:34 00000010 42 07 9d 48 05 fa 87 88 78 17 a9 7d cb 72 09 06 B..H.ú..x.©}Ër.. +2024/02/20 16:01:34 00000020 68 3a 09 b1 ac 63 4c 76 c0 c0 be 11 77 f7 61 10 h:.±¬cLvÀÀ¾.w÷a. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 4d 6f 6b 4c 69 73 74 58 00 MokListX. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 0 +2024/02/20 16:01:34 Type : 0x800000E0 (EV_EFI_VARIABLE_AUTHORITY) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 62 bb 10 36 f9 eb 75 8b b5 e2 56 c1 4d 53 a3 c1 b».6ùëu.µâVÁMS£Á +2024/02/20 16:01:34 00000010 f1 49 77 79 ec 88 16 e2 16 3b 48 48 6e 22 d0 b7 ñIwyì..â.;HHn"з +2024/02/20 16:01:34 00000020 4f a1 8c 3b c1 f1 71 71 1b 7f bc c0 37 eb 84 93 O¡.;Áñqq..¼À7ë.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 50 ab 5d 60 46 e0 00 43 ab b6 3d d8 10 dd 8b 23 P«]`Fà.C«¶=Ø.Ý.# +2024/02/20 16:01:34 00000010 09 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 ................ +2024/02/20 16:01:34 00000020 53 00 62 00 61 00 74 00 4c 00 65 00 76 00 65 00 S.b.a.t.L.e.v.e. +2024/02/20 16:01:34 00000030 6c 00 73 62 61 74 2c 31 2c 32 30 32 32 30 35 32 l.sbat,1,2022052 +2024/02/20 16:01:34 00000040 34 30 30 0a 67 72 75 62 2c 32 0a 400.grub,2. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 8d 2c e8 7d 86 f5 5f cf ab 77 0a 04 7b 09 0d a2 .,è}.õ_Ï«w..{..¢ +2024/02/20 16:01:34 00000010 32 70 fa 20 68 32 df ea 7e 0c 94 6f ff 45 1f 81 2pú h2ßê~..oÿE.. +2024/02/20 16:01:34 00000020 9a dd 24 23 74 be 55 1b 0d 63 18 ed 6c 7d 41 d8 .Ý$#t¾U..c.íl}AØ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 4d 6f 6b 4c 69 73 74 54 72 75 73 74 65 64 00 MokListTrusted. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000003 (EV_EFI_BOOT_SERVICES_APPLICATION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 6d 8c b3 c7 e0 81 64 26 85 e2 d4 d5 11 b5 1a 5e m.³Çà.d&.âÔÕ.µ.^ +2024/02/20 16:01:34 00000010 ad f5 f9 d3 2b f2 67 fb fc a5 dc 17 1d 45 08 d6 .õùÓ+ògûü¥Ü..E.Ö +2024/02/20 16:01:34 00000020 50 4d 05 ea a3 a8 36 0a c5 a0 45 82 93 31 77 6f PM.꣨6.Å.E..1wo +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 18 20 7c 7b 00 00 00 00 88 a7 27 00 00 00 00 00 . |{.....§'..... +2024/02/20 16:01:34 00000010 00 00 00 00 00 00 00 00 38 00 00 00 00 00 00 00 ........8....... +2024/02/20 16:01:34 00000020 04 04 34 00 5c 00 45 00 46 00 49 00 5c 00 75 00 ..4.\.E.F.I.\.u. +2024/02/20 16:01:34 00000030 62 00 75 00 6e 00 74 00 75 00 5c 00 67 00 72 00 b.u.n.t.u.\.g.r. +2024/02/20 16:01:34 00000040 75 00 62 00 78 00 36 00 34 00 2e 00 65 00 66 00 u.b.x.6.4...e.f. +2024/02/20 16:01:34 00000050 69 00 00 00 7f ff 04 00 i....ÿ.. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 be c6 ac 52 88 ad f3 06 d3 b3 d8 5e 73 63 9b 9c ¾Æ¬R..ó.Ó³Ø^sc.. +2024/02/20 16:01:34 00000010 8c 56 97 0f e7 cf c1 8e 8b 90 a5 7b 85 59 00 9c .V..çÏÁ...¥{.Y.. +2024/02/20 16:01:34 00000020 d5 96 4b 68 a2 8b 60 cb 94 e1 6f 99 44 ef 0e a2 Õ.Kh¢.`Ë.áo.Dï.¢ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 35 29 2f 45 46 49 2f (hd0,gpt15)/EFI/ +2024/02/20 16:01:34 00000010 75 62 75 6e 74 75 2f 67 72 75 62 2e 63 66 67 00 ubuntu/grub.cfg. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 83 8a 1b 76 95 ce 5c 1c 61 82 fa 47 05 f7 5f 75 ...v.Î\.a.úG.÷_u +2024/02/20 16:01:34 00000010 2c a4 4d 89 fd ad af de 0d 80 03 7a 30 cb ff 4c ,¤M.ý.¯Þ...z0ËÿL +2024/02/20 16:01:34 00000020 99 61 32 fd fe 32 12 88 87 b8 d1 2d d6 79 3f f5 .a2ýþ2...¸Ñ-Öy?õ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 61 72 63 68 grub_cmd: search +2024/02/20 16:01:34 00000010 2e 66 73 5f 75 75 69 64 20 39 36 30 63 62 30 35 .fs_uuid 960cb05 +2024/02/20 16:01:34 00000020 61 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 a-e11f-4dd7-a4f1 +2024/02/20 16:01:34 00000030 2d 62 62 35 37 32 37 64 30 37 65 31 61 20 72 6f -bb5727d07e1a ro +2024/02/20 16:01:34 00000040 6f 74 00 ot. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 c7 29 23 09 3d d8 b0 83 10 53 97 c6 39 76 3c 93 Ç)#.=Ø°..S.Æ9v<. +2024/02/20 16:01:34 00000010 18 00 fe 96 d4 e3 79 d9 80 d0 43 c7 f8 ab a3 c8 ..þ.ÔãyÙ.ÐCÇø«£È +2024/02/20 16:01:34 00000020 f6 0d ad a0 7d 9b 2a 8c eb d9 76 26 38 21 13 65 ö...}.*.ëÙv&8!.e +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 70 72 grub_cmd: set pr +2024/02/20 16:01:34 00000010 65 66 69 78 3d 28 68 64 30 2c 67 70 74 31 29 2f efix=(hd0,gpt1)/ +2024/02/20 16:01:34 00000020 62 6f 6f 74 2f 67 72 75 62 00 boot/grub. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 0a b1 f1 31 06 b9 6e c5 60 5b 11 e5 04 cb 8d 3a .±ñ1.¹nÅ`[.å.Ë.: +2024/02/20 16:01:34 00000010 59 77 47 f5 1f e0 33 2a 74 40 8c 7f 90 65 cb 6b YwGõ.à3*t@...eËk +2024/02/20 16:01:34 00000020 65 4e f2 a8 c9 0a fa 6b 87 55 bc fc 5a 1f 11 82 eNò¨É.úk.U¼üZ... +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 78 38 36 5f 36 34 2d 65 66 69 2f grub/x86_64-efi/ +2024/02/20 16:01:34 00000020 63 6f 6d 6d 61 6e 64 2e 6c 73 74 00 command.lst. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 73 e1 7c 3e a3 6d ea 57 6f 10 77 28 63 0b 93 7f sá|>£mêWo.w(c... +2024/02/20 16:01:34 00000010 74 00 69 54 f2 be 91 43 eb 12 4b 76 70 61 73 d7 t.iTò¾.Cë.Kvpas× +2024/02/20 16:01:34 00000020 d9 a6 8c 32 e7 c9 0f 74 b0 ff 5c ed 89 60 39 14 Ù¦.2çÉ.t°ÿ\í.`9. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 78 38 36 5f 36 34 2d 65 66 69 2f grub/x86_64-efi/ +2024/02/20 16:01:34 00000020 66 73 2e 6c 73 74 00 fs.lst. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 c7 d0 1a e5 14 04 41 1a 65 b0 d2 6a 60 1a 01 d6 ÇÐ.å..A.e°Òj`..Ö +2024/02/20 16:01:34 00000010 3b 91 4e 74 77 82 5d 5e cd 87 84 0a 36 43 4c 6b ;.Ntw.]^Í...6CLk +2024/02/20 16:01:34 00000020 d9 56 72 54 41 b8 2a 66 b6 58 1c 36 bd 38 fa d4 ÙVrTA¸*f¶X.6½8úÔ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 78 38 36 5f 36 34 2d 65 66 69 2f grub/x86_64-efi/ +2024/02/20 16:01:34 00000020 63 72 79 70 74 6f 2e 6c 73 74 00 crypto.lst. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 80 08 24 fd 12 4d f1 0e ea fd 6b ba 36 c5 96 c3 ..$ý.Mñ.êýkº6Å.à +2024/02/20 16:01:34 00000010 3a fb b5 27 e3 00 6b 58 c1 9f ad ce d4 7b 03 c8 :ûµ'ã.kXÁ..ÎÔ{.È +2024/02/20 16:01:34 00000020 ae 92 f8 9e f3 ca ef 23 46 b3 bd 54 5c fd d8 de ®.ø.óÊï#F³½T\ýØÞ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 78 38 36 5f 36 34 2d 65 66 69 2f grub/x86_64-efi/ +2024/02/20 16:01:34 00000020 74 65 72 6d 69 6e 61 6c 2e 6c 73 74 00 terminal.lst. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 ab 8c 53 ac cc 47 ff ef 55 c4 b6 07 72 5b 4b da «.S¬ÌGÿïUĶ.r[KÚ +2024/02/20 16:01:34 00000010 c7 eb 63 e4 ed 7e c2 d5 65 50 eb 0b 97 4a e5 46 Çëcäí~ÂÕePë..JåF +2024/02/20 16:01:34 00000020 b5 df b6 b1 19 b9 c6 56 9f 47 37 ad 9a d7 9d bb µß¶±.¹ÆV.G7..×.» +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 63 6f 6e 66 69 67 grub_cmd: config +2024/02/20 16:01:34 00000010 66 69 6c 65 20 28 68 64 30 2c 67 70 74 31 29 2f file (hd0,gpt1)/ +2024/02/20 16:01:34 00000020 62 6f 6f 74 2f 67 72 75 62 2f 67 72 75 62 2e 63 boot/grub/grub.c +2024/02/20 16:01:34 00000030 66 67 00 fg. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a0 99 a2 b5 f1 b2 e8 d9 df 0d 56 48 a3 2d b3 54 ..¢µñ²èÙß.VH£-³T +2024/02/20 16:01:34 00000010 23 c9 53 e9 35 7c de c9 84 b4 18 7a e8 c7 67 e2 #ÉSé5|ÞÉ.´.zèÇgâ +2024/02/20 16:01:34 00000020 12 8f 66 fd 98 25 de 84 3e ae 8e 0c 37 f9 fc 2e ..fý.%Þ.>®..7ùü. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 67 72 75 62 2e 63 66 67 00 grub/grub.cfg. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 56 bb cd 86 47 a6 e5 bf e7 c8 71 6f 36 10 ce ff V»Í.G¦å¿çÈqo6.Îÿ +2024/02/20 16:01:34 00000010 f4 ac a1 b4 c3 1d ef 4a d9 f4 7f 7a 6c ee 68 bb ô¬¡´Ã.ïJÙô.zlîh» +2024/02/20 16:01:34 00000020 83 1f e4 74 02 66 30 be d7 d0 53 e1 2a a9 75 1e ..ät.f0¾×ÐSá*©u. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 2d 73 20 28 grub_cmd: [ -s ( +2024/02/20 16:01:34 00000010 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f 67 hd0,gpt1)/boot/g +2024/02/20 16:01:34 00000020 72 75 62 2f 67 72 75 62 65 6e 76 20 5d 00 rub/grubenv ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a6 b1 3b 11 a7 52 a7 d6 90 31 e8 f9 0f e7 28 b2 ¦±;.§R§Ö.1èù.ç(² +2024/02/20 16:01:34 00000010 37 e2 12 c8 8c 5f 5e a1 da c6 72 f0 64 72 b1 5b 7â.È._^¡ÚÆrðdr±[ +2024/02/20 16:01:34 00000020 c3 13 33 b3 2e 62 29 63 11 cf 37 df 45 b9 03 89 Ã.3³.b)c.Ï7ßE¹.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 67 72 75 62 65 6e 76 00 grub/grubenv. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 54 1c 82 f4 04 67 19 d9 bd a2 72 92 78 af 73 5f T..ô.g.Ù½¢r.x¯s_ +2024/02/20 16:01:34 00000010 44 e4 0d 77 9d c8 60 b6 9b 6f c9 e4 dd c3 d1 23 Dä.w.È`¶.oÉäÝÃÑ# +2024/02/20 16:01:34 00000020 38 30 fb 10 1d c4 87 f9 52 4c cf 5a a1 52 f5 f5 80û..Ä.ùRLÏZ¡Rõõ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 68 61 grub_cmd: set ha +2024/02/20 16:01:34 00000010 76 65 5f 67 72 75 62 65 6e 76 3d 74 72 75 65 00 ve_grubenv=true. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 b0 f5 c1 56 e0 35 81 3a eb 78 d5 ec 47 d4 a6 c2 °õÁVà5.:ëxÕìGԦ +2024/02/20 16:01:34 00000010 d0 65 1c 88 43 84 98 79 07 34 0f d1 8b 45 38 4c Ðe..C..y.4.Ñ.E8L +2024/02/20 16:01:34 00000020 da b8 cb 46 0b 54 75 42 7c 84 88 68 b1 32 88 7b Ú¸ËF.TuB|..h±2.{ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 6c 6f 61 64 5f 65 grub_cmd: load_e +2024/02/20 16:01:34 00000010 6e 76 00 nv. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a6 b1 3b 11 a7 52 a7 d6 90 31 e8 f9 0f e7 28 b2 ¦±;.§R§Ö.1èù.ç(² +2024/02/20 16:01:34 00000010 37 e2 12 c8 8c 5f 5e a1 da c6 72 f0 64 72 b1 5b 7â.È._^¡ÚÆrðdr±[ +2024/02/20 16:01:34 00000020 c3 13 33 b3 2e 62 29 63 11 cf 37 df 45 b9 03 89 Ã.3³.b)c.Ï7ßE¹.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 28 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f (hd0,gpt1)/boot/ +2024/02/20 16:01:34 00000010 67 72 75 62 2f 67 72 75 62 65 6e 76 00 grub/grubenv. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 1b 2d 9a 89 f9 8d 0d 60 ee 47 64 8b 01 6d e8 6c .-..ù..`îGd..mèl +2024/02/20 16:01:34 00000010 2c 78 40 b2 6b d3 12 48 be 74 c3 14 6a 07 e0 c8 ,x@²kÓ.H¾tÃ.j.àÈ +2024/02/20 16:01:34 00000020 3e 88 98 87 fe 21 2a 12 19 43 dd bd ab 5d 32 46 >...þ!*..Cݽ«]2F +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 20 3d 20 32 grub_cmd: [ = 2 +2024/02/20 16:01:34 00000010 20 5d 00 ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 ae 10 61 c4 5b 3c 25 c8 9c ea 3f 7d de e4 64 0f ®.aÄ[<%È.ê?}Þäd. +2024/02/20 16:01:34 00000010 8e 77 60 86 f7 d6 2f b4 b9 c1 d5 61 48 a1 be 04 .w`.÷Ö/´¹ÁÕaH¡¾. +2024/02/20 16:01:34 00000020 bf 11 de 6a 39 53 44 56 7b 53 8c 6d f0 6d 07 9e ¿.Þj9SDV{S.mðm.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 20 3d 20 31 grub_cmd: [ = 1 +2024/02/20 16:01:34 00000010 20 5d 00 ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 22 2e 25 70 e5 2f 72 bb 99 f3 ef 97 cb 75 1d d4 ".%på/r».óï.Ëu.Ô +2024/02/20 16:01:34 00000010 de 0f 3a 54 55 83 ea 4d 66 01 56 80 67 3f 74 bb Þ.:TU.êMf.V.g?t» +2024/02/20 16:01:34 00000020 27 03 1b d0 ca 5c b3 b5 8a 25 ec 78 ce 8f 48 51 '..ÐÊ\³µ.%ìxÎ.HQ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 20 5d 00 grub_cmd: [ ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 6b f6 24 2f 8e b0 ca 72 17 c6 e3 a5 d4 c6 a6 2e kö$/.°Êr.Æã¥ÔƦ. +2024/02/20 16:01:34 00000010 58 58 44 02 64 e8 46 96 cd 67 30 6e f2 db 8c f6 XXD.dèF.Íg0nòÛ.ö +2024/02/20 16:01:34 00000020 25 95 2d 5f d9 06 1d aa de fd 18 10 39 47 97 40 %.-_Ù..ªÞý..9G.@ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 64 65 grub_cmd: set de +2024/02/20 16:01:34 00000010 66 61 75 6c 74 3d 30 00 fault=0. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 10 b1 f8 d0 36 ae fd 32 ce 77 03 11 ea 00 42 6e .±øÐ6®ý2Îw..ê.Bn +2024/02/20 16:01:34 00000010 14 7b 3d ae e3 78 dd 06 79 ae da 81 96 3b 2c 53 .{=®ãxÝ.y®Ú..;,S +2024/02/20 16:01:34 00000020 89 17 87 87 96 2c e9 ea 08 e5 57 17 01 cc e9 4a .....,éê.åW..ÌéJ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 78 79 20 3d grub_cmd: [ xy = +2024/02/20 16:01:34 00000010 20 78 79 20 5d 00 xy ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 86 61 95 3f 51 8c 89 8c b9 40 7c 83 1f a6 06 54 .a.?Q...¹@|..¦.T +2024/02/20 16:01:34 00000010 fd af 98 04 d2 5d 99 cb c3 1f d1 52 55 b5 32 ba ý¯..Ò].ËÃ.ÑRUµ2º +2024/02/20 16:01:34 00000020 d0 44 c3 90 b7 a6 3b 29 61 ee d1 e9 be ac 66 03 ÐDÃ.·¦;)aîÑ龬f. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 6d 65 6e 75 65 6e grub_cmd: menuen +2024/02/20 16:01:34 00000010 74 72 79 5f 69 64 5f 6f 70 74 69 6f 6e 3d 2d 2d try_id_option=-- +2024/02/20 16:01:34 00000020 69 64 00 id. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 95 2d ce 39 0e a9 e2 83 ee 7b 3d ef b6 64 fc 8d .-Î9.©â.î{=ï¶dü. +2024/02/20 16:01:34 00000010 7f 94 2a 95 98 bd 8b 6d 20 a9 84 3b 28 78 6e c7 ..*..½.m ©.;(xnÇ +2024/02/20 16:01:34 00000020 c2 7f 6b af a2 8c 0c 16 01 3c fb 88 db b7 b5 68 Â.k¯¢....<û.Û·µh +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 65 78 70 6f 72 74 grub_cmd: export +2024/02/20 16:01:34 00000010 20 6d 65 6e 75 65 6e 74 72 79 5f 69 64 5f 6f 70 menuentry_id_op +2024/02/20 16:01:34 00000020 74 69 6f 6e 00 tion. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 22 2e 25 70 e5 2f 72 bb 99 f3 ef 97 cb 75 1d d4 ".%på/r».óï.Ëu.Ô +2024/02/20 16:01:34 00000010 de 0f 3a 54 55 83 ea 4d 66 01 56 80 67 3f 74 bb Þ.:TU.êMf.V.g?t» +2024/02/20 16:01:34 00000020 27 03 1b d0 ca 5c b3 b5 8a 25 ec 78 ce 8f 48 51 '..ÐÊ\³µ.%ìxÎ.HQ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 20 5d 00 grub_cmd: [ ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 5c d3 4c ee 9c e2 4c a6 e4 01 a8 0e cb 46 54 03 \ÓLî.âL¦ä.¨.ËFT. +2024/02/20 16:01:34 00000010 1b fb cf e5 c5 b2 1c 19 f2 d9 90 67 6f 84 53 e8 .ûÏåŲ..òÙ.go.Sè +2024/02/20 16:01:34 00000020 9a 69 ec f4 a1 53 c2 b0 25 ff 7b a4 b0 3a 2e 2a .iìô¡S°%ÿ{¤°:.* +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 74 65 72 6d 69 6e grub_cmd: termin +2024/02/20 16:01:34 00000010 61 6c 5f 69 6e 70 75 74 20 63 6f 6e 73 6f 6c 65 al_input console +2024/02/20 16:01:34 00000020 00 . +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a4 7d 54 22 ef 14 05 12 0a 22 46 a5 5b c4 e6 f6 ¤}T"ï...."F¥[Äæö +2024/02/20 16:01:34 00000010 0d e6 f4 aa 04 10 dc 20 5d 5e 80 ba 9d ce 7a b4 .æôª..Ü ]^.º.Îz´ +2024/02/20 16:01:34 00000020 80 ac 93 a0 26 d1 75 12 02 b2 e6 8b a3 a0 69 4c .¬..&Ñu..²æ.£.iL +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 74 65 72 6d 69 6e grub_cmd: termin +2024/02/20 16:01:34 00000010 61 6c 5f 6f 75 74 70 75 74 20 63 6f 6e 73 6f 6c al_output consol +2024/02/20 16:01:34 00000020 65 00 e. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 ae 10 61 c4 5b 3c 25 c8 9c ea 3f 7d de e4 64 0f ®.aÄ[<%È.ê?}Þäd. +2024/02/20 16:01:34 00000010 8e 77 60 86 f7 d6 2f b4 b9 c1 d5 61 48 a1 be 04 .w`.÷Ö/´¹ÁÕaH¡¾. +2024/02/20 16:01:34 00000020 bf 11 de 6a 39 53 44 56 7b 53 8c 6d f0 6d 07 9e ¿.Þj9SDV{S.mðm.. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 20 3d 20 31 grub_cmd: [ = 1 +2024/02/20 16:01:34 00000010 20 5d 00 ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 10 b1 f8 d0 36 ae fd 32 ce 77 03 11 ea 00 42 6e .±øÐ6®ý2Îw..ê.Bn +2024/02/20 16:01:34 00000010 14 7b 3d ae e3 78 dd 06 79 ae da 81 96 3b 2c 53 .{=®ãxÝ.y®Ú..;,S +2024/02/20 16:01:34 00000020 89 17 87 87 96 2c e9 ea 08 e5 57 17 01 cc e9 4a .....,éê.åW..ÌéJ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 78 79 20 3d grub_cmd: [ xy = +2024/02/20 16:01:34 00000010 20 78 79 20 5d 00 xy ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 9f 76 cd a7 6f d8 2e 4b 45 a0 0f 25 83 57 a7 10 .vͧoØ.KE..%.W§. +2024/02/20 16:01:34 00000010 46 17 2e a7 de e4 37 01 7a d0 d9 4b 48 9f 7d 8b F..§Þä7.zÐÙKH.}. +2024/02/20 16:01:34 00000020 02 1f 12 10 44 e7 88 65 42 f5 dc 8a 1c f1 56 17 ....Dç.eBõÜ..ñV. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 74 69 grub_cmd: set ti +2024/02/20 16:01:34 00000010 6d 65 6f 75 74 5f 73 74 79 6c 65 3d 68 69 64 64 meout_style=hidd +2024/02/20 16:01:34 00000020 65 6e 00 en. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 54 83 6d 34 65 33 9d b0 8f 1f c8 c7 cc 26 30 91 T.m4e3.°..ÈÇÌ&0. +2024/02/20 16:01:34 00000010 8a 48 6c a4 44 7f 41 6d d5 a2 67 e3 37 30 8f 07 .Hl¤D.AmÕ¢gã70.. +2024/02/20 16:01:34 00000020 b8 98 c6 dd 7a 25 86 a3 82 ac 40 91 7f 1a c2 22 ¸.ÆÝz%.£.¬@...Â" +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 74 69 grub_cmd: set ti +2024/02/20 16:01:34 00000010 6d 65 6f 75 74 3d 30 00 meout=0. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 93 4a af c9 9c b0 a7 cb 1e f8 3c 5a 1e b0 1c 31 .J¯É.°§Ë.øÐ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 2d 65 20 28 grub_cmd: [ -e ( +2024/02/20 16:01:34 00000010 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f 67 hd0,gpt1)/boot/g +2024/02/20 16:01:34 00000020 72 75 62 2f 67 66 78 62 6c 61 63 6b 6c 69 73 74 rub/gfxblacklist +2024/02/20 16:01:34 00000030 2e 74 78 74 20 5d 00 .txt ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 8f 47 b4 06 48 17 6f cb ba d9 ba 21 39 d0 07 8f .G´.H.o˺ٺ!9Ð.. +2024/02/20 16:01:34 00000010 df 19 b1 bf 4c 7e b9 31 27 6e 1e a4 07 c8 b9 dc ß.±¿L~¹1'n.¤.È¹Ü +2024/02/20 16:01:34 00000020 74 7e d4 52 91 8e cc 79 0f d6 ad 91 67 26 53 63 t~ÔR..Ìy.Ö..g&Sc +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 65 66 69 20 grub_cmd: [ efi +2024/02/20 16:01:34 00000010 21 3d 20 70 63 20 5d 00 != pc ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 e1 6f b8 44 6b 3d 8c dc 0e 33 18 55 04 b6 9e 3d áo¸Dk=.Ü.3.U.¶.= +2024/02/20 16:01:34 00000010 00 d9 64 6d 5c 71 c4 23 11 c1 db aa 99 64 51 a9 .Ùdm\qÄ#.ÁÛª.dQ© +2024/02/20 16:01:34 00000020 f1 91 0b 70 f8 fa 1d 97 e6 a4 ec 3a be 6b f4 8d ñ..pøú..æ¤ì:¾kô. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 6c 69 grub_cmd: set li +2024/02/20 16:01:34 00000010 6e 75 78 5f 67 66 78 5f 6d 6f 64 65 3d 6b 65 65 nux_gfx_mode=kee +2024/02/20 16:01:34 00000020 70 00 p. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 f5 e5 36 5d 6e 97 64 94 11 36 2c 83 e2 e8 80 8f õå6]n.d..6,.âè.. +2024/02/20 16:01:34 00000010 7c 19 ef a1 1d 4f 16 d4 ac 66 09 32 14 51 0b ee |.ï¡.O.Ô¬f.2.Q.î +2024/02/20 16:01:34 00000020 d5 54 48 88 2c bb dd a8 f0 16 46 88 46 59 05 b0 ÕTH.,»Ý¨ð.F.FY.° +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 65 78 70 6f 72 74 grub_cmd: export +2024/02/20 16:01:34 00000010 20 6c 69 6e 75 78 5f 67 66 78 5f 6d 6f 64 65 00 linux_gfx_mode. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 fe aa 00 7d 57 f3 43 c3 fb 3f 78 2e 91 68 13 49 þª.}WóCÃû?x..h.I +2024/02/20 16:01:34 00000010 3d fa 34 f5 b1 7b 6f 3e fb 46 29 0f 1f b7 4f 06 =ú4õ±{o>ûF)..·O. +2024/02/20 16:01:34 00000020 98 16 f0 6c 31 84 54 2f 5a ed 19 bd 2a b0 d3 81 ..ðl1.T/Zí.½*°Ó. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 6d 65 6e 75 65 6e grub_cmd: menuen +2024/02/20 16:01:34 00000010 74 72 79 20 55 62 75 6e 74 75 20 2d 2d 63 6c 61 try Ubuntu --cla +2024/02/20 16:01:34 00000020 73 73 20 75 62 75 6e 74 75 20 2d 2d 63 6c 61 73 ss ubuntu --clas +2024/02/20 16:01:34 00000030 73 20 67 6e 75 2d 6c 69 6e 75 78 20 2d 2d 63 6c s gnu-linux --cl +2024/02/20 16:01:34 00000040 61 73 73 20 67 6e 75 20 2d 2d 63 6c 61 73 73 20 ass gnu --class +2024/02/20 16:01:34 00000050 6f 73 20 2d 2d 69 64 20 67 6e 75 6c 69 6e 75 78 os --id gnulinux +2024/02/20 16:01:34 00000060 2d 73 69 6d 70 6c 65 2d 39 36 30 63 62 30 35 61 -simple-960cb05a +2024/02/20 16:01:34 00000070 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d -e11f-4dd7-a4f1- +2024/02/20 16:01:34 00000080 62 62 35 37 32 37 64 30 37 65 31 61 20 7b 0a 09 bb5727d07e1a {.. +2024/02/20 16:01:34 00000090 72 65 63 6f 72 64 66 61 69 6c 0a 09 6c 6f 61 64 recordfail..load +2024/02/20 16:01:34 000000a0 5f 76 69 64 65 6f 0a 09 67 66 78 6d 6f 64 65 20 _video..gfxmode +2024/02/20 16:01:34 000000b0 24 6c 69 6e 75 78 5f 67 66 78 5f 6d 6f 64 65 0a $linux_gfx_mode. +2024/02/20 16:01:34 000000c0 09 69 6e 73 6d 6f 64 20 67 7a 69 6f 0a 09 69 66 .insmod gzio..if +2024/02/20 16:01:34 000000d0 20 5b 20 78 24 67 72 75 62 5f 70 6c 61 74 66 6f [ x$grub_platfo +2024/02/20 16:01:34 000000e0 72 6d 20 3d 20 78 78 65 6e 20 5d 3b 20 74 68 65 rm = xxen ]; the +2024/02/20 16:01:34 000000f0 6e 20 69 6e 73 6d 6f 64 20 78 7a 69 6f 3b 20 69 n insmod xzio; i +2024/02/20 16:01:34 00000100 6e 73 6d 6f 64 20 6c 7a 6f 70 69 6f 3b 20 66 69 nsmod lzopio; fi +2024/02/20 16:01:34 00000110 0a 09 69 6e 73 6d 6f 64 20 70 61 72 74 5f 67 70 ..insmod part_gp +2024/02/20 16:01:34 00000120 74 0a 09 69 6e 73 6d 6f 64 20 65 78 74 32 0a 09 t..insmod ext2.. +2024/02/20 16:01:34 00000130 73 65 61 72 63 68 20 2d 2d 6e 6f 2d 66 6c 6f 70 search --no-flop +2024/02/20 16:01:34 00000140 70 79 20 2d 2d 66 73 2d 75 75 69 64 20 2d 2d 73 py --fs-uuid --s +2024/02/20 16:01:34 00000150 65 74 3d 72 6f 6f 74 20 39 36 30 63 62 30 35 61 et=root 960cb05a +2024/02/20 16:01:34 00000160 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d -e11f-4dd7-a4f1- +2024/02/20 16:01:34 00000170 62 62 35 37 32 37 64 30 37 65 31 61 0a 09 6c 69 bb5727d07e1a..li +2024/02/20 16:01:34 00000180 6e 75 78 09 2f 62 6f 6f 74 2f 76 6d 6c 69 6e 75 nux./boot/vmlinu +2024/02/20 16:01:34 00000190 7a 2d 36 2e 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 z-6.2.16-v5.2.mv +2024/02/20 16:01:34 000001a0 70 34 32 2d 67 65 6e 65 72 69 63 20 72 6f 6f 74 p42-generic root +2024/02/20 16:01:34 000001b0 3d 55 55 49 44 3d 39 36 30 63 62 30 35 61 2d 65 =UUID=960cb05a-e +2024/02/20 16:01:34 000001c0 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 11f-4dd7-a4f1-bb +2024/02/20 16:01:34 000001d0 35 37 32 37 64 30 37 65 31 61 20 72 6f 20 20 63 5727d07e1a ro c +2024/02/20 16:01:34 000001e0 6f 6e 73 6f 6c 65 3d 68 76 63 30 20 69 6d 61 5f onsole=hvc0 ima_ +2024/02/20 16:01:34 000001f0 68 61 73 68 3d 73 68 61 33 38 34 20 78 78 78 0a hash=sha384 xxx. +2024/02/20 16:01:34 00000200 09 69 6e 69 74 72 64 09 2f 62 6f 6f 74 2f 69 6e .initrd./boot/in +2024/02/20 16:01:34 00000210 69 74 72 64 2e 69 6d 67 2d 36 2e 32 2e 31 36 2d itrd.img-6.2.16- +2024/02/20 16:01:34 00000220 76 35 2e 32 2e 6d 76 70 34 32 2d 67 65 6e 65 72 v5.2.mvp42-gener +2024/02/20 16:01:34 00000230 69 63 0a 7d 00 ic.}. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 9b d8 fe fe 53 c9 88 33 cf 9f b9 30 ab b1 cb f8 .ØþþSÉ.3Ï.¹0«±Ëø +2024/02/20 16:01:34 00000010 6d 27 fc 58 bc 71 4a 2b f1 22 ef 69 6b db 30 f5 m'üX¼qJ+ñ"ïikÛ0õ +2024/02/20 16:01:34 00000020 79 10 9f a1 5a 11 04 37 e9 d5 c4 b8 30 2c aa 96 y..¡Z..7éÕĸ0,ª. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 75 62 6d 65 6e grub_cmd: submen +2024/02/20 16:01:34 00000010 75 20 41 64 76 61 6e 63 65 64 20 6f 70 74 69 6f u Advanced optio +2024/02/20 16:01:34 00000020 6e 73 20 66 6f 72 20 55 62 75 6e 74 75 20 2d 2d ns for Ubuntu -- +2024/02/20 16:01:34 00000030 69 64 20 67 6e 75 6c 69 6e 75 78 2d 61 64 76 61 id gnulinux-adva +2024/02/20 16:01:34 00000040 6e 63 65 64 2d 39 36 30 63 62 30 35 61 2d 65 31 nced-960cb05a-e1 +2024/02/20 16:01:34 00000050 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 35 1f-4dd7-a4f1-bb5 +2024/02/20 16:01:34 00000060 37 32 37 64 30 37 65 31 61 20 7b 0a 09 6d 65 6e 727d07e1a {..men +2024/02/20 16:01:34 00000070 75 65 6e 74 72 79 20 27 55 62 75 6e 74 75 2c 20 uentry 'Ubuntu, +2024/02/20 16:01:34 00000080 77 69 74 68 20 4c 69 6e 75 78 20 36 2e 32 2e 31 with Linux 6.2.1 +2024/02/20 16:01:34 00000090 36 2d 76 35 2e 32 2e 6d 76 70 34 32 2d 67 65 6e 6-v5.2.mvp42-gen +2024/02/20 16:01:34 000000a0 65 72 69 63 27 20 2d 2d 63 6c 61 73 73 20 75 62 eric' --class ub +2024/02/20 16:01:34 000000b0 75 6e 74 75 20 2d 2d 63 6c 61 73 73 20 67 6e 75 untu --class gnu +2024/02/20 16:01:34 000000c0 2d 6c 69 6e 75 78 20 2d 2d 63 6c 61 73 73 20 67 -linux --class g +2024/02/20 16:01:34 000000d0 6e 75 20 2d 2d 63 6c 61 73 73 20 6f 73 20 24 6d nu --class os $m +2024/02/20 16:01:34 000000e0 65 6e 75 65 6e 74 72 79 5f 69 64 5f 6f 70 74 69 enuentry_id_opti +2024/02/20 16:01:34 000000f0 6f 6e 20 27 67 6e 75 6c 69 6e 75 78 2d 36 2e 32 on 'gnulinux-6.2 +2024/02/20 16:01:34 00000100 2e 31 36 2d 76 35 2e 32 2e 6d 76 70 34 32 2d 67 .16-v5.2.mvp42-g +2024/02/20 16:01:34 00000110 65 6e 65 72 69 63 2d 61 64 76 61 6e 63 65 64 2d eneric-advanced- +2024/02/20 16:01:34 00000120 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d 34 64 960cb05a-e11f-4d +2024/02/20 16:01:34 00000130 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 64 30 d7-a4f1-bb5727d0 +2024/02/20 16:01:34 00000140 37 65 31 61 27 20 7b 0a 09 09 72 65 63 6f 72 64 7e1a' {...record +2024/02/20 16:01:34 00000150 66 61 69 6c 0a 09 09 6c 6f 61 64 5f 76 69 64 65 fail...load_vide +2024/02/20 16:01:34 00000160 6f 0a 09 09 67 66 78 6d 6f 64 65 20 24 6c 69 6e o...gfxmode $lin +2024/02/20 16:01:34 00000170 75 78 5f 67 66 78 5f 6d 6f 64 65 0a 09 09 69 6e ux_gfx_mode...in +2024/02/20 16:01:34 00000180 73 6d 6f 64 20 67 7a 69 6f 0a 09 09 69 66 20 5b smod gzio...if [ +2024/02/20 16:01:34 00000190 20 78 24 67 72 75 62 5f 70 6c 61 74 66 6f 72 6d x$grub_platform +2024/02/20 16:01:34 000001a0 20 3d 20 78 78 65 6e 20 5d 3b 20 74 68 65 6e 20 = xxen ]; then +2024/02/20 16:01:34 000001b0 69 6e 73 6d 6f 64 20 78 7a 69 6f 3b 20 69 6e 73 insmod xzio; ins +2024/02/20 16:01:34 000001c0 6d 6f 64 20 6c 7a 6f 70 69 6f 3b 20 66 69 0a 09 mod lzopio; fi.. +2024/02/20 16:01:34 000001d0 09 69 6e 73 6d 6f 64 20 70 61 72 74 5f 67 70 74 .insmod part_gpt +2024/02/20 16:01:34 000001e0 0a 09 09 69 6e 73 6d 6f 64 20 65 78 74 32 0a 09 ...insmod ext2.. +2024/02/20 16:01:34 000001f0 09 73 65 61 72 63 68 20 2d 2d 6e 6f 2d 66 6c 6f .search --no-flo +2024/02/20 16:01:34 00000200 70 70 79 20 2d 2d 66 73 2d 75 75 69 64 20 2d 2d ppy --fs-uuid -- +2024/02/20 16:01:34 00000210 73 65 74 3d 72 6f 6f 74 20 39 36 30 63 62 30 35 set=root 960cb05 +2024/02/20 16:01:34 00000220 61 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 a-e11f-4dd7-a4f1 +2024/02/20 16:01:34 00000230 2d 62 62 35 37 32 37 64 30 37 65 31 61 0a 09 09 -bb5727d07e1a... +2024/02/20 16:01:34 00000240 65 63 68 6f 09 27 4c 6f 61 64 69 6e 67 20 4c 69 echo.'Loading Li +2024/02/20 16:01:34 00000250 6e 75 78 20 36 2e 32 2e 31 36 2d 76 35 2e 32 2e nux 6.2.16-v5.2. +2024/02/20 16:01:34 00000260 6d 76 70 34 32 2d 67 65 6e 65 72 69 63 20 2e 2e mvp42-generic .. +2024/02/20 16:01:34 00000270 2e 27 0a 09 09 6c 69 6e 75 78 09 2f 62 6f 6f 74 .'...linux./boot +2024/02/20 16:01:34 00000280 2f 76 6d 6c 69 6e 75 7a 2d 36 2e 32 2e 31 36 2d /vmlinuz-6.2.16- +2024/02/20 16:01:34 00000290 76 35 2e 32 2e 6d 76 70 34 32 2d 67 65 6e 65 72 v5.2.mvp42-gener +2024/02/20 16:01:34 000002a0 69 63 20 72 6f 6f 74 3d 55 55 49 44 3d 39 36 30 ic root=UUID=960 +2024/02/20 16:01:34 000002b0 63 62 30 35 61 2d 65 31 31 66 2d 34 64 64 37 2d cb05a-e11f-4dd7- +2024/02/20 16:01:34 000002c0 61 34 66 31 2d 62 62 35 37 32 37 64 30 37 65 31 a4f1-bb5727d07e1 +2024/02/20 16:01:34 000002d0 61 20 72 6f 20 20 63 6f 6e 73 6f 6c 65 3d 68 76 a ro console=hv +2024/02/20 16:01:34 000002e0 63 30 20 69 6d 61 5f 68 61 73 68 3d 73 68 61 33 c0 ima_hash=sha3 +2024/02/20 16:01:34 000002f0 38 34 20 78 78 78 0a 09 09 65 63 68 6f 09 27 4c 84 xxx...echo.'L +2024/02/20 16:01:34 00000300 6f 61 64 69 6e 67 20 69 6e 69 74 69 61 6c 20 72 oading initial r +2024/02/20 16:01:34 00000310 61 6d 64 69 73 6b 20 2e 2e 2e 27 0a 09 09 69 6e amdisk ...'...in +2024/02/20 16:01:34 00000320 69 74 72 64 09 2f 62 6f 6f 74 2f 69 6e 69 74 72 itrd./boot/initr +2024/02/20 16:01:34 00000330 64 2e 69 6d 67 2d 36 2e 32 2e 31 36 2d 76 35 2e d.img-6.2.16-v5. +2024/02/20 16:01:34 00000340 32 2e 6d 76 70 34 32 2d 67 65 6e 65 72 69 63 0a 2.mvp42-generic. +2024/02/20 16:01:34 00000350 09 7d 0a 09 6d 65 6e 75 65 6e 74 72 79 20 27 55 .}..menuentry 'U +2024/02/20 16:01:34 00000360 62 75 6e 74 75 2c 20 77 69 74 68 20 4c 69 6e 75 buntu, with Linu +2024/02/20 16:01:34 00000370 78 20 36 2e 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 x 6.2.16-v5.2.mv +2024/02/20 16:01:34 00000380 70 34 32 2d 67 65 6e 65 72 69 63 20 28 72 65 63 p42-generic (rec +2024/02/20 16:01:34 00000390 6f 76 65 72 79 20 6d 6f 64 65 29 27 20 2d 2d 63 overy mode)' --c +2024/02/20 16:01:34 000003a0 6c 61 73 73 20 75 62 75 6e 74 75 20 2d 2d 63 6c lass ubuntu --cl +2024/02/20 16:01:34 000003b0 61 73 73 20 67 6e 75 2d 6c 69 6e 75 78 20 2d 2d ass gnu-linux -- +2024/02/20 16:01:34 000003c0 63 6c 61 73 73 20 67 6e 75 20 2d 2d 63 6c 61 73 class gnu --clas +2024/02/20 16:01:34 000003d0 73 20 6f 73 20 24 6d 65 6e 75 65 6e 74 72 79 5f s os $menuentry_ +2024/02/20 16:01:34 000003e0 69 64 5f 6f 70 74 69 6f 6e 20 27 67 6e 75 6c 69 id_option 'gnuli +2024/02/20 16:01:34 000003f0 6e 75 78 2d 36 2e 32 2e 31 36 2d 76 35 2e 32 2e nux-6.2.16-v5.2. +2024/02/20 16:01:34 00000400 6d 76 70 34 32 2d 67 65 6e 65 72 69 63 2d 72 65 mvp42-generic-re +2024/02/20 16:01:34 00000410 63 6f 76 65 72 79 2d 39 36 30 63 62 30 35 61 2d covery-960cb05a- +2024/02/20 16:01:34 00000420 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 e11f-4dd7-a4f1-b +2024/02/20 16:01:34 00000430 62 35 37 32 37 64 30 37 65 31 61 27 20 7b 0a 09 b5727d07e1a' {.. +2024/02/20 16:01:34 00000440 09 72 65 63 6f 72 64 66 61 69 6c 0a 09 09 6c 6f .recordfail...lo +2024/02/20 16:01:34 00000450 61 64 5f 76 69 64 65 6f 0a 09 09 69 6e 73 6d 6f ad_video...insmo +2024/02/20 16:01:34 00000460 64 20 67 7a 69 6f 0a 09 09 69 66 20 5b 20 78 24 d gzio...if [ x$ +2024/02/20 16:01:34 00000470 67 72 75 62 5f 70 6c 61 74 66 6f 72 6d 20 3d 20 grub_platform = +2024/02/20 16:01:34 00000480 78 78 65 6e 20 5d 3b 20 74 68 65 6e 20 69 6e 73 xxen ]; then ins +2024/02/20 16:01:34 00000490 6d 6f 64 20 78 7a 69 6f 3b 20 69 6e 73 6d 6f 64 mod xzio; insmod +2024/02/20 16:01:34 000004a0 20 6c 7a 6f 70 69 6f 3b 20 66 69 0a 09 09 69 6e lzopio; fi...in +2024/02/20 16:01:34 000004b0 73 6d 6f 64 20 70 61 72 74 5f 67 70 74 0a 09 09 smod part_gpt... +2024/02/20 16:01:34 000004c0 69 6e 73 6d 6f 64 20 65 78 74 32 0a 09 09 73 65 insmod ext2...se +2024/02/20 16:01:34 000004d0 61 72 63 68 20 2d 2d 6e 6f 2d 66 6c 6f 70 70 79 arch --no-floppy +2024/02/20 16:01:34 000004e0 20 2d 2d 66 73 2d 75 75 69 64 20 2d 2d 73 65 74 --fs-uuid --set +2024/02/20 16:01:34 000004f0 3d 72 6f 6f 74 20 39 36 30 63 62 30 35 61 2d 65 =root 960cb05a-e +2024/02/20 16:01:34 00000500 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 11f-4dd7-a4f1-bb +2024/02/20 16:01:34 00000510 35 37 32 37 64 30 37 65 31 61 0a 09 09 65 63 68 5727d07e1a...ech +2024/02/20 16:01:34 00000520 6f 09 27 4c 6f 61 64 69 6e 67 20 4c 69 6e 75 78 o.'Loading Linux +2024/02/20 16:01:34 00000530 20 36 2e 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 70 6.2.16-v5.2.mvp +2024/02/20 16:01:34 00000540 34 32 2d 67 65 6e 65 72 69 63 20 2e 2e 2e 27 0a 42-generic ...'. +2024/02/20 16:01:34 00000550 09 09 6c 69 6e 75 78 09 2f 62 6f 6f 74 2f 76 6d ..linux./boot/vm +2024/02/20 16:01:34 00000560 6c 69 6e 75 7a 2d 36 2e 32 2e 31 36 2d 76 35 2e linuz-6.2.16-v5. +2024/02/20 16:01:34 00000570 32 2e 6d 76 70 34 32 2d 67 65 6e 65 72 69 63 20 2.mvp42-generic +2024/02/20 16:01:34 00000580 72 6f 6f 74 3d 55 55 49 44 3d 39 36 30 63 62 30 root=UUID=960cb0 +2024/02/20 16:01:34 00000590 35 61 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 5a-e11f-4dd7-a4f +2024/02/20 16:01:34 000005a0 31 2d 62 62 35 37 32 37 64 30 37 65 31 61 20 72 1-bb5727d07e1a r +2024/02/20 16:01:34 000005b0 6f 20 72 65 63 6f 76 65 72 79 20 6e 6f 6d 6f 64 o recovery nomod +2024/02/20 16:01:34 000005c0 65 73 65 74 20 64 69 73 5f 75 63 6f 64 65 5f 6c eset dis_ucode_l +2024/02/20 16:01:34 000005d0 64 72 20 0a 09 09 65 63 68 6f 09 27 4c 6f 61 64 dr ...echo.'Load +2024/02/20 16:01:34 000005e0 69 6e 67 20 69 6e 69 74 69 61 6c 20 72 61 6d 64 ing initial ramd +2024/02/20 16:01:34 000005f0 69 73 6b 20 2e 2e 2e 27 0a 09 09 69 6e 69 74 72 isk ...'...initr +2024/02/20 16:01:34 00000600 64 09 2f 62 6f 6f 74 2f 69 6e 69 74 72 64 2e 69 d./boot/initrd.i +2024/02/20 16:01:34 00000610 6d 67 2d 36 2e 32 2e 31 36 2d 76 35 2e 32 2e 6d mg-6.2.16-v5.2.m +2024/02/20 16:01:34 00000620 76 70 34 32 2d 67 65 6e 65 72 69 63 0a 09 7d 0a vp42-generic..}. +2024/02/20 16:01:34 00000630 09 6d 65 6e 75 65 6e 74 72 79 20 27 55 62 75 6e .menuentry 'Ubun +2024/02/20 16:01:34 00000640 74 75 2c 20 77 69 74 68 20 4c 69 6e 75 78 20 35 tu, with Linux 5 +2024/02/20 16:01:34 00000650 2e 31 35 2e 30 2d 39 32 2d 67 65 6e 65 72 69 63 .15.0-92-generic +2024/02/20 16:01:34 00000660 27 20 2d 2d 63 6c 61 73 73 20 75 62 75 6e 74 75 ' --class ubuntu +2024/02/20 16:01:34 00000670 20 2d 2d 63 6c 61 73 73 20 67 6e 75 2d 6c 69 6e --class gnu-lin +2024/02/20 16:01:34 00000680 75 78 20 2d 2d 63 6c 61 73 73 20 67 6e 75 20 2d ux --class gnu - +2024/02/20 16:01:34 00000690 2d 63 6c 61 73 73 20 6f 73 20 24 6d 65 6e 75 65 -class os $menue +2024/02/20 16:01:34 000006a0 6e 74 72 79 5f 69 64 5f 6f 70 74 69 6f 6e 20 27 ntry_id_option ' +2024/02/20 16:01:34 000006b0 67 6e 75 6c 69 6e 75 78 2d 35 2e 31 35 2e 30 2d gnulinux-5.15.0- +2024/02/20 16:01:34 000006c0 39 32 2d 67 65 6e 65 72 69 63 2d 61 64 76 61 6e 92-generic-advan +2024/02/20 16:01:34 000006d0 63 65 64 2d 39 36 30 63 62 30 35 61 2d 65 31 31 ced-960cb05a-e11 +2024/02/20 16:01:34 000006e0 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 35 37 f-4dd7-a4f1-bb57 +2024/02/20 16:01:34 000006f0 32 37 64 30 37 65 31 61 27 20 7b 0a 09 09 72 65 27d07e1a' {...re +2024/02/20 16:01:34 00000700 63 6f 72 64 66 61 69 6c 0a 09 09 6c 6f 61 64 5f cordfail...load_ +2024/02/20 16:01:34 00000710 76 69 64 65 6f 0a 09 09 67 66 78 6d 6f 64 65 20 video...gfxmode +2024/02/20 16:01:34 00000720 24 6c 69 6e 75 78 5f 67 66 78 5f 6d 6f 64 65 0a $linux_gfx_mode. +2024/02/20 16:01:34 00000730 09 09 69 6e 73 6d 6f 64 20 67 7a 69 6f 0a 09 09 ..insmod gzio... +2024/02/20 16:01:34 00000740 69 66 20 5b 20 78 24 67 72 75 62 5f 70 6c 61 74 if [ x$grub_plat +2024/02/20 16:01:34 00000750 66 6f 72 6d 20 3d 20 78 78 65 6e 20 5d 3b 20 74 form = xxen ]; t +2024/02/20 16:01:34 00000760 68 65 6e 20 69 6e 73 6d 6f 64 20 78 7a 69 6f 3b hen insmod xzio; +2024/02/20 16:01:34 00000770 20 69 6e 73 6d 6f 64 20 6c 7a 6f 70 69 6f 3b 20 insmod lzopio; +2024/02/20 16:01:34 00000780 66 69 0a 09 09 69 6e 73 6d 6f 64 20 70 61 72 74 fi...insmod part +2024/02/20 16:01:34 00000790 5f 67 70 74 0a 09 09 69 6e 73 6d 6f 64 20 65 78 _gpt...insmod ex +2024/02/20 16:01:34 000007a0 74 32 0a 09 09 73 65 61 72 63 68 20 2d 2d 6e 6f t2...search --no +2024/02/20 16:01:34 000007b0 2d 66 6c 6f 70 70 79 20 2d 2d 66 73 2d 75 75 69 -floppy --fs-uui +2024/02/20 16:01:34 000007c0 64 20 2d 2d 73 65 74 3d 72 6f 6f 74 20 39 36 30 d --set=root 960 +2024/02/20 16:01:34 000007d0 63 62 30 35 61 2d 65 31 31 66 2d 34 64 64 37 2d cb05a-e11f-4dd7- +2024/02/20 16:01:34 000007e0 61 34 66 31 2d 62 62 35 37 32 37 64 30 37 65 31 a4f1-bb5727d07e1 +2024/02/20 16:01:34 000007f0 61 0a 09 09 65 63 68 6f 09 27 4c 6f 61 64 69 6e a...echo.'Loadin +2024/02/20 16:01:34 00000800 67 20 4c 69 6e 75 78 20 35 2e 31 35 2e 30 2d 39 g Linux 5.15.0-9 +2024/02/20 16:01:34 00000810 32 2d 67 65 6e 65 72 69 63 20 2e 2e 2e 27 0a 09 2-generic ...'.. +2024/02/20 16:01:34 00000820 09 6c 69 6e 75 78 09 2f 62 6f 6f 74 2f 76 6d 6c .linux./boot/vml +2024/02/20 16:01:34 00000830 69 6e 75 7a 2d 35 2e 31 35 2e 30 2d 39 32 2d 67 inuz-5.15.0-92-g +2024/02/20 16:01:34 00000840 65 6e 65 72 69 63 20 72 6f 6f 74 3d 55 55 49 44 eneric root=UUID +2024/02/20 16:01:34 00000850 3d 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d 34 =960cb05a-e11f-4 +2024/02/20 16:01:34 00000860 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 64 dd7-a4f1-bb5727d +2024/02/20 16:01:34 00000870 30 37 65 31 61 20 72 6f 20 20 63 6f 6e 73 6f 6c 07e1a ro consol +2024/02/20 16:01:34 00000880 65 3d 68 76 63 30 20 69 6d 61 5f 68 61 73 68 3d e=hvc0 ima_hash= +2024/02/20 16:01:34 00000890 73 68 61 33 38 34 20 78 78 78 0a 09 09 65 63 68 sha384 xxx...ech +2024/02/20 16:01:34 000008a0 6f 09 27 4c 6f 61 64 69 6e 67 20 69 6e 69 74 69 o.'Loading initi +2024/02/20 16:01:34 000008b0 61 6c 20 72 61 6d 64 69 73 6b 20 2e 2e 2e 27 0a al ramdisk ...'. +2024/02/20 16:01:34 000008c0 09 09 69 6e 69 74 72 64 09 2f 62 6f 6f 74 2f 69 ..initrd./boot/i +2024/02/20 16:01:34 000008d0 6e 69 74 72 64 2e 69 6d 67 2d 35 2e 31 35 2e 30 nitrd.img-5.15.0 +2024/02/20 16:01:34 000008e0 2d 39 32 2d 67 65 6e 65 72 69 63 0a 09 7d 0a 09 -92-generic..}.. +2024/02/20 16:01:34 000008f0 6d 65 6e 75 65 6e 74 72 79 20 27 55 62 75 6e 74 menuentry 'Ubunt +2024/02/20 16:01:34 00000900 75 2c 20 77 69 74 68 20 4c 69 6e 75 78 20 35 2e u, with Linux 5. +2024/02/20 16:01:34 00000910 31 35 2e 30 2d 39 32 2d 67 65 6e 65 72 69 63 20 15.0-92-generic +2024/02/20 16:01:34 00000920 28 72 65 63 6f 76 65 72 79 20 6d 6f 64 65 29 27 (recovery mode)' +2024/02/20 16:01:34 00000930 20 2d 2d 63 6c 61 73 73 20 75 62 75 6e 74 75 20 --class ubuntu +2024/02/20 16:01:34 00000940 2d 2d 63 6c 61 73 73 20 67 6e 75 2d 6c 69 6e 75 --class gnu-linu +2024/02/20 16:01:34 00000950 78 20 2d 2d 63 6c 61 73 73 20 67 6e 75 20 2d 2d x --class gnu -- +2024/02/20 16:01:34 00000960 63 6c 61 73 73 20 6f 73 20 24 6d 65 6e 75 65 6e class os $menuen +2024/02/20 16:01:34 00000970 74 72 79 5f 69 64 5f 6f 70 74 69 6f 6e 20 27 67 try_id_option 'g +2024/02/20 16:01:34 00000980 6e 75 6c 69 6e 75 78 2d 35 2e 31 35 2e 30 2d 39 nulinux-5.15.0-9 +2024/02/20 16:01:34 00000990 32 2d 67 65 6e 65 72 69 63 2d 72 65 63 6f 76 65 2-generic-recove +2024/02/20 16:01:34 000009a0 72 79 2d 39 36 30 63 62 30 35 61 2d 65 31 31 66 ry-960cb05a-e11f +2024/02/20 16:01:34 000009b0 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 -4dd7-a4f1-bb572 +2024/02/20 16:01:34 000009c0 37 64 30 37 65 31 61 27 20 7b 0a 09 09 72 65 63 7d07e1a' {...rec +2024/02/20 16:01:34 000009d0 6f 72 64 66 61 69 6c 0a 09 09 6c 6f 61 64 5f 76 ordfail...load_v +2024/02/20 16:01:34 000009e0 69 64 65 6f 0a 09 09 69 6e 73 6d 6f 64 20 67 7a ideo...insmod gz +2024/02/20 16:01:34 000009f0 69 6f 0a 09 09 69 66 20 5b 20 78 24 67 72 75 62 io...if [ x$grub +2024/02/20 16:01:34 00000a00 5f 70 6c 61 74 66 6f 72 6d 20 3d 20 78 78 65 6e _platform = xxen +2024/02/20 16:01:34 00000a10 20 5d 3b 20 74 68 65 6e 20 69 6e 73 6d 6f 64 20 ]; then insmod +2024/02/20 16:01:34 00000a20 78 7a 69 6f 3b 20 69 6e 73 6d 6f 64 20 6c 7a 6f xzio; insmod lzo +2024/02/20 16:01:34 00000a30 70 69 6f 3b 20 66 69 0a 09 09 69 6e 73 6d 6f 64 pio; fi...insmod +2024/02/20 16:01:34 00000a40 20 70 61 72 74 5f 67 70 74 0a 09 09 69 6e 73 6d part_gpt...insm +2024/02/20 16:01:34 00000a50 6f 64 20 65 78 74 32 0a 09 09 73 65 61 72 63 68 od ext2...search +2024/02/20 16:01:34 00000a60 20 2d 2d 6e 6f 2d 66 6c 6f 70 70 79 20 2d 2d 66 --no-floppy --f +2024/02/20 16:01:34 00000a70 73 2d 75 75 69 64 20 2d 2d 73 65 74 3d 72 6f 6f s-uuid --set=roo +2024/02/20 16:01:34 00000a80 74 20 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d t 960cb05a-e11f- +2024/02/20 16:01:34 00000a90 34 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 4dd7-a4f1-bb5727 +2024/02/20 16:01:34 00000aa0 64 30 37 65 31 61 0a 09 09 65 63 68 6f 09 27 4c d07e1a...echo.'L +2024/02/20 16:01:34 00000ab0 6f 61 64 69 6e 67 20 4c 69 6e 75 78 20 35 2e 31 oading Linux 5.1 +2024/02/20 16:01:34 00000ac0 35 2e 30 2d 39 32 2d 67 65 6e 65 72 69 63 20 2e 5.0-92-generic . +2024/02/20 16:01:34 00000ad0 2e 2e 27 0a 09 09 6c 69 6e 75 78 09 2f 62 6f 6f ..'...linux./boo +2024/02/20 16:01:34 00000ae0 74 2f 76 6d 6c 69 6e 75 7a 2d 35 2e 31 35 2e 30 t/vmlinuz-5.15.0 +2024/02/20 16:01:34 00000af0 2d 39 32 2d 67 65 6e 65 72 69 63 20 72 6f 6f 74 -92-generic root +2024/02/20 16:01:34 00000b00 3d 55 55 49 44 3d 39 36 30 63 62 30 35 61 2d 65 =UUID=960cb05a-e +2024/02/20 16:01:34 00000b10 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 11f-4dd7-a4f1-bb +2024/02/20 16:01:34 00000b20 35 37 32 37 64 30 37 65 31 61 20 72 6f 20 72 65 5727d07e1a ro re +2024/02/20 16:01:34 00000b30 63 6f 76 65 72 79 20 6e 6f 6d 6f 64 65 73 65 74 covery nomodeset +2024/02/20 16:01:34 00000b40 20 64 69 73 5f 75 63 6f 64 65 5f 6c 64 72 20 0a dis_ucode_ldr . +2024/02/20 16:01:34 00000b50 09 09 65 63 68 6f 09 27 4c 6f 61 64 69 6e 67 20 ..echo.'Loading +2024/02/20 16:01:34 00000b60 69 6e 69 74 69 61 6c 20 72 61 6d 64 69 73 6b 20 initial ramdisk +2024/02/20 16:01:34 00000b70 2e 2e 2e 27 0a 09 09 69 6e 69 74 72 64 09 2f 62 ...'...initrd./b +2024/02/20 16:01:34 00000b80 6f 6f 74 2f 69 6e 69 74 72 64 2e 69 6d 67 2d 35 oot/initrd.img-5 +2024/02/20 16:01:34 00000b90 2e 31 35 2e 30 2d 39 32 2d 67 65 6e 65 72 69 63 .15.0-92-generic +2024/02/20 16:01:34 00000ba0 0a 09 7d 0a 09 6d 65 6e 75 65 6e 74 72 79 20 27 ..}..menuentry ' +2024/02/20 16:01:34 00000bb0 55 62 75 6e 74 75 2c 20 77 69 74 68 20 4c 69 6e Ubuntu, with Lin +2024/02/20 16:01:34 00000bc0 75 78 20 35 2e 31 35 2e 30 2d 39 31 2d 67 65 6e ux 5.15.0-91-gen +2024/02/20 16:01:34 00000bd0 65 72 69 63 27 20 2d 2d 63 6c 61 73 73 20 75 62 eric' --class ub +2024/02/20 16:01:34 00000be0 75 6e 74 75 20 2d 2d 63 6c 61 73 73 20 67 6e 75 untu --class gnu +2024/02/20 16:01:34 00000bf0 2d 6c 69 6e 75 78 20 2d 2d 63 6c 61 73 73 20 67 -linux --class g +2024/02/20 16:01:34 00000c00 6e 75 20 2d 2d 63 6c 61 73 73 20 6f 73 20 24 6d nu --class os $m +2024/02/20 16:01:34 00000c10 65 6e 75 65 6e 74 72 79 5f 69 64 5f 6f 70 74 69 enuentry_id_opti +2024/02/20 16:01:34 00000c20 6f 6e 20 27 67 6e 75 6c 69 6e 75 78 2d 35 2e 31 on 'gnulinux-5.1 +2024/02/20 16:01:34 00000c30 35 2e 30 2d 39 31 2d 67 65 6e 65 72 69 63 2d 61 5.0-91-generic-a +2024/02/20 16:01:34 00000c40 64 76 61 6e 63 65 64 2d 39 36 30 63 62 30 35 61 dvanced-960cb05a +2024/02/20 16:01:34 00000c50 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d -e11f-4dd7-a4f1- +2024/02/20 16:01:34 00000c60 62 62 35 37 32 37 64 30 37 65 31 61 27 20 7b 0a bb5727d07e1a' {. +2024/02/20 16:01:34 00000c70 09 09 72 65 63 6f 72 64 66 61 69 6c 0a 09 09 6c ..recordfail...l +2024/02/20 16:01:34 00000c80 6f 61 64 5f 76 69 64 65 6f 0a 09 09 67 66 78 6d oad_video...gfxm +2024/02/20 16:01:34 00000c90 6f 64 65 20 24 6c 69 6e 75 78 5f 67 66 78 5f 6d ode $linux_gfx_m +2024/02/20 16:01:34 00000ca0 6f 64 65 0a 09 09 69 6e 73 6d 6f 64 20 67 7a 69 ode...insmod gzi +2024/02/20 16:01:34 00000cb0 6f 0a 09 09 69 66 20 5b 20 78 24 67 72 75 62 5f o...if [ x$grub_ +2024/02/20 16:01:34 00000cc0 70 6c 61 74 66 6f 72 6d 20 3d 20 78 78 65 6e 20 platform = xxen +2024/02/20 16:01:34 00000cd0 5d 3b 20 74 68 65 6e 20 69 6e 73 6d 6f 64 20 78 ]; then insmod x +2024/02/20 16:01:34 00000ce0 7a 69 6f 3b 20 69 6e 73 6d 6f 64 20 6c 7a 6f 70 zio; insmod lzop +2024/02/20 16:01:34 00000cf0 69 6f 3b 20 66 69 0a 09 09 69 6e 73 6d 6f 64 20 io; fi...insmod +2024/02/20 16:01:34 00000d00 70 61 72 74 5f 67 70 74 0a 09 09 69 6e 73 6d 6f part_gpt...insmo +2024/02/20 16:01:34 00000d10 64 20 65 78 74 32 0a 09 09 73 65 61 72 63 68 20 d ext2...search +2024/02/20 16:01:34 00000d20 2d 2d 6e 6f 2d 66 6c 6f 70 70 79 20 2d 2d 66 73 --no-floppy --fs +2024/02/20 16:01:34 00000d30 2d 75 75 69 64 20 2d 2d 73 65 74 3d 72 6f 6f 74 -uuid --set=root +2024/02/20 16:01:34 00000d40 20 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d 34 960cb05a-e11f-4 +2024/02/20 16:01:34 00000d50 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 64 dd7-a4f1-bb5727d +2024/02/20 16:01:34 00000d60 30 37 65 31 61 0a 09 09 65 63 68 6f 09 27 4c 6f 07e1a...echo.'Lo +2024/02/20 16:01:34 00000d70 61 64 69 6e 67 20 4c 69 6e 75 78 20 35 2e 31 35 ading Linux 5.15 +2024/02/20 16:01:34 00000d80 2e 30 2d 39 31 2d 67 65 6e 65 72 69 63 20 2e 2e .0-91-generic .. +2024/02/20 16:01:34 00000d90 2e 27 0a 09 09 6c 69 6e 75 78 09 2f 62 6f 6f 74 .'...linux./boot +2024/02/20 16:01:34 00000da0 2f 76 6d 6c 69 6e 75 7a 2d 35 2e 31 35 2e 30 2d /vmlinuz-5.15.0- +2024/02/20 16:01:34 00000db0 39 31 2d 67 65 6e 65 72 69 63 20 72 6f 6f 74 3d 91-generic root= +2024/02/20 16:01:34 00000dc0 55 55 49 44 3d 39 36 30 63 62 30 35 61 2d 65 31 UUID=960cb05a-e1 +2024/02/20 16:01:34 00000dd0 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 35 1f-4dd7-a4f1-bb5 +2024/02/20 16:01:34 00000de0 37 32 37 64 30 37 65 31 61 20 72 6f 20 20 63 6f 727d07e1a ro co +2024/02/20 16:01:34 00000df0 6e 73 6f 6c 65 3d 68 76 63 30 20 69 6d 61 5f 68 nsole=hvc0 ima_h +2024/02/20 16:01:34 00000e00 61 73 68 3d 73 68 61 33 38 34 20 78 78 78 0a 09 ash=sha384 xxx.. +2024/02/20 16:01:34 00000e10 09 65 63 68 6f 09 27 4c 6f 61 64 69 6e 67 20 69 .echo.'Loading i +2024/02/20 16:01:34 00000e20 6e 69 74 69 61 6c 20 72 61 6d 64 69 73 6b 20 2e nitial ramdisk . +2024/02/20 16:01:34 00000e30 2e 2e 27 0a 09 09 69 6e 69 74 72 64 09 2f 62 6f ..'...initrd./bo +2024/02/20 16:01:34 00000e40 6f 74 2f 69 6e 69 74 72 64 2e 69 6d 67 2d 35 2e ot/initrd.img-5. +2024/02/20 16:01:34 00000e50 31 35 2e 30 2d 39 31 2d 67 65 6e 65 72 69 63 0a 15.0-91-generic. +2024/02/20 16:01:34 00000e60 09 7d 0a 09 6d 65 6e 75 65 6e 74 72 79 20 27 55 .}..menuentry 'U +2024/02/20 16:01:34 00000e70 62 75 6e 74 75 2c 20 77 69 74 68 20 4c 69 6e 75 buntu, with Linu +2024/02/20 16:01:34 00000e80 78 20 35 2e 31 35 2e 30 2d 39 31 2d 67 65 6e 65 x 5.15.0-91-gene +2024/02/20 16:01:34 00000e90 72 69 63 20 28 72 65 63 6f 76 65 72 79 20 6d 6f ric (recovery mo +2024/02/20 16:01:34 00000ea0 64 65 29 27 20 2d 2d 63 6c 61 73 73 20 75 62 75 de)' --class ubu +2024/02/20 16:01:34 00000eb0 6e 74 75 20 2d 2d 63 6c 61 73 73 20 67 6e 75 2d ntu --class gnu- +2024/02/20 16:01:34 00000ec0 6c 69 6e 75 78 20 2d 2d 63 6c 61 73 73 20 67 6e linux --class gn +2024/02/20 16:01:34 00000ed0 75 20 2d 2d 63 6c 61 73 73 20 6f 73 20 24 6d 65 u --class os $me +2024/02/20 16:01:34 00000ee0 6e 75 65 6e 74 72 79 5f 69 64 5f 6f 70 74 69 6f nuentry_id_optio +2024/02/20 16:01:34 00000ef0 6e 20 27 67 6e 75 6c 69 6e 75 78 2d 35 2e 31 35 n 'gnulinux-5.15 +2024/02/20 16:01:34 00000f00 2e 30 2d 39 31 2d 67 65 6e 65 72 69 63 2d 72 65 .0-91-generic-re +2024/02/20 16:01:34 00000f10 63 6f 76 65 72 79 2d 39 36 30 63 62 30 35 61 2d covery-960cb05a- +2024/02/20 16:01:34 00000f20 65 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 e11f-4dd7-a4f1-b +2024/02/20 16:01:34 00000f30 62 35 37 32 37 64 30 37 65 31 61 27 20 7b 0a 09 b5727d07e1a' {.. +2024/02/20 16:01:34 00000f40 09 72 65 63 6f 72 64 66 61 69 6c 0a 09 09 6c 6f .recordfail...lo +2024/02/20 16:01:34 00000f50 61 64 5f 76 69 64 65 6f 0a 09 09 69 6e 73 6d 6f ad_video...insmo +2024/02/20 16:01:34 00000f60 64 20 67 7a 69 6f 0a 09 09 69 66 20 5b 20 78 24 d gzio...if [ x$ +2024/02/20 16:01:34 00000f70 67 72 75 62 5f 70 6c 61 74 66 6f 72 6d 20 3d 20 grub_platform = +2024/02/20 16:01:34 00000f80 78 78 65 6e 20 5d 3b 20 74 68 65 6e 20 69 6e 73 xxen ]; then ins +2024/02/20 16:01:34 00000f90 6d 6f 64 20 78 7a 69 6f 3b 20 69 6e 73 6d 6f 64 mod xzio; insmod +2024/02/20 16:01:34 00000fa0 20 6c 7a 6f 70 69 6f 3b 20 66 69 0a 09 09 69 6e lzopio; fi...in +2024/02/20 16:01:34 00000fb0 73 6d 6f 64 20 70 61 72 74 5f 67 70 74 0a 09 09 smod part_gpt... +2024/02/20 16:01:34 00000fc0 69 6e 73 6d 6f 64 20 65 78 74 32 0a 09 09 73 65 insmod ext2...se +2024/02/20 16:01:34 00000fd0 61 72 63 68 20 2d 2d 6e 6f 2d 66 6c 6f 70 70 79 arch --no-floppy +2024/02/20 16:01:34 00000fe0 20 2d 2d 66 73 2d 75 75 69 64 20 2d 2d 73 65 74 --fs-uuid --set +2024/02/20 16:01:34 00000ff0 3d 72 6f 6f 74 20 39 36 30 63 62 30 35 61 2d 65 =root 960cb05a-e +2024/02/20 16:01:34 00001000 31 31 66 2d 34 64 64 37 2d 61 34 66 31 2d 62 62 11f-4dd7-a4f1-bb +2024/02/20 16:01:34 00001010 35 37 32 37 64 30 37 65 31 61 0a 09 09 65 63 68 5727d07e1a...ech +2024/02/20 16:01:34 00001020 6f 09 27 4c 6f 61 64 69 6e 67 20 4c 69 6e 75 78 o.'Loading Linux +2024/02/20 16:01:34 00001030 20 35 2e 31 35 2e 30 2d 39 31 2d 67 65 6e 65 72 5.15.0-91-gener +2024/02/20 16:01:34 00001040 69 63 20 2e 2e 2e 27 0a 09 09 6c 69 6e 75 78 09 ic ...'...linux. +2024/02/20 16:01:34 00001050 2f 62 6f 6f 74 2f 76 6d 6c 69 6e 75 7a 2d 35 2e /boot/vmlinuz-5. +2024/02/20 16:01:34 00001060 31 35 2e 30 2d 39 31 2d 67 65 6e 65 72 69 63 20 15.0-91-generic +2024/02/20 16:01:34 00001070 72 6f 6f 74 3d 55 55 49 44 3d 39 36 30 63 62 30 root=UUID=960cb0 +2024/02/20 16:01:34 00001080 35 61 2d 65 31 31 66 2d 34 64 64 37 2d 61 34 66 5a-e11f-4dd7-a4f +2024/02/20 16:01:34 00001090 31 2d 62 62 35 37 32 37 64 30 37 65 31 61 20 72 1-bb5727d07e1a r +2024/02/20 16:01:34 000010a0 6f 20 72 65 63 6f 76 65 72 79 20 6e 6f 6d 6f 64 o recovery nomod +2024/02/20 16:01:34 000010b0 65 73 65 74 20 64 69 73 5f 75 63 6f 64 65 5f 6c eset dis_ucode_l +2024/02/20 16:01:34 000010c0 64 72 20 0a 09 09 65 63 68 6f 09 27 4c 6f 61 64 dr ...echo.'Load +2024/02/20 16:01:34 000010d0 69 6e 67 20 69 6e 69 74 69 61 6c 20 72 61 6d 64 ing initial ramd +2024/02/20 16:01:34 000010e0 69 73 6b 20 2e 2e 2e 27 0a 09 09 69 6e 69 74 72 isk ...'...initr +2024/02/20 16:01:34 000010f0 64 09 2f 62 6f 6f 74 2f 69 6e 69 74 72 64 2e 69 d./boot/initrd.i +2024/02/20 16:01:34 00001100 6d 67 2d 35 2e 31 35 2e 30 2d 39 31 2d 67 65 6e mg-5.15.0-91-gen +2024/02/20 16:01:34 00001110 65 72 69 63 0a 09 7d 0a 7d 00 eric..}.}. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 c3 0a 0e 3a 93 57 f2 86 7a e4 66 fc f0 d5 02 3c Ã..:.Wò.zäfüðÕ.< +2024/02/20 16:01:34 00000010 62 a2 37 d4 1b 12 53 16 aa c3 bf 39 d5 f5 22 97 b¢7Ô..S.ªÃ¿9Õõ". +2024/02/20 16:01:34 00000020 92 d7 da 9b 42 60 2e 47 70 45 38 34 fc c2 8b ea .×Ú.B`.GpE84üÂ.ê +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 6d 65 6e 75 65 6e grub_cmd: menuen +2024/02/20 16:01:34 00000010 74 72 79 20 55 45 46 49 20 46 69 72 6d 77 61 72 try UEFI Firmwar +2024/02/20 16:01:34 00000020 65 20 53 65 74 74 69 6e 67 73 20 2d 2d 69 64 20 e Settings --id +2024/02/20 16:01:34 00000030 75 65 66 69 2d 66 69 72 6d 77 61 72 65 20 7b 0a uefi-firmware {. +2024/02/20 16:01:34 00000040 09 66 77 73 65 74 75 70 0a 7d 00 .fwsetup.}. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 ae d8 96 a2 1f b1 61 21 56 8d d9 3e d2 33 4c 6a ®Ø.¢.±a!V.Ù>Ò3Lj +2024/02/20 16:01:34 00000010 84 15 66 0b 34 95 cd 1e c9 e8 96 2e 1f 87 63 9f ..f.4.Í.Éè....c. +2024/02/20 16:01:34 00000020 d8 cf 41 c9 4e 8a 48 84 1b e1 9a 2b c1 03 e1 00 ØÏAÉN.H..á.+Á.á. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 2d 66 20 28 grub_cmd: [ -f ( +2024/02/20 16:01:34 00000010 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f 67 hd0,gpt1)/boot/g +2024/02/20 16:01:34 00000020 72 75 62 2f 63 75 73 74 6f 6d 2e 63 66 67 20 5d rub/custom.cfg ] +2024/02/20 16:01:34 00000030 00 . +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 fb b3 86 45 48 61 03 b1 ba a7 7a 61 57 6d 34 2c û³.EHa.±º§zaWm4, +2024/02/20 16:01:34 00000010 27 c0 d0 25 97 64 98 25 ce e4 4c 16 f6 58 af 2b 'ÀÐ%.d.%ÎäL.öX¯+ +2024/02/20 16:01:34 00000020 0a d8 aa 49 96 e1 6b 9b 6c 32 b1 e3 8f 3b b4 1a .تI.ák.l2±ã.;´. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 2d 7a 20 28 grub_cmd: [ -z ( +2024/02/20 16:01:34 00000010 68 64 30 2c 67 70 74 31 29 2f 62 6f 6f 74 2f 67 hd0,gpt1)/boot/g +2024/02/20 16:01:34 00000020 72 75 62 20 2d 61 20 2d 66 20 28 68 64 30 2c 67 rub -a -f (hd0,g +2024/02/20 16:01:34 00000030 70 74 31 29 2f 62 6f 6f 74 2f 67 72 75 62 2f 63 pt1)/boot/grub/c +2024/02/20 16:01:34 00000040 75 73 74 6f 6d 2e 63 66 67 20 5d 00 ustom.cfg ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a3 0a 7b e4 fb 9b eb 8b 22 82 ff 14 14 d0 a4 7e £.{äû.ë.".ÿ..Ф~ +2024/02/20 16:01:34 00000010 b1 1b 36 47 1a 26 28 d4 28 4b d9 ae 8e 8a 74 a8 ±.6G.&(Ô(KÙ®..t¨ +2024/02/20 16:01:34 00000020 e1 5f 0a 1e 84 b4 13 63 6d b7 69 2a 4a 60 cc 1a á_...´.cm·i*J`Ì. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 70 61 72 grub_cmd: setpar +2024/02/20 16:01:34 00000010 61 6d 73 20 55 62 75 6e 74 75 00 ams Ubuntu. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 b0 bb 85 ff 78 9f 25 dd 63 e3 41 73 6b 94 f4 bf °».ÿx.%ÝcãAsk.ô¿ +2024/02/20 16:01:34 00000010 3a cd 1c ff 1c 1d f6 0b d3 ff ca 57 89 eb 73 7d :Í.ÿ..ö.ÓÿÊW.ës} +2024/02/20 16:01:34 00000020 28 17 a3 9a f6 6d e4 66 40 13 4b fb bb 20 da d7 (.£.ömäf@.Kû» Ú× +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 72 65 63 6f 72 64 grub_cmd: record +2024/02/20 16:01:34 00000010 66 61 69 6c 00 fail. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 b3 53 cf 98 33 05 9b e9 ab ad f1 80 d8 3a be b5 ³SÏ.3..é«.ñ.Ø:¾µ +2024/02/20 16:01:34 00000010 ee ee c0 08 43 b3 f2 24 76 bb 5d b0 ba 2f 43 61 îîÀ.C³ò$v»]°º/Ca +2024/02/20 16:01:34 00000020 a0 26 0a f3 46 0a ec b3 c1 24 ed a9 0b 6c a7 a2 .&.óF.ì³Á$í©.l§¢ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 72 65 grub_cmd: set re +2024/02/20 16:01:34 00000010 63 6f 72 64 66 61 69 6c 3d 31 00 cordfail=1. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 93 4a af c9 9c b0 a7 cb 1e f8 3c 5a 1e b0 1c 31 .J¯É.°§Ë.øw.íE.ìüqHà. +2024/02/20 16:01:34 00000010 c9 02 34 d0 52 6b 28 26 90 c5 7c 93 80 2c c9 62 É.4ÐRk(&.Å|..,Éb +2024/02/20 16:01:34 00000020 3c 25 92 36 89 de 1c 2f cb 62 66 9f 10 e3 e1 e1 <%.6.Þ./Ëbf..ãáá +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 2d 7a 20 20 grub_cmd: [ -z +2024/02/20 16:01:34 00000010 5d 00 ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 02 2e 47 c5 e4 9b f3 c9 34 f4 88 fc c0 73 18 48 ..GÅä.óÉ4ô.üÀs.H +2024/02/20 16:01:34 00000010 95 50 a6 4d b6 2a a0 7c a0 44 c9 dd 9c 2a 0f f9 .P¦M¶*.|.DÉÝ.*.ù +2024/02/20 16:01:34 00000020 06 37 64 1b 7c 87 bd 77 e3 38 3e 70 03 9e a0 fa .7d.|.½wã8>p...ú +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 61 76 65 5f 65 grub_cmd: save_e +2024/02/20 16:01:34 00000010 6e 76 20 72 65 63 6f 72 64 66 61 69 6c 00 nv recordfail. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 cb b7 09 d1 3f af 7d 16 f1 91 75 1a e2 75 f2 2a Ë·.Ñ?¯}.ñ.u.âuò* +2024/02/20 16:01:34 00000010 00 35 03 38 9e 2e 49 0a 60 cf f7 8b eb 3c d5 46 .5.8..I.`Ï÷.ë<ÕF +2024/02/20 16:01:34 00000020 22 2d 59 19 04 d5 19 87 48 7f 03 cd bd 41 e4 79 "-Y..Õ..H..ͽAäy +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 6c 6f 61 64 5f 76 grub_cmd: load_v +2024/02/20 16:01:34 00000010 69 64 65 6f 00 ideo. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 10 b1 f8 d0 36 ae fd 32 ce 77 03 11 ea 00 42 6e .±øÐ6®ý2Îw..ê.Bn +2024/02/20 16:01:34 00000010 14 7b 3d ae e3 78 dd 06 79 ae da 81 96 3b 2c 53 .{=®ãxÝ.y®Ú..;,S +2024/02/20 16:01:34 00000020 89 17 87 87 96 2c e9 ea 08 e5 57 17 01 cc e9 4a .....,éê.åW..ÌéJ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 78 79 20 3d grub_cmd: [ xy = +2024/02/20 16:01:34 00000010 20 78 79 20 5d 00 xy ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 14 7b bd cd 07 04 d1 94 2b 21 71 a0 97 e7 b0 83 .{½Í..Ñ.+!q..ç°. +2024/02/20 16:01:34 00000010 84 f1 06 ca c7 6f 7d 57 37 e5 fe e2 bc 2e 38 de .ñ.ÊÇo}W7åþâ¼.8Þ +2024/02/20 16:01:34 00000020 db 82 1b 91 e0 9a c1 84 b4 6b b4 dc 86 b4 a8 af Û...à.Á.´k´Ü.´¨¯ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 69 6e 73 6d 6f 64 grub_cmd: insmod +2024/02/20 16:01:34 00000010 20 61 6c 6c 5f 76 69 64 65 6f 00 all_video. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 f2 7a 8d db 55 31 35 ee 80 02 57 27 75 ae 39 0b òz.ÛU15î..W'u®9. +2024/02/20 16:01:34 00000010 1b c7 44 3e bb e1 1b 86 3c d7 9a e6 6b 20 65 cd .ÇD>»á..<×.æk eÍ +2024/02/20 16:01:34 00000020 02 e9 8c fb 17 0b 89 71 12 98 6a 88 cd 07 1e f8 .é.û...q..j.Í..ø +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 67 66 78 6d 6f 64 grub_cmd: gfxmod +2024/02/20 16:01:34 00000010 65 20 6b 65 65 70 00 e keep. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 7c 5e a1 b1 0b a6 92 15 09 0e 24 90 e1 0f 9d 2d |^¡±.¦....$.á..- +2024/02/20 16:01:34 00000010 b5 f6 a5 b0 eb 6e 08 d3 66 cc eb 8a cb 44 78 85 µö¥°ën.ÓfÌë.ËDx. +2024/02/20 16:01:34 00000020 72 42 22 1c f5 63 23 a4 93 d1 b3 a9 58 fa 13 7c rB".õc#¤.ѳ©Xú.| +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 67 66 grub_cmd: set gf +2024/02/20 16:01:34 00000010 78 70 61 79 6c 6f 61 64 3d 6b 65 65 70 00 xpayload=keep. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 f7 c7 44 59 bb 0d 16 f8 ae 24 91 18 58 87 9c 7f ÷ÇDY»..ø®$..X... +2024/02/20 16:01:34 00000010 ca b3 b8 af 90 9d 81 1d 94 5e 09 f7 b1 69 77 bd ʳ¸¯.....^.÷±iw½ +2024/02/20 16:01:34 00000020 65 a8 19 12 8d 0b 5c 88 ff 29 cb 76 f3 81 bd d6 e¨....\.ÿ)Ëvó.½Ö +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 5b 20 6b 65 65 70 grub_cmd: [ keep +2024/02/20 16:01:34 00000010 20 3d 20 6b 65 65 70 20 5d 00 = keep ]. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 8b c8 e8 c5 61 f2 7f 59 88 be 9e 69 da 2a 00 f6 .ÈèÅaò.Y.¾.iÚ*.ö +2024/02/20 16:01:34 00000010 26 c7 d3 c7 35 f5 99 ab cf 27 f8 3c 02 53 0c a7 &ÇÓÇ5õ.«Ï'ø<.S.§ +2024/02/20 16:01:34 00000020 68 47 dc 5e 15 00 7f 49 0e 2f 41 7a 24 b2 f4 57 hGÜ^...I./Az$²ôW +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 74 20 76 74 grub_cmd: set vt +2024/02/20 16:01:34 00000010 5f 68 61 6e 64 6f 66 66 3d 76 74 2e 68 61 6e 64 _handoff=vt.hand +2024/02/20 16:01:34 00000020 6f 66 66 3d 37 00 off=7. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 86 2a e7 97 61 53 24 fd 5c 15 3d fb fc b2 26 39 .*ç.aS$ý\.=ûü²&9 +2024/02/20 16:01:34 00000010 12 62 85 5e d2 db 29 69 f9 84 56 f0 da 17 b6 aa .b.^ÒÛ)iù.VðÚ.¶ª +2024/02/20 16:01:34 00000020 1c 8a a2 e2 fe 90 bc 15 67 29 57 86 a8 3c 53 71 ..¢âþ.¼.g)W.¨çê¤^6Í£úóÐ¥ +2024/02/20 16:01:34 00000010 f5 fc 92 ec 4d 24 c3 af 4a d9 58 46 69 59 8f 34 õü.ìM$ïJÙXFiY.4 +2024/02/20 16:01:34 00000020 b6 03 c2 11 b2 20 e5 6b e5 2b db c3 a2 f7 4f fb ¶.Â.² åkå+Ûâ÷Oû +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 69 6e 73 6d 6f 64 grub_cmd: insmod +2024/02/20 16:01:34 00000010 20 70 61 72 74 5f 67 70 74 00 part_gpt. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 e1 42 a5 94 d9 88 fd a5 a6 5b 14 24 a4 a4 8c 2c áB¥.Ù.ý¥¦[.$¤¤., +2024/02/20 16:01:34 00000010 f4 b0 36 dd 77 9d 4a e2 99 af 45 b7 d3 3b 0b fe ô°6Ýw.Jâ.¯E·Ó;.þ +2024/02/20 16:01:34 00000020 07 a4 a9 69 d3 c0 da 72 c2 ba 53 f9 ee ea f7 a6 .¤©iÓÀÚrºSùîê÷¦ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 69 6e 73 6d 6f 64 grub_cmd: insmod +2024/02/20 16:01:34 00000010 20 65 78 74 32 00 ext2. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 4c 77 64 3a b3 03 10 99 9e 9a 0c e9 84 f6 97 71 Lwd:³......é.ö.q +2024/02/20 16:01:34 00000010 5b 95 5f a9 49 a2 69 fc 16 2f 70 d1 66 ed 05 e5 [._©I¢iü./pÑfí.å +2024/02/20 16:01:34 00000020 8f 81 7e df 07 a4 4a b6 bc bf b7 d7 b3 a0 57 dd ..~ß.¤J¶¼¿·×³.WÝ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 73 65 61 72 63 68 grub_cmd: search +2024/02/20 16:01:34 00000010 20 2d 2d 6e 6f 2d 66 6c 6f 70 70 79 20 2d 2d 66 --no-floppy --f +2024/02/20 16:01:34 00000020 73 2d 75 75 69 64 20 2d 2d 73 65 74 3d 72 6f 6f s-uuid --set=roo +2024/02/20 16:01:34 00000030 74 20 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d t 960cb05a-e11f- +2024/02/20 16:01:34 00000040 34 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 4dd7-a4f1-bb5727 +2024/02/20 16:01:34 00000050 64 30 37 65 31 61 00 d07e1a. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a0 37 86 4d ee 24 93 a1 b2 e8 3a 17 cc d9 16 28 .7.Mî$.¡²è:.ÌÙ.( +2024/02/20 16:01:34 00000010 0a 39 b9 59 30 8b ae 61 dc bf 80 b6 7a 47 f5 1f .9¹Y0.®aÜ¿.¶zGõ. +2024/02/20 16:01:34 00000020 96 e6 a6 45 09 40 fc 80 06 9a 54 a2 56 67 b3 18 .æ¦E.@ü...T¢Vg³. +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 6c 69 6e 75 78 20 grub_cmd: linux +2024/02/20 16:01:34 00000010 2f 62 6f 6f 74 2f 76 6d 6c 69 6e 75 7a 2d 36 2e /boot/vmlinuz-6. +2024/02/20 16:01:34 00000020 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 70 34 32 2d 2.16-v5.2.mvp42- +2024/02/20 16:01:34 00000030 67 65 6e 65 72 69 63 20 72 6f 6f 74 3d 55 55 49 generic root=UUI +2024/02/20 16:01:34 00000040 44 3d 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d D=960cb05a-e11f- +2024/02/20 16:01:34 00000050 34 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 4dd7-a4f1-bb5727 +2024/02/20 16:01:34 00000060 64 30 37 65 31 61 20 72 6f 20 63 6f 6e 73 6f 6c d07e1a ro consol +2024/02/20 16:01:34 00000070 65 3d 68 76 63 30 20 69 6d 61 5f 68 61 73 68 3d e=hvc0 ima_hash= +2024/02/20 16:01:34 00000080 73 68 61 33 38 34 20 78 78 78 00 sha384 xxx. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 6d 37 85 65 b6 3b e0 99 25 ab d9 3e 53 9d 9b 49 m7.e¶;à.%«Ù>S..I +2024/02/20 16:01:34 00000010 be 36 d6 20 4f 5d 48 b8 8c e2 3b 47 f1 41 fe 94 ¾6Ö O]H¸.â;GñAþ. +2024/02/20 16:01:34 00000020 5d df 4a 15 ab c0 d6 89 2d 29 52 21 87 10 2d 58 ]ßJ.«ÀÖ.-)R!..-X +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 2f 62 6f 6f 74 2f 76 6d 6c 69 6e 75 7a 2d 36 2e /boot/vmlinuz-6. +2024/02/20 16:01:34 00000010 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 70 34 32 2d 2.16-v5.2.mvp42- +2024/02/20 16:01:34 00000020 67 65 6e 65 72 69 63 00 generic. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 9b 10 62 2c 57 9d 7c 52 67 53 46 da 00 e2 51 6e ..b,W.|RgSFÚ.âQn +2024/02/20 16:01:34 00000010 ce 73 b3 1b d9 03 d1 41 13 95 5c 36 55 02 c9 0b Îs³.Ù.ÑA..\6U.É. +2024/02/20 16:01:34 00000020 57 43 17 35 bb 2d 48 8f 21 16 b8 52 4f 78 71 d3 WC.5»-H.!.¸ROxqÓ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 6b 65 72 6e 65 6c 5f 63 6d 64 6c 69 6e 65 3a 20 kernel_cmdline: +2024/02/20 16:01:34 00000010 2f 62 6f 6f 74 2f 76 6d 6c 69 6e 75 7a 2d 36 2e /boot/vmlinuz-6. +2024/02/20 16:01:34 00000020 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 70 34 32 2d 2.16-v5.2.mvp42- +2024/02/20 16:01:34 00000030 67 65 6e 65 72 69 63 20 72 6f 6f 74 3d 55 55 49 generic root=UUI +2024/02/20 16:01:34 00000040 44 3d 39 36 30 63 62 30 35 61 2d 65 31 31 66 2d D=960cb05a-e11f- +2024/02/20 16:01:34 00000050 34 64 64 37 2d 61 34 66 31 2d 62 62 35 37 32 37 4dd7-a4f1-bb5727 +2024/02/20 16:01:34 00000060 64 30 37 65 31 61 20 72 6f 20 63 6f 6e 73 6f 6c d07e1a ro consol +2024/02/20 16:01:34 00000070 65 3d 68 76 63 30 20 69 6d 61 5f 68 61 73 68 3d e=hvc0 ima_hash= +2024/02/20 16:01:34 00000080 73 68 61 33 38 34 20 78 78 78 00 sha384 xxx. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 a9 34 7e a5 98 aa 71 a7 1b bf c5 24 05 cf c6 61 ©4~¥.ªq§.¿Å$.ÏÆa +2024/02/20 16:01:34 00000010 05 d3 c4 d7 e8 6e 8d 11 94 98 4a 1d 05 cc 74 29 .ÓÄ×èn....J..Ìt) +2024/02/20 16:01:34 00000020 9a 19 f5 91 cc fd dc 49 b2 39 85 f8 da 12 1d b3 ..õ.ÌýÜI²9.øÚ..³ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 67 72 75 62 5f 63 6d 64 3a 20 69 6e 69 74 72 64 grub_cmd: initrd +2024/02/20 16:01:34 00000010 20 2f 62 6f 6f 74 2f 69 6e 69 74 72 64 2e 69 6d /boot/initrd.im +2024/02/20 16:01:34 00000020 67 2d 36 2e 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 g-6.2.16-v5.2.mv +2024/02/20 16:01:34 00000030 70 34 32 2d 67 65 6e 65 72 69 63 00 p42-generic. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0xD (EV_IPL) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 00 47 85 0c cf 38 40 82 32 79 74 f6 b0 40 2b f3 .G..Ï8@.2ytö°@+ó +2024/02/20 16:01:34 00000010 5f b7 77 38 41 0f d0 2f 10 e9 58 59 8f 35 99 dc _·w8A.Ð/.éXY.5.Ü +2024/02/20 16:01:34 00000020 72 ce e9 66 0f 1f dc ba c8 84 f0 85 0b 88 04 98 rÎéf..ܺÈ.ð..... +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 2f 62 6f 6f 74 2f 69 6e 69 74 72 64 2e 69 6d 67 /boot/initrd.img +2024/02/20 16:01:34 00000010 2d 36 2e 32 2e 31 36 2d 76 35 2e 32 2e 6d 76 70 -6.2.16-v5.2.mvp +2024/02/20 16:01:34 00000020 34 32 2d 67 65 6e 65 72 69 63 00 42-generic. +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000007 (EV_EFI_ACTION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 21 4b 0b ef 13 79 75 60 11 34 48 77 74 3f dc 2a !K.ï.yu`.4Hwt?Ü* +2024/02/20 16:01:34 00000010 53 82 ba c6 e7 03 62 d6 24 cc f3 f6 54 40 7c 1b S.ºÆç.bÖ$ÌóöT@|. +2024/02/20 16:01:34 00000020 4b ad f7 d8 f9 29 5d d3 da bd ef 65 b2 76 77 e0 K.÷Øù)]ÓÚ½ïe²vwà +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 45 78 69 74 20 42 6f 6f 74 20 53 65 72 76 69 63 Exit Boot Servic +2024/02/20 16:01:34 00000010 65 73 20 49 6e 76 6f 63 61 74 69 6f 6e es Invocation +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 1 +2024/02/20 16:01:34 Type : 0x80000007 (EV_EFI_ACTION) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 0a 2e 01 c8 5d ea e7 18 a5 30 ad 8c 6d 20 a8 40 ...È]êç.¥0..m ¨@ +2024/02/20 16:01:34 00000010 09 ba be 6c 89 89 26 9e 95 0d 8c f4 40 c6 e9 97 .º¾l..&....ô@Æé. +2024/02/20 16:01:34 00000020 69 5e 64 d4 55 c4 17 4a 65 2c d0 80 f6 23 0b 74 i^dÔUÄ.Je,Ð.ö#.t +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 45 78 69 74 20 42 6f 6f 74 20 53 65 72 76 69 63 Exit Boot Servic +2024/02/20 16:01:34 00000010 65 73 20 52 65 74 75 72 6e 65 64 20 77 69 74 68 es Returned with +2024/02/20 16:01:34 00000020 20 53 75 63 63 65 73 73 Success +2024/02/20 16:01:34 ----------------------------------Event Log Entry--------------------------------- +2024/02/20 16:01:34 IMR : 2 +2024/02/20 16:01:34 Type : 0x14 (IMA_MEASUREMENT_EVENT) +2024/02/20 16:01:34 Algorithm_id[0] : 12 (TPM_ALG_SHA384) +2024/02/20 16:01:34 Digest[0]: +2024/02/20 16:01:34 00000000 67 c7 08 09 bd 40 5e a8 20 81 e8 f1 eb 2c a1 61 gÇ..½@^¨ .èñë,¡a +2024/02/20 16:01:34 00000010 08 bc e3 07 f5 f1 39 49 2d a6 41 e0 8e 07 ec 99 .¼ã.õñ9I-¦Aà..ì. +2024/02/20 16:01:34 00000020 e2 16 36 49 f2 93 23 a5 f5 96 3f e0 7b b0 6c c6 â.6Iò.#¥õ.?à{°lÆ +2024/02/20 16:01:34 Event: +2024/02/20 16:01:34 00000000 73 68 61 33 38 34 3a 63 64 30 31 63 65 37 66 38 sha384:cd01ce7f8 +2024/02/20 16:01:34 00000010 64 31 61 36 35 38 66 38 66 64 61 66 33 33 62 66 d1a658f8fdaf33bf +2024/02/20 16:01:34 00000020 62 31 38 61 37 62 66 39 62 63 33 64 34 35 33 38 b18a7bf9bc3d4538 +2024/02/20 16:01:34 00000030 36 66 31 36 62 65 33 63 61 66 32 32 65 66 39 63 6f16be3caf22ef9c +2024/02/20 16:01:34 00000040 62 33 32 61 32 36 65 63 35 33 64 38 62 38 62 37 b32a26ec53d8b8b7 +2024/02/20 16:01:34 00000050 34 63 37 36 62 39 34 62 37 34 34 62 64 66 31 39 4c76b94b744bdf19 +2024/02/20 16:01:34 00000060 31 35 30 36 63 62 33 20 62 6f 6f 74 5f 61 67 67 1506cb3 boot_agg +2024/02/20 16:01:34 00000070 72 65 67 61 74 65 regate \ No newline at end of file diff --git a/common/golang/test_data/formated_quote.txt b/common/golang/test_data/formated_quote.txt new file mode 100644 index 00000000..80213ce6 --- /dev/null +++ b/common/golang/test_data/formated_quote.txt @@ -0,0 +1,128 @@ +2024/02/21 14:58:16 ====================================== +2024/02/21 14:58:16 TD Quote +2024/02/21 14:58:16 ====================================== +2024/02/21 14:58:16 TD Quote Header: +2024/02/21 14:58:16 Header Version: 4 +2024/02/21 14:58:16 Attestation Key Type: AttestationKeyType.ECDSA_P256 +2024/02/21 14:58:16 TEE Type: TeeType.TEE_TDX +2024/02/21 14:58:16 Reserved 1: 0x0000 +2024/02/21 14:58:16 Reserved 2: 0x0000 +2024/02/21 14:58:16 QE Vendor ID: 0x939a7233f79c4ca9940a0db3957f0607 # Intel® SGX QE Vendor +2024/02/21 14:58:16 User Data: 0x339b8a7d07233616ff04582b7573e57800000000 +2024/02/21 14:58:16 TD Quote Body: +2024/02/21 14:58:16 TdxQuoteTeeTcbSvn: +2024/02/21 14:58:16 tdxtcbcomp01: 4 +2024/02/21 14:58:16 tdxtcbcomp02: 1 +2024/02/21 14:58:16 tdxtcbcomp03: 1 +2024/02/21 14:58:16 tdxtcbcomp04: 0 +2024/02/21 14:58:16 tdxtcbcomp05: 0 +2024/02/21 14:58:16 tdxtcbcomp06: 0 +2024/02/21 14:58:16 tdxtcbcomp07: 0 +2024/02/21 14:58:16 tdxtcbcomp08: 0 +2024/02/21 14:58:16 tdxtcbcomp09: 0 +2024/02/21 14:58:16 tdxtcbcomp10: 0 +2024/02/21 14:58:16 tdxtcbcomp11: 0 +2024/02/21 14:58:16 tdxtcbcomp12: 0 +2024/02/21 14:58:16 tdxtcbcomp13: 0 +2024/02/21 14:58:16 tdxtcbcomp14: 0 +2024/02/21 14:58:16 tdxtcbcomp15: 0 +2024/02/21 14:58:16 tdxtcbcomp16: 0 +2024/02/21 14:58:16 MRSEAM: 0x9790d89a10210ec6968a773cee2ca05b5aa97309f36727a968527be4606fc19e6f73acce350946c9d46a9bf7a63f8430 +2024/02/21 14:58:16 MRSIGNERSEAM: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 SEAMATTRIBUTES: 0x0000000000000000 +2024/02/21 14:58:16 TDATTRIBUTES: 0x0000001000000000 +2024/02/21 14:58:16 XFAM: 0xe71a060000000000 +2024/02/21 14:58:16 MRTD: 0xf196de066c69e2f9378d4d316f2d4853fb2856f5c9b7fb6d2f4a45aebdb7141645ae302d48550bd0df8ae0915a39bc2b +2024/02/21 14:58:16 MRCONFIG: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 MROWNER: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 MROWNERCONFIG: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 RTMR0: 0xc15727cac1f57d0e91106da180b3eaba72116661e17ba0553773843a9b072ecfa38cc803dfb55e0f87ec236780adb3a6 +2024/02/21 14:58:16 RTMR1: 0x61e958c6f954ce23031fb3cae87bf4da209d697bc15a4aefcdcc92070f7b2df34720b2bb57de89c9d03c7c9aa1136569 +2024/02/21 14:58:16 RTMR2: 0x247eed9f748b228edb65339138eb20ccf78867bc3ec68bb40faffba40ed0f87444a389001e7d1c46a2df56353c047cf2 +2024/02/21 14:58:16 RTMR3: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 REPORTDATA: 0xbe588d6fb83c176b1a45f670710d07da4847fe91c131939da3b2cc569c085909fe0fa483d715a9e5d998773d34f6ba2910f40a551b0f33f6c9f36dbab8b7771b +2024/02/21 14:58:16 TD Quote Signature: +2024/02/21 14:58:16 Quote Signature (ECDSA P-256 Signature): 0x139baf9f56fd020b209fd9504558179035903f05f52d5c5339355ec4b5620e562172ef2d3553bc37f45c99a222e7fe44a8fb50b5bc701f47c5f03685da97c407 +2024/02/21 14:58:16 ECDSA Attestation Key (ECDSA P-256 Public Key): 0x312b03428eec8d604316f8e1cae3ad6042b115af7e2deb18b770015b3043d14ecd9fb301affb7f445069ef1a9f59b6234eab9d1c613e57dee0fb54a5b4c8c466 +2024/02/21 14:58:16 TdxQuoteQeCert: +2024/02/21 14:58:16 Quote QE Cert Data Type: QeCertDataType.QE_REPORT_CERT +2024/02/21 14:58:16 TdxQuoteQeReportCert: +2024/02/21 14:58:16 TdxEnclaveReportBody: +2024/02/21 14:58:16 CPU SVN: 0x0101010101ff00050000000000000000 +2024/02/21 14:58:16 MISCSELECT: 0 +2024/02/21 14:58:16 Reserved: 0x00000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 Attributes: 0x1500000000000000e700000000000000 +2024/02/21 14:58:16 MRENCLAVE:0x86fc4e0ec2c5ddcebac97062c0a0142a97c18a7a755147bcbc3fe17d6529781d +2024/02/21 14:58:16 Reserved: 0x0000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 MRSIGNER: 0xdc9e2a7c6f948f17474e34a7fc43ed030f7c1563f1babddf6340c82e0e54a8c5 +2024/02/21 14:58:16 Reserved: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 ISV ProdID: 2 +2024/02/21 14:58:16 ISV SVN: 1 +2024/02/21 14:58:16 Reserved: 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 Report Data: 0x0a03f520b36a2497ebf954a7d5ce212b3181a02ca32ebd79cad955afe61fd7380000000000000000000000000000000000000000000000000000000000000000 +2024/02/21 14:58:16 Quote QE Report Signature: 0xa33e0098891489d5f3972c6155da0c35715f58e10872397f77ebd6494672c60ded48bbcf11301dc8df11ad83fe6e4f127079dc1517620834fb7aacb55fe2770d +2024/02/21 14:58:16 Quote QE Authentication Data: 0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f +2024/02/21 14:58:16 TdxQuoteQeCert: +2024/02/21 14:58:16 Quote QE Cert Data Type: QeCertDataType.PCK_CERT_CHAIN +2024/02/21 14:58:16 PCK Cert Chain (PEM, Leaf||Intermediate||Root): +2024/02/21 14:58:16 -----BEGIN CERTIFICATE----- +MIIE9DCCBJqgAwIBAgIUZhlBaToKBYqmPNtopM1LsjbWQuEwCgYIKoZIzj0EAwIw +cDEiMCAGA1UEAwwZSW50ZWwgU0dYIFBDSyBQbGF0Zm9ybSBDQTEaMBgGA1UECgwR +SW50ZWwgQ29ycG9yYXRpb24xFDASBgNVBAcMC1NhbnRhIENsYXJhMQswCQYDVQQI +DAJDQTELMAkGA1UEBhMCVVMwHhcNMjMwOTIwMDI0NjI0WhcNMzAwOTIwMDI0NjI0 +WjBwMSIwIAYDVQQDDBlJbnRlbCBTR1ggUENLIENlcnRpZmljYXRlMRowGAYDVQQK +DBFJbnRlbCBDb3Jwb3JhdGlvbjEUMBIGA1UEBwwLU2FudGEgQ2xhcmExCzAJBgNV +BAgMAkNBMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABN8N +o/+w/dZTXRAraluoArMWmtMMVy6lRu7HRSf6ulYwj0yPSl/Xf5TGdGIIhE5ya1wy +TOUgAQYlkpTNJMAfb4+jggMQMIIDDDAfBgNVHSMEGDAWgBRZI9OnSqhjVC45cK3g +DwcrVyQqtzBvBgNVHR8EaDBmMGSgYqBghl5odHRwczovL3NieC5hcGkudHJ1c3Rl +ZHNlcnZpY2VzLmludGVsLmNvbS9zZ3gvY2VydGlmaWNhdGlvbi92NC9wY2tjcmw/ +Y2E9cGxhdGZvcm0mZW5jb2Rpbmc9ZGVyMB0GA1UdDgQWBBQ06NrjR/pc2ZPZb9IP +9othv5DvmzAOBgNVHQ8BAf8EBAMCBsAwDAYDVR0TAQH/BAIwADCCAjkGCSqGSIb4 +TQENAQSCAiowggImMB4GCiqGSIb4TQENAQEEEAucF855AJaPJr+uO2TF7VcwggFj +BgoqhkiG+E0BDQECMIIBUzAQBgsqhkiG+E0BDQECAQIBATAQBgsqhkiG+E0BDQEC +AgIBATAQBgsqhkiG+E0BDQECAwIBADAQBgsqhkiG+E0BDQECBAIBADAQBgsqhkiG ++E0BDQECBQIBADAQBgsqhkiG+E0BDQECBgIBADAQBgsqhkiG+E0BDQECBwIBADAQ +BgsqhkiG+E0BDQECCAIBADAQBgsqhkiG+E0BDQECCQIBADAQBgsqhkiG+E0BDQEC +CgIBADAQBgsqhkiG+E0BDQECCwIBADAQBgsqhkiG+E0BDQECDAIBADAQBgsqhkiG ++E0BDQECDQIBADAQBgsqhkiG+E0BDQECDgIBADAQBgsqhkiG+E0BDQECDwIBADAQ +BgsqhkiG+E0BDQECEAIBADAQBgsqhkiG+E0BDQECEQIBADAfBgsqhkiG+E0BDQEC +EgQQAQEAAAAAAAAAAAAAAAAAADAQBgoqhkiG+E0BDQEDBAIAADAUBgoqhkiG+E0B +DQEEBAYQgG8HAAAwDwYKKoZIhvhNAQ0BBQoBATAeBgoqhkiG+E0BDQEGBBBaCFN+ +9SUitBCSrrHaT9K/MEQGCiqGSIb4TQENAQcwNjAQBgsqhkiG+E0BDQEHAQEB/zAQ +BgsqhkiG+E0BDQEHAgEBADAQBgsqhkiG+E0BDQEHAwEB/zAKBggqhkjOPQQDAgNI +ADBFAiB3Cc7+TAF3D8wrn1Fm3c8hU3XslwrG3n8Zc6dnyR4qYAIhAMBkLXE0rZ39 +mKC2GFkipoRf07n8n7rqlpslRkKYvZGR +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICmjCCAkCgAwIBAgIUWSPTp0qoY1QuOXCt4A8HK1ckKrcwCgYIKoZIzj0EAwIw +aDEaMBgGA1UEAwwRSW50ZWwgU0dYIFJvb3QgQ0ExGjAYBgNVBAoMEUludGVsIENv +cnBvcmF0aW9uMRQwEgYDVQQHDAtTYW50YSBDbGFyYTELMAkGA1UECAwCQ0ExCzAJ +BgNVBAYTAlVTMB4XDTE5MTAzMTEyMzM0N1oXDTM0MTAzMTEyMzM0N1owcDEiMCAG +A1UEAwwZSW50ZWwgU0dYIFBDSyBQbGF0Zm9ybSBDQTEaMBgGA1UECgwRSW50ZWwg +Q29ycG9yYXRpb24xFDASBgNVBAcMC1NhbnRhIENsYXJhMQswCQYDVQQIDAJDQTEL +MAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQwp+Lc+TUBtg1H ++U8JIsMsbjHjCkTtXb8jPM6r2dhu9zIblhDZ7INfqt3Ix8XcFKD8k0NEXrkZ66qJ +Xa1KzLIKo4G/MIG8MB8GA1UdIwQYMBaAFOnoRFJTNlxLGJoR/EMYLKXcIIBIMFYG +A1UdHwRPME0wS6BJoEeGRWh0dHBzOi8vc2J4LWNlcnRpZmljYXRlcy50cnVzdGVk +c2VydmljZXMuaW50ZWwuY29tL0ludGVsU0dYUm9vdENBLmRlcjAdBgNVHQ4EFgQU +WSPTp0qoY1QuOXCt4A8HK1ckKrcwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI +MAYBAf8CAQAwCgYIKoZIzj0EAwIDSAAwRQIhAJ1q+FTz+gUuVfBQuCgJsFrL2TTS +e1aBZ53O52TjFie6AiAriPaRahUX9Oa9kGLlAchWXKT6j4RWSR50BqhrN3UT4A== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIClDCCAjmgAwIBAgIVAOnoRFJTNlxLGJoR/EMYLKXcIIBIMAoGCCqGSM49BAMC +MGgxGjAYBgNVBAMMEUludGVsIFNHWCBSb290IENBMRowGAYDVQQKDBFJbnRlbCBD +b3Jwb3JhdGlvbjEUMBIGA1UEBwwLU2FudGEgQ2xhcmExCzAJBgNVBAgMAkNBMQsw +CQYDVQQGEwJVUzAeFw0xOTEwMzEwOTQ5MjFaFw00OTEyMzEyMzU5NTlaMGgxGjAY +BgNVBAMMEUludGVsIFNHWCBSb290IENBMRowGAYDVQQKDBFJbnRlbCBDb3Jwb3Jh +dGlvbjEUMBIGA1UEBwwLU2FudGEgQ2xhcmExCzAJBgNVBAgMAkNBMQswCQYDVQQG +EwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABE/6D/1WHNrWwPmNMIyBKMW5 +J6JzMsjo6xP2vkK1cdZGb1PGRP/C/8ECgiDkmklmzwLzLi+000m7LLrtKJA3oC2j +gb8wgbwwHwYDVR0jBBgwFoAU6ehEUlM2XEsYmhH8QxgspdwggEgwVgYDVR0fBE8w +TTBLoEmgR4ZFaHR0cHM6Ly9zYngtY2VydGlmaWNhdGVzLnRydXN0ZWRzZXJ2aWNl +cy5pbnRlbC5jb20vSW50ZWxTR1hSb290Q0EuZGVyMB0GA1UdDgQWBBTp6ERSUzZc +SxiaEfxDGCyl3CCASDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIB +ATAKBggqhkjOPQQDAgNJADBGAiEAzw9zdUiUHPMUd0C4mx41jlFZkrM3y5f1lgnV +O7FbjOoCIQCoGtUmT4cXt7V+ySHbJ8Hob9AanpvXNH1ER+/gZF+opQ== +-----END CERTIFICATE----- diff --git a/common/golang/test_data/ima_log.bin b/common/golang/test_data/ima_log.bin new file mode 100644 index 00000000..c165ea01 --- /dev/null +++ b/common/golang/test_data/ima_log.bin @@ -0,0 +1 @@ + 2 67c70809bd405ea82081e8f1eb2ca16108bce307f5f139492da641e08e07ec99e2163649f29323a5f5963fe07bb06cc6 ima-ng sha384:cd01ce7f8d1a658f8fdaf33bfb18a7bf9bc3d45386f16be3caf22ef9cb32a26ec53d8b8b74c76b94b744bdf191506cb3 boot_aggregate diff --git a/common/golang/test_data/quote.bin b/common/golang/test_data/quote.bin new file mode 100644 index 0000000000000000000000000000000000000000..ed0c0aac0f0e28f7a94ef5b7d181ffa38b20b2ba GIT binary patch literal 5026 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 H71#d<7GJx% literal 0 HcmV?d00001