@super-protocol/addons-tee 1.0.0 → 1.1.0
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.
- package/bindings/amd-sev-snp-napi-rs/amd-sev-snp-napi-rs.linux-x64-gnu.node +0 -0
- package/bindings/go-tdx-attest-wrapper/.gitignore +8 -0
- package/bindings/go-tdx-attest-wrapper/go.mod +18 -0
- package/bindings/go-tdx-attest-wrapper/go.sum +29 -0
- package/bindings/go-tdx-attest-wrapper/main.go +142 -0
- package/bindings/sgx-native/build/Release/libmbedcrypto_gramine.so.15 +0 -0
- package/bindings/sgx-native/build/Release/libmbedx509_gramine.so.6 +0 -0
- package/bindings/sgx-native/build/Release/libsgx_dcap_quoteverify.so.1 +0 -0
- package/bindings/sgx-native/build/Release/libtdx_attest.so.1 +0 -0
- package/bindings/sgx-native/build/Release/sgx_native.node +0 -0
- package/bindings/utils/virtee/libsev.so +0 -0
- package/bindings/utils/virtee/snpguest +0 -0
- package/dist/sgx-native-module/dcap-quote-verify.service.d.ts +3 -0
- package/dist/sgx-native-module/dcap-quote-verify.service.js +94 -1
- package/dist/sgx-native-module/index.d.ts +1 -0
- package/dist/sgx-native-module/index.js +2 -1
- package/dist/sgx-native-module/tdx-quote-with-event-log-schema.d.ts +19 -0
- package/dist/sgx-native-module/tdx-quote-with-event-log-schema.js +13 -0
- package/package.json +3 -5
- package/dto/src/AmdSevSnp.proto +0 -31
- package/dto/src/Compression.proto +0 -11
- package/dto/src/Hash.proto +0 -6
- package/dto/src/OrderReport.proto +0 -21
- package/dto/src/TRI.proto +0 -22
- package/dto/src/TeeDeviceInfo.proto +0 -46
|
Binary file
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
)
|
|
@@ -0,0 +1,29 @@
|
|
|
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=
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
package main
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"encoding/base64"
|
|
5
|
+
"encoding/hex"
|
|
6
|
+
"encoding/json"
|
|
7
|
+
"errors"
|
|
8
|
+
"flag"
|
|
9
|
+
"fmt"
|
|
10
|
+
"os"
|
|
11
|
+
"strings"
|
|
12
|
+
|
|
13
|
+
"github.com/google/go-eventlog/register"
|
|
14
|
+
"github.com/google/go-eventlog/tcg"
|
|
15
|
+
"github.com/google/go-tdx-guest/client"
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
const (
|
|
19
|
+
defaultCCELEventLogPath = "/sys/firmware/acpi/tables/data/CCEL"
|
|
20
|
+
rtmr0MRIndex = 1
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
type eventRecord struct {
|
|
24
|
+
Type string `json:"type"`
|
|
25
|
+
Digest string `json:"digest"`
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type outputPayload struct {
|
|
29
|
+
Quote string `json:"quote"`
|
|
30
|
+
EventLog []eventRecord `json:"eventLog"`
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
func main() {
|
|
34
|
+
if err := run(); err != nil {
|
|
35
|
+
fmt.Fprintf(os.Stderr, "error: %v\n", err)
|
|
36
|
+
os.Exit(1)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
func run() error {
|
|
41
|
+
reportDataHex := flag.String("report-data", "", "hex-encoded report data, up to 64 bytes")
|
|
42
|
+
outputPath := flag.String("output", "", "write JSON output to file instead of stdout")
|
|
43
|
+
ccelEventLogPath := flag.String("ccel-event-log", defaultCCELEventLogPath, "path to CCEL event log data")
|
|
44
|
+
flag.Parse()
|
|
45
|
+
|
|
46
|
+
if *reportDataHex == "" {
|
|
47
|
+
return errors.New("missing required flag --report-data")
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
reportData, err := decodeReportData(*reportDataHex)
|
|
51
|
+
if err != nil {
|
|
52
|
+
return fmt.Errorf("decode report data: %w", err)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
quoteProvider, err := client.GetQuoteProvider()
|
|
56
|
+
if err != nil {
|
|
57
|
+
return fmt.Errorf("get quote provider: %w", err)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
rawQuote, err := client.GetRawQuote(quoteProvider, reportData)
|
|
61
|
+
if err != nil {
|
|
62
|
+
return fmt.Errorf("get TDX quote: %w", err)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
events, err := readRTMR0Events(*ccelEventLogPath)
|
|
66
|
+
if err != nil {
|
|
67
|
+
return err
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
payload := outputPayload{
|
|
71
|
+
Quote: base64.StdEncoding.EncodeToString(rawQuote),
|
|
72
|
+
EventLog: events,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
jsonData, err := json.MarshalIndent(payload, "", " ")
|
|
76
|
+
if err != nil {
|
|
77
|
+
return fmt.Errorf("marshal JSON: %w", err)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if *outputPath != "" {
|
|
81
|
+
if err := os.WriteFile(*outputPath, append(jsonData, '\n'), 0o644); err != nil {
|
|
82
|
+
return fmt.Errorf("write output file %q: %w", *outputPath, err)
|
|
83
|
+
}
|
|
84
|
+
return nil
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
_, err = os.Stdout.Write(append(jsonData, '\n'))
|
|
88
|
+
return err
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
func decodeReportData(raw string) ([64]byte, error) {
|
|
92
|
+
var reportData [64]byte
|
|
93
|
+
|
|
94
|
+
normalized := strings.TrimSpace(raw)
|
|
95
|
+
normalized = strings.TrimPrefix(normalized, "0x")
|
|
96
|
+
normalized = strings.TrimPrefix(normalized, "0X")
|
|
97
|
+
|
|
98
|
+
decoded, err := hex.DecodeString(normalized)
|
|
99
|
+
if err != nil {
|
|
100
|
+
return reportData, err
|
|
101
|
+
}
|
|
102
|
+
if len(decoded) > len(reportData) {
|
|
103
|
+
return reportData, fmt.Errorf("report data is %d bytes, exceeds 64 bytes", len(decoded))
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
copy(reportData[:], decoded)
|
|
107
|
+
return reportData, nil
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
func readRTMR0Events(eventLogPath string) ([]eventRecord, error) {
|
|
111
|
+
eventLogData, err := os.ReadFile(eventLogPath)
|
|
112
|
+
if err != nil {
|
|
113
|
+
return nil, fmt.Errorf("read CCEL event log %q: %w", eventLogPath, err)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
eventLog, err := tcg.ParseEventLog(eventLogData, tcg.ParseOpts{AllowPadding: true})
|
|
117
|
+
if err != nil {
|
|
118
|
+
return nil, fmt.Errorf("parse CCEL event log %q: %w", eventLogPath, err)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
records := make([]eventRecord, 0)
|
|
122
|
+
for _, event := range eventLog.Events(register.HashSHA384) {
|
|
123
|
+
if event.MRIndex() != rtmr0MRIndex {
|
|
124
|
+
continue
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
records = append(records, eventRecord{
|
|
128
|
+
Type: eventTypeTCGString(event.UntrustedType()),
|
|
129
|
+
Digest: hex.EncodeToString(event.ReplayedDigest()),
|
|
130
|
+
})
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return records, nil
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
func eventTypeTCGString(eventType any) string {
|
|
137
|
+
if typed, ok := eventType.(interface{ TCGString() string }); ok {
|
|
138
|
+
return typed.TCGString()
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return fmt.Sprintf("%v", eventType)
|
|
142
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import { TdxQuoteWithEventLog } from "./tdx-quote-with-event-log-schema";
|
|
2
3
|
export declare class DcapQuoteVerifyService {
|
|
3
4
|
private readonly quoteVerifier;
|
|
4
5
|
private static isInGramineMode;
|
|
@@ -7,6 +8,8 @@ export declare class DcapQuoteVerifyService {
|
|
|
7
8
|
extractQuoteFromCert(pemOrDerCert: Buffer): Promise<Buffer>;
|
|
8
9
|
validateQuoteVerifierEnclave(quote: Buffer, checkSecurity?: boolean): Promise<void>;
|
|
9
10
|
generateTDXQuote(userData: Buffer): Promise<Buffer>;
|
|
11
|
+
generateTDXQuoteWithEventLog(userData: Buffer): Promise<TdxQuoteWithEventLog>;
|
|
12
|
+
private static formatSubprocessError;
|
|
10
13
|
private validateMode;
|
|
11
14
|
generateSGXQuote(userData: Buffer): Promise<Buffer>;
|
|
12
15
|
}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
@@ -9,6 +32,15 @@ const consts_1 = require("./consts");
|
|
|
9
32
|
const errors_1 = require("./errors");
|
|
10
33
|
const p_queue_1 = __importDefault(require("p-queue"));
|
|
11
34
|
const fs_1 = require("fs");
|
|
35
|
+
const child_process_1 = require("child_process");
|
|
36
|
+
const os = __importStar(require("os"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const util_1 = require("util");
|
|
39
|
+
const value_1 = require("@sinclair/typebox/value");
|
|
40
|
+
const helpers_1 = require("./helpers");
|
|
41
|
+
const tdx_quote_with_event_log_schema_1 = require("./tdx-quote-with-event-log-schema");
|
|
42
|
+
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
43
|
+
const TDX_ATTEST_WRAPPER_PATH = path.resolve(__dirname, "../../bindings/go-tdx-attest-wrapper/go-tdx-attest-wrapper");
|
|
12
44
|
class DcapQuoteVerifyService {
|
|
13
45
|
constructor() {
|
|
14
46
|
this.quoteVerifier = new SgxAttestationVerifier();
|
|
@@ -35,6 +67,67 @@ class DcapQuoteVerifyService {
|
|
|
35
67
|
async generateTDXQuote(userData) {
|
|
36
68
|
return this.quoteVerifier.generateTDXQuote(userData);
|
|
37
69
|
}
|
|
70
|
+
async generateTDXQuoteWithEventLog(userData) {
|
|
71
|
+
if (!Buffer.isBuffer(userData)) {
|
|
72
|
+
throw new Error("userData must be a Buffer");
|
|
73
|
+
}
|
|
74
|
+
if (userData.length === 0) {
|
|
75
|
+
throw new Error("userData cannot be empty");
|
|
76
|
+
}
|
|
77
|
+
let tempDir = "";
|
|
78
|
+
try {
|
|
79
|
+
await fs_1.promises.access(TDX_ATTEST_WRAPPER_PATH, fs_1.constants.X_OK);
|
|
80
|
+
tempDir = await fs_1.promises.mkdtemp(path.join(os.tmpdir(), "tdx-quote-with-event-log-"));
|
|
81
|
+
const outputPath = path.join(tempDir, "quote-with-event-log.json");
|
|
82
|
+
await DcapQuoteVerifyService.executeLikeWithMutex.add(async () => {
|
|
83
|
+
try {
|
|
84
|
+
await execFileAsync(TDX_ATTEST_WRAPPER_PATH, [
|
|
85
|
+
"--report-data",
|
|
86
|
+
userData.toString("hex"),
|
|
87
|
+
"--output",
|
|
88
|
+
outputPath,
|
|
89
|
+
]);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
throw new errors_1.QuoteGenerationError(`Failed to generate quote with event log: ${DcapQuoteVerifyService.formatSubprocessError(error)}`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
const rawJson = await fs_1.promises.readFile(outputPath, "utf8");
|
|
96
|
+
const parsed = JSON.parse(rawJson);
|
|
97
|
+
if (!value_1.Value.Check(tdx_quote_with_event_log_schema_1.TdxQuoteWithEventLogJsonSchema, parsed)) {
|
|
98
|
+
const [firstError] = [...value_1.Value.Errors(tdx_quote_with_event_log_schema_1.TdxQuoteWithEventLogJsonSchema, parsed)];
|
|
99
|
+
const errorMessage = firstError ? `${firstError.path} ${firstError.message}`.trim() : "unknown error";
|
|
100
|
+
throw new errors_1.QuoteGenerationError(`Failed to validate quote with event log JSON: ${errorMessage}`);
|
|
101
|
+
}
|
|
102
|
+
const result = parsed;
|
|
103
|
+
return {
|
|
104
|
+
quote: Buffer.from(result.quote, "base64"),
|
|
105
|
+
eventLog: result.eventLog,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
if (error instanceof errors_1.QuoteGenerationError) {
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
if (error instanceof Error) {
|
|
113
|
+
throw new errors_1.QuoteGenerationError(`Failed to generate quote with event log: ${error.message}`);
|
|
114
|
+
}
|
|
115
|
+
throw new errors_1.QuoteGenerationError("Failed to generate quote with event log: unknown error");
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
if (tempDir) {
|
|
119
|
+
await (0, helpers_1.gramineCompatibleRmDir)(tempDir);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
static formatSubprocessError(error) {
|
|
124
|
+
if (!(error instanceof Error)) {
|
|
125
|
+
return "unknown error";
|
|
126
|
+
}
|
|
127
|
+
const processError = error;
|
|
128
|
+
const output = [processError.stdout, processError.stderr].filter(Boolean).join("\n").trim();
|
|
129
|
+
return output ? `${processError.message}\n${output}` : processError.message;
|
|
130
|
+
}
|
|
38
131
|
async validateMode() {
|
|
39
132
|
if (DcapQuoteVerifyService.isInGramineMode) {
|
|
40
133
|
return;
|
|
@@ -81,4 +174,4 @@ class DcapQuoteVerifyService {
|
|
|
81
174
|
exports.DcapQuoteVerifyService = DcapQuoteVerifyService;
|
|
82
175
|
DcapQuoteVerifyService.isInGramineMode = false;
|
|
83
176
|
DcapQuoteVerifyService.executeLikeWithMutex = new p_queue_1.default({ concurrency: 1 });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGNhcC1xdW90ZS12ZXJpZnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZ3gtbmF0aXZlLW1vZHVsZS9kY2FwLXF1b3RlLXZlcmlmeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDdEcscUNBQWdFO0FBQ2hFLHFDQUtrQjtBQUNsQixzREFBNEI7QUFDNUIsMkJBQXlDO0FBQ3pDLGlEQUF5QztBQUN6Qyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtCQUFpQztBQUNqQyxtREFBZ0Q7QUFDaEQsdUNBQW1EO0FBQ25ELHVGQUkyQztBQUUzQyxNQUFNLGFBQWEsR0FBRyxJQUFBLGdCQUFTLEVBQUMsd0JBQVEsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsNERBQTRELENBQUMsQ0FBQztBQVF0SCxNQUFhLHNCQUFzQjtJQUsvQjtRQUNJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsWUFBb0I7UUFDM0MsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksK0NBQXNDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQUMsS0FBYSxFQUFFLGFBQXVCO1FBQ3JFLGFBQWEsR0FBRyxhQUFhLElBQUksS0FBSyxDQUFDO1FBRXZDLElBQUksQ0FBQyxLQUFLLEVBQUUs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
|
|
@@ -22,5 +22,6 @@ __exportStar(require("./pki.service"), exports);
|
|
|
22
22
|
__exportStar(require("./sev-snp"), exports);
|
|
23
23
|
__exportStar(require("./sev-snp-mrenclave"), exports);
|
|
24
24
|
__exportStar(require("./sev-snp-schema"), exports);
|
|
25
|
+
__exportStar(require("./tdx-quote-with-event-log-schema"), exports);
|
|
25
26
|
__exportStar(require("../proto/AmdSevSnp"), exports);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2d4LW5hdGl2ZS1tb2R1bGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsb0RBQWtDO0FBQ2xDLDhEQUE0QztBQUM1QyxnREFBOEI7QUFDOUIsNENBQTBCO0FBQzFCLHNEQUFvQztBQUNwQyxtREFBaUM7QUFDakMsb0VBQWtEO0FBQ2xELHFEQUFtQyJ9
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Static } from "@sinclair/typebox";
|
|
3
|
+
export declare const TdxEventLogEntrySchema: import("@sinclair/typebox").TObject<{
|
|
4
|
+
type: import("@sinclair/typebox").TString;
|
|
5
|
+
digest: import("@sinclair/typebox").TString;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const TdxQuoteWithEventLogJsonSchema: import("@sinclair/typebox").TObject<{
|
|
8
|
+
quote: import("@sinclair/typebox").TString;
|
|
9
|
+
eventLog: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
10
|
+
type: import("@sinclair/typebox").TString;
|
|
11
|
+
digest: import("@sinclair/typebox").TString;
|
|
12
|
+
}>>;
|
|
13
|
+
}>;
|
|
14
|
+
export type TdxEventLogEntry = Static<typeof TdxEventLogEntrySchema>;
|
|
15
|
+
export type TdxQuoteWithEventLogJson = Static<typeof TdxQuoteWithEventLogJsonSchema>;
|
|
16
|
+
export interface TdxQuoteWithEventLog {
|
|
17
|
+
quote: Buffer;
|
|
18
|
+
eventLog: TdxEventLogEntry[];
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TdxQuoteWithEventLogJsonSchema = exports.TdxEventLogEntrySchema = void 0;
|
|
4
|
+
const typebox_1 = require("@sinclair/typebox");
|
|
5
|
+
exports.TdxEventLogEntrySchema = typebox_1.Type.Object({
|
|
6
|
+
type: typebox_1.Type.String(),
|
|
7
|
+
digest: typebox_1.Type.String(),
|
|
8
|
+
});
|
|
9
|
+
exports.TdxQuoteWithEventLogJsonSchema = typebox_1.Type.Object({
|
|
10
|
+
quote: typebox_1.Type.String(),
|
|
11
|
+
eventLog: typebox_1.Type.Array(exports.TdxEventLogEntrySchema),
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGR4LXF1b3RlLXdpdGgtZXZlbnQtbG9nLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZ3gtbmF0aXZlLW1vZHVsZS90ZHgtcXVvdGUtd2l0aC1ldmVudC1sb2ctc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUFpRDtBQUVwQyxRQUFBLHNCQUFzQixHQUFHLGNBQUksQ0FBQyxNQUFNLENBQUM7SUFDOUMsSUFBSSxFQUFFLGNBQUksQ0FBQyxNQUFNLEVBQUU7SUFDbkIsTUFBTSxFQUFFLGNBQUksQ0FBQyxNQUFNLEVBQUU7Q0FDeEIsQ0FBQyxDQUFDO0FBRVUsUUFBQSw4QkFBOEIsR0FBRyxjQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3RELEtBQUssRUFBRSxjQUFJLENBQUMsTUFBTSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxjQUFJLENBQUMsS0FBSyxDQUFDLDhCQUFzQixDQUFDO0NBQy9DLENBQUMsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@super-protocol/addons-tee",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "The TEE trusted loader addons",
|
|
5
5
|
"tags": [
|
|
6
6
|
"tee"
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"author": "Super Protocol",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"engines": {
|
|
18
|
-
"node": ">=
|
|
19
|
-
"npm": ">=
|
|
18
|
+
"node": ">=20.0",
|
|
19
|
+
"npm": ">=10.0"
|
|
20
20
|
},
|
|
21
21
|
"main": "dist/index.js",
|
|
22
22
|
"module": "dist/index.js",
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@super-protocol/eslint-config-typescript": "2.0.1",
|
|
45
45
|
"asn1-tree": "^0.1.1",
|
|
46
|
-
"msgpack5": "^6.0.2",
|
|
47
46
|
"node-forge": "^1.3.1",
|
|
48
47
|
"p-queue": "^6.6.2",
|
|
49
48
|
"@sinclair/typebox": "0.33.17"
|
|
@@ -57,7 +56,6 @@
|
|
|
57
56
|
"@peculiar/x509": "^1.9.3",
|
|
58
57
|
"@types/jest": "^27.5.2",
|
|
59
58
|
"@types/lodash": "^4.17.5",
|
|
60
|
-
"@types/msgpack5": "^3.4.6",
|
|
61
59
|
"@types/node": "^17.0.0",
|
|
62
60
|
"@types/node-forge": "^1.3.1",
|
|
63
61
|
"jest": "^29.7.0",
|
package/dto/src/AmdSevSnp.proto
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
enum SevSNPCertType {
|
|
4
|
-
ARK = 0;
|
|
5
|
-
ASK = 1;
|
|
6
|
-
VCEK = 2;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
enum SevSnpCertificateFormat {
|
|
10
|
-
PEM = 0;
|
|
11
|
-
DER = 1;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
message SnpCert {
|
|
15
|
-
SevSNPCertType type = 1;
|
|
16
|
-
bytes cert = 2;
|
|
17
|
-
SevSnpCertificateFormat format = 3;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
message SNPReport {
|
|
21
|
-
bytes rawReport = 1;
|
|
22
|
-
uint32 cpuSig = 2;
|
|
23
|
-
uint32 cores = 3;
|
|
24
|
-
bytes cmdLineHash = 4;
|
|
25
|
-
string build = 5;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
message SNPReportWithChain {
|
|
29
|
-
SNPReport snpReport = 1;
|
|
30
|
-
repeated SnpCert certs = 2;
|
|
31
|
-
}
|
package/dto/src/Hash.proto
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
import "Hash.proto";
|
|
4
|
-
|
|
5
|
-
message OrderReportProto {
|
|
6
|
-
repeated bytes certificates = 1;
|
|
7
|
-
WorkloadInfo workloadInfo = 2;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
message WorkloadInfo {
|
|
11
|
-
repeated RuntimeInfo runtimeInfo = 1;
|
|
12
|
-
int64 created = 2;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
message RuntimeInfo {
|
|
16
|
-
string type = 1;
|
|
17
|
-
int64 size = 2;
|
|
18
|
-
Hash hash = 3;
|
|
19
|
-
optional Hash signatureKeyHash = 4;
|
|
20
|
-
optional Hash argsHash = 5;
|
|
21
|
-
}
|
package/dto/src/TRI.proto
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
import "Hash.proto";
|
|
4
|
-
|
|
5
|
-
message Encryption {
|
|
6
|
-
string algo = 1;
|
|
7
|
-
optional bytes key = 2;
|
|
8
|
-
optional string cipher = 3;
|
|
9
|
-
optional bytes ciphertext = 4;
|
|
10
|
-
optional bytes iv = 6;
|
|
11
|
-
optional bytes mac = 7;
|
|
12
|
-
string encoding = 8;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
message TRI {
|
|
16
|
-
repeated Hash solutionHashes = 1;
|
|
17
|
-
bytes mrenclave = 2;
|
|
18
|
-
string args = 3;
|
|
19
|
-
Encryption encryption = 4;
|
|
20
|
-
bytes mrsigner = 5;
|
|
21
|
-
repeated Hash imageHashes = 6;
|
|
22
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
message TeeDeviceInfo {
|
|
4
|
-
CpuInfo cpu = 1;
|
|
5
|
-
MemoryInfo memory = 2;
|
|
6
|
-
DiskInfo disk = 3;
|
|
7
|
-
GpuInfo gpu = 4;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
message CpuInfo {
|
|
11
|
-
string vendor_id = 1;
|
|
12
|
-
int32 cpu_family = 2;
|
|
13
|
-
int32 model = 3;
|
|
14
|
-
string model_name = 4;
|
|
15
|
-
int32 total_physical_cores = 5;
|
|
16
|
-
int32 total_logical_cores = 6;
|
|
17
|
-
int32 base_freq = 7;
|
|
18
|
-
int32 max_freq = 8;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
message MemoryInfo {
|
|
22
|
-
string type = 1;
|
|
23
|
-
int64 size = 2;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
message DiskInfo {
|
|
27
|
-
string type = 1;
|
|
28
|
-
int64 size = 2;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
message GpuInfo {
|
|
32
|
-
string type = 1;
|
|
33
|
-
int32 count = 2;
|
|
34
|
-
int64 memory_size = 3;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
message NvtrustGPUInfo {
|
|
38
|
-
string model = 1;
|
|
39
|
-
string driverVersion = 2;
|
|
40
|
-
string vbios = 3;
|
|
41
|
-
bool dbgStat = 4;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
message NvtrustGPUList {
|
|
45
|
-
repeated NvtrustGPUInfo gpus = 1;
|
|
46
|
-
}
|