@super-protocol/addons-tee 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { TdxEventLogEntry, TdxQuoteWithEventLog } from "./tdx-quote-with-event-log-schema";
3
- import { TdxParseQuote } from "./tdx-parsed-quote-schema";
3
+ import { TdxParsedQuote } from "./tdx-parsed-quote-schema";
4
4
  export declare class DcapQuoteVerifyService {
5
5
  private readonly quoteVerifier;
6
6
  private static isInGramineMode;
@@ -10,7 +10,7 @@ export declare class DcapQuoteVerifyService {
10
10
  validateQuoteVerifierEnclave(quote: Buffer, checkSecurity?: boolean): Promise<void>;
11
11
  generateTDXQuote(userData: Buffer): Promise<Buffer>;
12
12
  validateRtmrEventLogIntegrity(eventLog: TdxEventLogEntry[], rtmr: string | Buffer): Promise<void>;
13
- parseTDXQuote(quote: Buffer): Promise<TdxParseQuote>;
13
+ parseTDXQuote(quote: Buffer): Promise<TdxParsedQuote>;
14
14
  generateTDXQuoteWithEventLog(userData: Buffer): Promise<TdxQuoteWithEventLog>;
15
15
  private static formatSubprocessError;
16
16
  private normalizeRtmr;
@@ -269,4 +269,4 @@ class DcapQuoteVerifyService {
269
269
  exports.DcapQuoteVerifyService = DcapQuoteVerifyService;
270
270
  DcapQuoteVerifyService.isInGramineMode = false;
271
271
  DcapQuoteVerifyService.executeLikeWithMutex = new p_queue_1.default({ concurrency: 1 });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGNhcC1xdW90ZS12ZXJpZnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZ3gtbmF0aXZlLW1vZHVsZS9kY2FwLXF1b3RlLXZlcmlmeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDdEcscUNBQWdFO0FBQ2hFLHFDQUtrQjtBQUNsQixzREFBNEI7QUFDNUIsMkJBQXlDO0FBQ3pDLGlEQUF5QztBQUN6QyxtQ0FBb0M7QUFDcEMsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwrQkFBaUM7QUFDakMsbURBQWdEO0FBQ2hELHVDQUFtRDtBQUNuRCx1RkFLMkM7QUFDM0MsdUVBQW9GO0FBRXBGLE1BQU0sYUFBYSxHQUFHLElBQUEsZ0JBQVMsRUFBQyx3QkFBUSxDQUFDLENBQUM7QUFDMUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSw0REFBNEQsQ0FBQyxDQUFDO0FBUXRILE1BQWEsc0JBQXNCO0lBSy9CO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFvQjtRQUMzQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSwrQ0FBc0MsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxLQUFhLEVBQUUsYUFBdUI7UUFDckUsYUFBYSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7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
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGNhcC1xdW90ZS12ZXJpZnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZ3gtbmF0aXZlLW1vZHVsZS9kY2FwLXF1b3RlLXZlcmlmeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDdEcscUNBQWdFO0FBQ2hFLHFDQUtrQjtBQUNsQixzREFBNEI7QUFDNUIsMkJBQXlDO0FBQ3pDLGlEQUF5QztBQUN6QyxtQ0FBb0M7QUFDcEMsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwrQkFBaUM7QUFDakMsbURBQWdEO0FBQ2hELHVDQUFtRDtBQUNuRCx1RkFLMkM7QUFDM0MsdUVBQXFGO0FBRXJGLE1BQU0sYUFBYSxHQUFHLElBQUEsZ0JBQVMsRUFBQyx3QkFBUSxDQUFDLENBQUM7QUFDMUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSw0REFBNEQsQ0FBQyxDQUFDO0FBUXRILE1BQWEsc0JBQXNCO0lBSy9CO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFvQjtRQUMzQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSwrQ0FBc0MsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxLQUFhLEVBQUUsYUFBdUI7UUFDckUsYUFBYSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7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
@@ -1,5 +1,6 @@
1
1
  import { Static } from "@sinclair/typebox";
2
2
  export declare const TdxParsedQuoteJsonSchema: import("@sinclair/typebox").TObject<{
3
+ reportData: import("@sinclair/typebox").TString;
3
4
  tdattributes: import("@sinclair/typebox").TString;
4
5
  mrtd: import("@sinclair/typebox").TString;
5
6
  rtmr0: import("@sinclair/typebox").TString;
@@ -7,4 +8,4 @@ export declare const TdxParsedQuoteJsonSchema: import("@sinclair/typebox").TObje
7
8
  rtmr2: import("@sinclair/typebox").TString;
8
9
  rtmr3: import("@sinclair/typebox").TString;
9
10
  }>;
10
- export type TdxParseQuote = Static<typeof TdxParsedQuoteJsonSchema>;
11
+ export type TdxParsedQuote = Static<typeof TdxParsedQuoteJsonSchema>;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TdxParsedQuoteJsonSchema = void 0;
4
4
  const typebox_1 = require("@sinclair/typebox");
5
5
  exports.TdxParsedQuoteJsonSchema = typebox_1.Type.Object({
6
+ reportData: typebox_1.Type.String(),
6
7
  tdattributes: typebox_1.Type.String(),
7
8
  mrtd: typebox_1.Type.String(),
8
9
  rtmr0: typebox_1.Type.String(),
@@ -10,4 +11,4 @@ exports.TdxParsedQuoteJsonSchema = typebox_1.Type.Object({
10
11
  rtmr2: typebox_1.Type.String(),
11
12
  rtmr3: typebox_1.Type.String(),
12
13
  });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGR4LXBhcnNlZC1xdW90ZS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2d4LW5hdGl2ZS1tb2R1bGUvdGR4LXBhcnNlZC1xdW90ZS1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQWlEO0FBRXBDLFFBQUEsd0JBQXdCLEdBQUcsY0FBSSxDQUFDLE1BQU0sQ0FBQztJQUNoRCxZQUFZLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUMzQixJQUFJLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNwQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNwQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNwQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUMifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGR4LXBhcnNlZC1xdW90ZS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2d4LW5hdGl2ZS1tb2R1bGUvdGR4LXBhcnNlZC1xdW90ZS1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQWlEO0FBRXBDLFFBQUEsd0JBQXdCLEdBQUcsY0FBSSxDQUFDLE1BQU0sQ0FBQztJQUNoRCxVQUFVLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUN6QixZQUFZLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUMzQixJQUFJLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNwQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNwQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtJQUNwQixLQUFLLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-protocol/addons-tee",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "The TEE trusted loader addons",
5
5
  "tags": [
6
6
  "tee"
@@ -1,8 +0,0 @@
1
- .gocache/
2
- .gomodcache/
3
- /go-tdx-attest-wrapper
4
- /tdx-attest-wrapper
5
- !go.mod
6
- !go.sum
7
- !main.go
8
- !.gitignore
@@ -1,18 +0,0 @@
1
- module github.com/super-protocol/sp-nodejs-addons/tee-addon/bindings/go-tdx-attest-wrapper
2
-
3
- go 1.22
4
-
5
- require (
6
- github.com/google/go-eventlog v0.0.2
7
- github.com/google/go-tdx-guest v0.3.1
8
- )
9
-
10
- require (
11
- github.com/google/go-configfs-tsm v0.2.2 // indirect
12
- github.com/google/go-tpm v0.9.0 // indirect
13
- github.com/google/logger v1.1.1 // indirect
14
- go.uber.org/multierr v1.11.0 // indirect
15
- golang.org/x/crypto v0.17.0 // indirect
16
- golang.org/x/sys v0.19.0 // indirect
17
- google.golang.org/protobuf v1.34.2 // indirect
18
- )
@@ -1,29 +0,0 @@
1
- github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2
- github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3
- github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
4
- github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
5
- github.com/google/go-configfs-tsm v0.2.2 h1:YnJ9rXIOj5BYD7/0DNnzs8AOp7UcvjfTvt215EWcs98=
6
- github.com/google/go-configfs-tsm v0.2.2/go.mod h1:EL1GTDFMb5PZQWDviGfZV9n87WeGTR/JUg13RfwkgRo=
7
- github.com/google/go-eventlog v0.0.2 h1:Q3XESKw1xuO7+U37PmFGmteQqprL8U5/linAiuy3oIY=
8
- github.com/google/go-eventlog v0.0.2/go.mod h1:7huE5P8w2NTObSwSJjboHmB7ioBNblkijdzoVa2skfQ=
9
- github.com/google/go-tdx-guest v0.3.1 h1:gl0KvjdsD4RrJzyLefDOvFOUH3NAJri/3qvaL5m83Iw=
10
- github.com/google/go-tdx-guest v0.3.1/go.mod h1:/rc3d7rnPykOPuY8U9saMyEps0PZDThLk/RygXm04nE=
11
- github.com/google/go-tpm v0.9.0 h1:sQF6YqWMi+SCXpsmS3fd21oPy/vSddwZry4JnmltHVk=
12
- github.com/google/go-tpm v0.9.0/go.mod h1:FkNVkc6C+IsvDI9Jw1OveJmxGZUUaKxtrpOS47QWKfU=
13
- github.com/google/logger v1.1.1 h1:+6Z2geNxc9G+4D4oDO9njjjn2d0wN5d7uOo0vOIW1NQ=
14
- github.com/google/logger v1.1.1/go.mod h1:BkeJZ+1FhQ+/d087r4dzojEg1u2ZX+ZqG1jTUrLM+zQ=
15
- github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
16
- github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
17
- github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
18
- github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
19
- go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
20
- go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
21
- golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
22
- golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
23
- golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
24
- golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
25
- golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
26
- google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
27
- google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
28
- gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
29
- gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -1,244 +0,0 @@
1
- package main
2
-
3
- import (
4
- "encoding/base64"
5
- "encoding/hex"
6
- "encoding/json"
7
- "errors"
8
- "flag"
9
- "fmt"
10
- "io"
11
- "os"
12
- "strings"
13
-
14
- "github.com/google/go-tdx-guest/abi"
15
- "github.com/google/go-eventlog/register"
16
- "github.com/google/go-eventlog/tcg"
17
- "github.com/google/go-tdx-guest/client"
18
- pb "github.com/google/go-tdx-guest/proto/tdx"
19
- )
20
-
21
- const (
22
- defaultCCELEventLogPath = "/sys/firmware/acpi/tables/data/CCEL"
23
- rtmr0MRIndex = 1
24
- )
25
-
26
- type eventRecord struct {
27
- Type string `json:"type"`
28
- Digest string `json:"digest"`
29
- }
30
-
31
- type outputPayload struct {
32
- Quote string `json:"quote"`
33
- EventLog []eventRecord `json:"eventLog"`
34
- }
35
-
36
- type parsedQuotePayload struct {
37
- TDAttributes string `json:"tdattributes"`
38
- MRTD string `json:"mrtd"`
39
- RTMR0 string `json:"rtmr0"`
40
- RTMR1 string `json:"rtmr1"`
41
- RTMR2 string `json:"rtmr2"`
42
- RTMR3 string `json:"rtmr3"`
43
- }
44
-
45
- func main() {
46
- if err := run(); err != nil {
47
- fmt.Fprintf(os.Stderr, "error: %v\n", err)
48
- os.Exit(1)
49
- }
50
- }
51
-
52
- func run() error {
53
- if len(os.Args) < 2 {
54
- return usageError("missing subcommand: expected 'attest' or 'parse-quote'")
55
- }
56
-
57
- switch os.Args[1] {
58
- case "attest":
59
- return runAttest(os.Args[2:])
60
- case "parse-quote":
61
- return runParseQuote(os.Args[2:])
62
- default:
63
- return usageError(fmt.Sprintf("unknown subcommand %q: expected 'attest' or 'parse-quote'", os.Args[1]))
64
- }
65
- }
66
-
67
- func runAttest(args []string) error {
68
- fs := newFlagSet("attest")
69
- reportDataHex := fs.String("report-data", "", "hex-encoded report data, up to 64 bytes")
70
- outputPath := fs.String("output", "", "write JSON output to file")
71
- ccelEventLogPath := fs.String("ccel-event-log", defaultCCELEventLogPath, "path to CCEL event log data")
72
- if err := fs.Parse(args); err != nil {
73
- return err
74
- }
75
-
76
- if *reportDataHex == "" {
77
- return errors.New("missing required flag --report-data")
78
- }
79
- if *outputPath == "" {
80
- return errors.New("missing required flag --output")
81
- }
82
-
83
- reportData, err := decodeReportData(*reportDataHex)
84
- if err != nil {
85
- return fmt.Errorf("decode report data: %w", err)
86
- }
87
-
88
- quoteProvider, err := client.GetQuoteProvider()
89
- if err != nil {
90
- return fmt.Errorf("get quote provider: %w", err)
91
- }
92
-
93
- rawQuote, err := client.GetRawQuote(quoteProvider, reportData)
94
- if err != nil {
95
- return fmt.Errorf("get TDX quote: %w", err)
96
- }
97
-
98
- events, err := readRTMR0Events(*ccelEventLogPath)
99
- if err != nil {
100
- return err
101
- }
102
-
103
- payload := outputPayload{
104
- Quote: base64.StdEncoding.EncodeToString(rawQuote),
105
- EventLog: events,
106
- }
107
-
108
- return writeJSON(*outputPath, payload)
109
- }
110
-
111
- func runParseQuote(args []string) error {
112
- fs := newFlagSet("parse-quote")
113
- quotePath := fs.String("quote-file", "", "path to a raw TDX quote file")
114
- outputPath := fs.String("output", "", "write JSON output to file")
115
- if err := fs.Parse(args); err != nil {
116
- return err
117
- }
118
-
119
- if *quotePath == "" {
120
- return errors.New("missing required flag --quote-file")
121
- }
122
- if *outputPath == "" {
123
- return errors.New("missing required flag --output")
124
- }
125
-
126
- rawQuote, err := os.ReadFile(*quotePath)
127
- if err != nil {
128
- return fmt.Errorf("read quote file %q: %w", *quotePath, err)
129
- }
130
-
131
- payload, err := parseQuote(rawQuote)
132
- if err != nil {
133
- return err
134
- }
135
-
136
- return writeJSON(*outputPath, payload)
137
- }
138
-
139
- func newFlagSet(name string) *flag.FlagSet {
140
- fs := flag.NewFlagSet(name, flag.ContinueOnError)
141
- fs.SetOutput(io.Discard)
142
- return fs
143
- }
144
-
145
- func writeJSON(outputPath string, payload any) error {
146
- jsonData, err := json.MarshalIndent(payload, "", " ")
147
- if err != nil {
148
- return fmt.Errorf("marshal JSON: %w", err)
149
- }
150
-
151
- if err := os.WriteFile(outputPath, append(jsonData, '\n'), 0o644); err != nil {
152
- return fmt.Errorf("write output file %q: %w", outputPath, err)
153
- }
154
-
155
- return nil
156
- }
157
-
158
- func parseQuote(rawQuote []byte) (parsedQuotePayload, error) {
159
- anyQuote, err := abi.QuoteToProto(rawQuote)
160
- if err != nil {
161
- return parsedQuotePayload{}, fmt.Errorf("parse quote: %w", err)
162
- }
163
-
164
- switch quote := anyQuote.(type) {
165
- case *pb.QuoteV4:
166
- tdQuoteBody := quote.GetTdQuoteBody()
167
- if tdQuoteBody == nil {
168
- return parsedQuotePayload{}, errors.New("parse quote: missing TD quote body")
169
- }
170
-
171
- rtmrs := tdQuoteBody.GetRtmrs()
172
- if len(rtmrs) < 4 {
173
- return parsedQuotePayload{}, fmt.Errorf("parse quote: expected at least 4 RTMRs, got %d", len(rtmrs))
174
- }
175
-
176
- return parsedQuotePayload{
177
- TDAttributes: hex.EncodeToString(tdQuoteBody.GetTdAttributes()),
178
- MRTD: hex.EncodeToString(tdQuoteBody.GetMrTd()),
179
- RTMR0: hex.EncodeToString(rtmrs[0]),
180
- RTMR1: hex.EncodeToString(rtmrs[1]),
181
- RTMR2: hex.EncodeToString(rtmrs[2]),
182
- RTMR3: hex.EncodeToString(rtmrs[3]),
183
- }, nil
184
- default:
185
- return parsedQuotePayload{}, fmt.Errorf("parse quote: unsupported quote type %T", anyQuote)
186
- }
187
- }
188
-
189
- func usageError(message string) error {
190
- return fmt.Errorf("%s\nusage:\n %s attest --report-data <hex> --output <file> [--ccel-event-log <path>]\n %s parse-quote --quote-file <path> --output <file>", message, os.Args[0], os.Args[0])
191
- }
192
-
193
- func decodeReportData(raw string) ([64]byte, error) {
194
- var reportData [64]byte
195
-
196
- normalized := strings.TrimSpace(raw)
197
- normalized = strings.TrimPrefix(normalized, "0x")
198
- normalized = strings.TrimPrefix(normalized, "0X")
199
-
200
- decoded, err := hex.DecodeString(normalized)
201
- if err != nil {
202
- return reportData, err
203
- }
204
- if len(decoded) > len(reportData) {
205
- return reportData, fmt.Errorf("report data is %d bytes, exceeds 64 bytes", len(decoded))
206
- }
207
-
208
- copy(reportData[:], decoded)
209
- return reportData, nil
210
- }
211
-
212
- func readRTMR0Events(eventLogPath string) ([]eventRecord, error) {
213
- eventLogData, err := os.ReadFile(eventLogPath)
214
- if err != nil {
215
- return nil, fmt.Errorf("read CCEL event log %q: %w", eventLogPath, err)
216
- }
217
-
218
- eventLog, err := tcg.ParseEventLog(eventLogData, tcg.ParseOpts{AllowPadding: true})
219
- if err != nil {
220
- return nil, fmt.Errorf("parse CCEL event log %q: %w", eventLogPath, err)
221
- }
222
-
223
- records := make([]eventRecord, 0)
224
- for _, event := range eventLog.Events(register.HashSHA384) {
225
- if event.MRIndex() != rtmr0MRIndex {
226
- continue
227
- }
228
-
229
- records = append(records, eventRecord{
230
- Type: eventTypeTCGString(event.UntrustedType()),
231
- Digest: hex.EncodeToString(event.ReplayedDigest()),
232
- })
233
- }
234
-
235
- return records, nil
236
- }
237
-
238
- func eventTypeTCGString(eventType any) string {
239
- if typed, ok := eventType.(interface{ TCGString() string }); ok {
240
- return typed.TCGString()
241
- }
242
-
243
- return fmt.Sprintf("%v", eventType)
244
- }