@magicblock-labs/ephemeral-rollups-kit 0.10.9 → 0.11.1
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/lib/__test__/access-control.test.js +4 -4
- package/lib/__test__/access-control.test.js.map +1 -1
- package/lib/access-control/verify.d.ts +2 -2
- package/lib/access-control/verify.d.ts.map +1 -1
- package/lib/access-control/verify.js +24 -17
- package/lib/access-control/verify.js.map +1 -1
- package/package.json +1 -1
|
@@ -157,8 +157,8 @@ const verify_1 = require("../access-control/verify");
|
|
|
157
157
|
(0, vitest_1.it)("should return true if the quote is valid (warns only if fails)", async () => {
|
|
158
158
|
const rpcUrl = "https://tee.magicblock.app";
|
|
159
159
|
try {
|
|
160
|
-
|
|
161
|
-
(0, vitest_1.
|
|
160
|
+
await (0, verify_1.verifyTeeIntegrity)(rpcUrl);
|
|
161
|
+
(0, vitest_1.assert)(true);
|
|
162
162
|
}
|
|
163
163
|
catch (err) {
|
|
164
164
|
console.warn(`[WARN] verifyTeeIntegrity test could not be completed due to external factors:`, err instanceof Error ? err.message : err);
|
|
@@ -173,8 +173,8 @@ const verify_1 = require("../access-control/verify");
|
|
|
173
173
|
(0, vitest_1.it)("should return true if the quote is valid (warns only if fails)", async () => {
|
|
174
174
|
const rpcUrl = "https://tee.magicblock.app";
|
|
175
175
|
try {
|
|
176
|
-
|
|
177
|
-
(0, vitest_1.
|
|
176
|
+
await (0, verify_1.verifyTeeRpcIntegrity)(rpcUrl);
|
|
177
|
+
(0, vitest_1.assert)(true);
|
|
178
178
|
}
|
|
179
179
|
catch (err) {
|
|
180
180
|
console.warn(`[WARN] verifyTeeRpcIntegrity test could not be completed due to external factors:`, err instanceof Error ? err.message : err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.test.js","sourceRoot":"","sources":["../../src/__test__/access-control.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"access-control.test.js","sourceRoot":"","sources":["../../src/__test__/access-control.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function verifyTeeRpcIntegrity(rpcUrl: string): Promise<
|
|
2
|
-
export declare function verifyTeeIntegrity(rpcUrl: string): Promise<
|
|
1
|
+
export declare function verifyTeeRpcIntegrity(rpcUrl: string): Promise<void>;
|
|
2
|
+
export declare function verifyTeeIntegrity(rpcUrl: string): Promise<void>;
|
|
3
3
|
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/access-control/verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/access-control/verify.ts"],"names":[],"mappings":"AA6BA,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzE;AAQD,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBtE"}
|
|
@@ -35,10 +35,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.verifyTeeRpcIntegrity = verifyTeeRpcIntegrity;
|
|
37
37
|
exports.verifyTeeIntegrity = verifyTeeIntegrity;
|
|
38
|
+
const sha2_1 = require("@noble/hashes/sha2");
|
|
38
39
|
const dcap_qvl_1 = require("@phala/dcap-qvl");
|
|
39
40
|
const nacl = __importStar(require("tweetnacl"));
|
|
40
41
|
async function verifyTeeRpcIntegrity(rpcUrl) {
|
|
41
|
-
const challengeBytes = Buffer.from(Uint8Array.from(Array(
|
|
42
|
+
const challengeBytes = Buffer.from(Uint8Array.from(Array(64)
|
|
42
43
|
.fill(0)
|
|
43
44
|
.map(() => Math.floor(Math.random() * 256))));
|
|
44
45
|
const challenge = challengeBytes.toString("base64");
|
|
@@ -49,10 +50,26 @@ async function verifyTeeRpcIntegrity(rpcUrl) {
|
|
|
49
50
|
throw new Error(responseBody.error ?? "Failed to get quote");
|
|
50
51
|
}
|
|
51
52
|
const rawQuote = Uint8Array.from(Buffer.from(responseBody.quote, "base64"));
|
|
52
|
-
|
|
53
|
+
const quote = await verifyQuote(rawQuote);
|
|
54
|
+
if (!quote) {
|
|
55
|
+
throw new Error("Invalid quote");
|
|
56
|
+
}
|
|
57
|
+
const td10 = quote.report.asTd10();
|
|
58
|
+
const td15 = td10 ? null : quote.report.asTd15();
|
|
59
|
+
const reportData = td10
|
|
60
|
+
? Buffer.from(td10.reportData)
|
|
61
|
+
: td15
|
|
62
|
+
? Buffer.from(td15.base.reportData)
|
|
63
|
+
: null;
|
|
64
|
+
if (!reportData) {
|
|
65
|
+
throw new Error("Unsupported quote report format");
|
|
66
|
+
}
|
|
67
|
+
if (!reportData.equals(challengeBytes)) {
|
|
68
|
+
throw new Error("Quote reportData does not match challenge");
|
|
69
|
+
}
|
|
53
70
|
}
|
|
54
71
|
async function verifyTeeIntegrity(rpcUrl) {
|
|
55
|
-
const challengeBytes = Buffer.from(Uint8Array.from(Array(
|
|
72
|
+
const challengeBytes = Buffer.from(Uint8Array.from(Array(64)
|
|
56
73
|
.fill(0)
|
|
57
74
|
.map(() => Math.floor(Math.random() * 256))));
|
|
58
75
|
const challenge = challengeBytes.toString("base64");
|
|
@@ -68,21 +85,12 @@ async function verifyTeeIntegrity(rpcUrl) {
|
|
|
68
85
|
throw new Error("Invalid quote");
|
|
69
86
|
}
|
|
70
87
|
await verifyChallenge(responseBody, quote, challengeBytes);
|
|
71
|
-
return true;
|
|
72
88
|
}
|
|
73
89
|
async function verifyQuote(rawQuote) {
|
|
74
90
|
const pccsUrl = "https://pccs.phala.network/tdx/certification/v4";
|
|
75
91
|
const quoteCollateral = await (0, dcap_qvl_1.getCollateral)(pccsUrl, rawQuote);
|
|
76
92
|
const now = Math.floor(Date.now() / 1000);
|
|
77
|
-
|
|
78
|
-
(0, dcap_qvl_1.verify)(rawQuote, quoteCollateral, now);
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
if (error instanceof Error &&
|
|
82
|
-
!error.message.includes("SEPT_VE_DISABLE is not enabled")) {
|
|
83
|
-
throw new Error(error.message);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
93
|
+
(0, dcap_qvl_1.verify)(rawQuote, quoteCollateral, now);
|
|
86
94
|
return dcap_qvl_1.Quote.parse(rawQuote);
|
|
87
95
|
}
|
|
88
96
|
async function verifyChallenge(response, parsedQuote, challengeBytes) {
|
|
@@ -107,10 +115,9 @@ async function verifyChallenge(response, parsedQuote, challengeBytes) {
|
|
|
107
115
|
if (reportData.length !== 64) {
|
|
108
116
|
throw new Error(`Invalid reportData length: ${reportData.length}`);
|
|
109
117
|
}
|
|
110
|
-
const
|
|
111
|
-
if (!reportData.subarray(0,
|
|
112
|
-
throw new Error(`Quote reportData mismatch: ${reportData.subarray(0,
|
|
118
|
+
const pubkeyHash = (0, sha2_1.sha512)(Uint8Array.from(pk));
|
|
119
|
+
if (!reportData.subarray(0, 64).equals(Buffer.from(pubkeyHash))) {
|
|
120
|
+
throw new Error(`Quote reportData mismatch: ${reportData.subarray(0, 64).toString("hex")} !== ${Buffer.from(pubkeyHash).toString("hex")}`);
|
|
113
121
|
}
|
|
114
|
-
return true;
|
|
115
122
|
}
|
|
116
123
|
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/access-control/verify.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/access-control/verify.ts"],"names":[],"mappings":"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"}
|