@super-protocol/addons-tee 1.0.0 → 2.0.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.
Files changed (116) hide show
  1. package/bindings/nvidia-native/README.md +174 -0
  2. package/bindings/nvidia-native/package.json +26 -0
  3. package/bindings/nvidia-native/postinstall.js +40 -0
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -28
  6. package/package.json +4 -2
  7. package/.editorconfig +0 -15
  8. package/.eslintrc.json +0 -61
  9. package/.prettierignore +0 -3
  10. package/.prettierrc +0 -15
  11. package/bindings/amd-sev-snp-napi-rs/amd-sev-snp-napi-rs.linux-x64-gnu.node +0 -0
  12. package/bindings/amd-sev-snp-napi-rs/index.d.ts +0 -51
  13. package/bindings/amd-sev-snp-napi-rs/index.js +0 -339
  14. package/bindings/amd-sev-snp-napi-rs/package-lock.json +0 -40
  15. package/bindings/sgx-native/build/Release/libmbedcrypto_gramine.so.15 +0 -0
  16. package/bindings/sgx-native/build/Release/libmbedx509_gramine.so.6 +0 -0
  17. package/bindings/sgx-native/build/Release/libsgx_dcap_quoteverify.so.1 +0 -0
  18. package/bindings/sgx-native/build/Release/libtdx_attest.so.1 +0 -0
  19. package/bindings/sgx-native/build/Release/sgx_native.node +0 -0
  20. package/bindings/sgx-native/package-lock.json +0 -23
  21. package/bindings/sp-sev/.github/auto_assign-issues.yml +0 -5
  22. package/bindings/sp-sev/.github/auto_assign.yml +0 -21
  23. package/bindings/sp-sev/.github/dependabot.yml +0 -6
  24. package/bindings/sp-sev/.github/workflows/dco.yml +0 -10
  25. package/bindings/sp-sev/.github/workflows/lint.yml +0 -56
  26. package/bindings/sp-sev/.github/workflows/test.yml +0 -215
  27. package/bindings/sp-sev/.rustfmt.toml +0 -2
  28. package/bindings/sp-sev/CODEOWNERS +0 -1
  29. package/bindings/sp-sev/Cargo.lock +0 -2461
  30. package/bindings/sp-sev/Cargo.toml +0 -80
  31. package/bindings/sp-sev/LICENSE +0 -201
  32. package/bindings/sp-sev/README.md +0 -82
  33. package/bindings/sp-sev/build.rs +0 -17
  34. package/bindings/sp-sev/docs/attestation/README.md +0 -239
  35. package/bindings/sp-sev/docs/attestation/certchain.dot +0 -14
  36. package/bindings/sp-sev/docs/attestation/certchain.dot.png +0 -0
  37. package/bindings/sp-sev/docs/attestation/prerequisites.md +0 -6
  38. package/bindings/sp-sev/docs/attestation/process.msc +0 -60
  39. package/bindings/sp-sev/docs/attestation/process.msc.png +0 -0
  40. package/bindings/sp-sev/docs/attestation/protections.md +0 -53
  41. package/bindings/sp-sev/package-version.py +0 -11
  42. package/bindings/sp-sev/tests/api.rs +0 -194
  43. package/bindings/sp-sev/tests/certs.rs +0 -142
  44. package/bindings/sp-sev/tests/certs_data/cert_chain_milan +0 -74
  45. package/bindings/sp-sev/tests/certs_data/cert_chain_turin +0 -74
  46. package/bindings/sp-sev/tests/certs_data/report_milan.hex +0 -1
  47. package/bindings/sp-sev/tests/certs_data/vcek_milan.der +0 -0
  48. package/bindings/sp-sev/tests/certs_data/vcek_turin.der +0 -0
  49. package/bindings/sp-sev/tests/guest.rs +0 -57
  50. package/bindings/sp-sev/tests/id-block.rs +0 -172
  51. package/bindings/sp-sev/tests/measurement/ovmf_AmdSev_suffix.bin +0 -0
  52. package/bindings/sp-sev/tests/measurement/ovmf_OvmfX64_suffix.bin +0 -0
  53. package/bindings/sp-sev/tests/measurement/test_auth_block.bin +0 -0
  54. package/bindings/sp-sev/tests/measurement/test_auth_key.pem +0 -6
  55. package/bindings/sp-sev/tests/measurement/test_auth_sig.bin +0 -0
  56. package/bindings/sp-sev/tests/measurement/test_id_key.pem +0 -6
  57. package/bindings/sp-sev/tests/measurement/test_id_sig.bin +0 -0
  58. package/bindings/sp-sev/tests/measurement.rs +0 -510
  59. package/bindings/sp-sev/tests/naples/ark.cert.bad +0 -0
  60. package/bindings/sp-sev/tests/naples/ark.cert.sig +0 -0
  61. package/bindings/sp-sev/tests/naples/ark.rs +0 -38
  62. package/bindings/sp-sev/tests/naples/ask.rs +0 -29
  63. package/bindings/sp-sev/tests/naples/cek.cert +0 -0
  64. package/bindings/sp-sev/tests/naples/cek.rs +0 -30
  65. package/bindings/sp-sev/tests/naples/mod.rs +0 -20
  66. package/bindings/sp-sev/tests/naples/oca.cert +0 -0
  67. package/bindings/sp-sev/tests/naples/oca.rs +0 -45
  68. package/bindings/sp-sev/tests/naples/pdh.cert +0 -0
  69. package/bindings/sp-sev/tests/naples/pdh.rs +0 -28
  70. package/bindings/sp-sev/tests/naples/pek.cert +0 -0
  71. package/bindings/sp-sev/tests/naples/pek.rs +0 -32
  72. package/bindings/sp-sev/tests/rome/ark.rs +0 -33
  73. package/bindings/sp-sev/tests/rome/ask.rs +0 -29
  74. package/bindings/sp-sev/tests/rome/cek.cert +0 -0
  75. package/bindings/sp-sev/tests/rome/cek.rs +0 -29
  76. package/bindings/sp-sev/tests/rome/mod.rs +0 -16
  77. package/bindings/sp-sev/tests/rome/oca.cert +0 -0
  78. package/bindings/sp-sev/tests/rome/oca.rs +0 -45
  79. package/bindings/sp-sev/tests/rome/pdh.cert +0 -0
  80. package/bindings/sp-sev/tests/rome/pdh.rs +0 -28
  81. package/bindings/sp-sev/tests/rome/pek.cert +0 -0
  82. package/bindings/sp-sev/tests/rome/pek.rs +0 -32
  83. package/bindings/sp-sev/tests/session.rs +0 -39
  84. package/bindings/sp-sev/tests/sev_launch.rs +0 -120
  85. package/bindings/sp-sev/tests/snp_launch.rs +0 -108
  86. package/bindings/utils/virtee/LICENSE +0 -201
  87. package/bindings/utils/virtee/libsev.so +0 -0
  88. package/bindings/utils/virtee/snpguest +0 -0
  89. package/dist/proto/AmdSevSnp.d.ts +0 -194
  90. package/dist/proto/AmdSevSnp.js +0 -363
  91. package/dist/sgx-native-module/consts.d.ts +0 -24
  92. package/dist/sgx-native-module/consts.js +0 -38
  93. package/dist/sgx-native-module/dcap-quote-verify.service.d.ts +0 -12
  94. package/dist/sgx-native-module/dcap-quote-verify.service.js +0 -84
  95. package/dist/sgx-native-module/enclave.service.d.ts +0 -93
  96. package/dist/sgx-native-module/enclave.service.js +0 -211
  97. package/dist/sgx-native-module/errors.d.ts +0 -19
  98. package/dist/sgx-native-module/errors.js +0 -69
  99. package/dist/sgx-native-module/helpers.d.ts +0 -1
  100. package/dist/sgx-native-module/helpers.js +0 -50
  101. package/dist/sgx-native-module/index.d.ts +0 -9
  102. package/dist/sgx-native-module/index.js +0 -26
  103. package/dist/sgx-native-module/pki.service.d.ts +0 -50
  104. package/dist/sgx-native-module/pki.service.js +0 -74
  105. package/dist/sgx-native-module/sev-snp-mrenclave.d.ts +0 -59
  106. package/dist/sgx-native-module/sev-snp-mrenclave.js +0 -322
  107. package/dist/sgx-native-module/sev-snp-schema.d.ts +0 -22
  108. package/dist/sgx-native-module/sev-snp-schema.js +0 -24
  109. package/dist/sgx-native-module/sev-snp.d.ts +0 -127
  110. package/dist/sgx-native-module/sev-snp.js +0 -513
  111. package/dto/src/AmdSevSnp.proto +0 -31
  112. package/dto/src/Compression.proto +0 -11
  113. package/dto/src/Hash.proto +0 -6
  114. package/dto/src/OrderReport.proto +0 -21
  115. package/dto/src/TRI.proto +0 -22
  116. package/dto/src/TeeDeviceInfo.proto +0 -46
@@ -1,211 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnclaveService = void 0;
4
- const { SgxLowLevel, GramineProtectedFS } = require("../../bindings/sgx-native/build/Release/sgx_native.node");
5
- const crypto_1 = require("crypto");
6
- const fs_1 = require("fs");
7
- const os_1 = require("os");
8
- const path_1 = require("path");
9
- const stream_1 = require("stream");
10
- // @TODO: Read it from nodejs module
11
- const PF_SIZE = 4096;
12
- const chunkedTransformer = (chunkSize = PF_SIZE) => {
13
- const accumulateBuf = {
14
- buf: Buffer.alloc(chunkSize),
15
- bufSize: 0,
16
- };
17
- return new stream_1.Transform({
18
- objectMode: false,
19
- flush: (callback) => {
20
- callback(null, accumulateBuf.buf.subarray(0, accumulateBuf.bufSize));
21
- accumulateBuf.buf = Buffer.alloc(0);
22
- accumulateBuf.bufSize = 0;
23
- },
24
- transform: function (chunk, encoding, callback) {
25
- if (chunk.length + accumulateBuf.bufSize < chunkSize) {
26
- const copied = chunk.copy(accumulateBuf.buf, accumulateBuf.bufSize);
27
- accumulateBuf.bufSize += copied;
28
- }
29
- else {
30
- const mergedBuf = Buffer.concat([accumulateBuf.buf.subarray(0, accumulateBuf.bufSize), chunk]);
31
- accumulateBuf.bufSize = 0;
32
- this.push(mergedBuf);
33
- }
34
- callback(null, null);
35
- },
36
- });
37
- };
38
- class EnclaveService {
39
- constructor(tmpFolder = (0, os_1.tmpdir)()) {
40
- this.tmpFolder = tmpFolder;
41
- this.sgx = new SgxLowLevel();
42
- }
43
- /**
44
- * Requests secret keys from cpu.
45
- * @param type Value from enum @type KeyType
46
- * @param policy Value from enum @type KeyPolicy
47
- * @param previousRequest Request, for example received in a previous call to this method,
48
- * can be undefined - this way a new request will be generated
49
- * @returns Key and request, generated by method.
50
- */
51
- async getSecretKey(type, policy, previousRequest) {
52
- if (!previousRequest) {
53
- previousRequest = Buffer.alloc(0);
54
- }
55
- return this.sgx.getKey(type, policy, previousRequest);
56
- }
57
- /**
58
- * Determines whether the request to obtain the key is outdated, for example, cpu_svn or isv_svn were updated
59
- * @param previousRequest - Key Request
60
- * @returns True if the request is outdated, false - the request is up to date
61
- */
62
- async isOutdatedRequest(previousRequest) {
63
- return this.sgx.isOutdatedRequest(previousRequest);
64
- }
65
- /**
66
- * Returns TEE device information.
67
- * @returns
68
- */
69
- async getTeeDeviceInfo() {
70
- return this.sgx.getDeviceInfo();
71
- }
72
- /**
73
- * Returns TEE cpu benchmark.
74
- * @param deviceInfoMemSize
75
- * @returns
76
- */
77
- async getTeeDeviceCpuBenchmark(deviceInfoMemSize) {
78
- return this.sgx.runCpuBenchmark(deviceInfoMemSize);
79
- }
80
- /**
81
- * Returns TEE memory benchmark.
82
- * @param deviceInfoTotalPhysicalCores
83
- * @returns
84
- */
85
- async getTeeDeviceMemoryBenchmark(deviceInfoTotalPhysicalCores) {
86
- return this.sgx.runMemoryBenchmark(deviceInfoTotalPhysicalCores);
87
- }
88
- /**
89
- * Writes input stream to the protected file.
90
- * @param inputStream
91
- * @param outputStream
92
- * @param filepath
93
- * @param secretKey
94
- */
95
- async writeGramineProtectedFile(filepath, inputStream, secretKey) {
96
- const tmpFileName = (0, path_1.join)(this.tmpFolder, "tee-pf-" + (0, crypto_1.randomBytes)(16).toString("hex") + ".tmp");
97
- const protectedFsKey = secretKey.length !== 16
98
- ? (0, crypto_1.createHash)("sha256", secretKey).update(secretKey).digest().slice(0, 16)
99
- : secretKey;
100
- let output = null;
101
- try {
102
- output = new GramineProtectedFS(tmpFileName, filepath, protectedFsKey, true);
103
- let totalSize = 0;
104
- let pfChunkSize = PF_SIZE;
105
- if (process.env["GRAMINE_PROTECTED_FILES_STREAM_CACHE_SIZE"]) {
106
- pfChunkSize = parseInt(process.env["GRAMINE_PROTECTED_FILES_STREAM_CACHE_SIZE"]);
107
- }
108
- let batchChunkIndex = 0;
109
- const everyTenFlush = 10;
110
- for await (const chunk of inputStream.pipe(chunkedTransformer(pfChunkSize))) {
111
- if (!chunk.length) {
112
- // @TODO: It's may be normal, research
113
- continue;
114
- }
115
- const writtenSize = await output.write(totalSize, chunk);
116
- if (writtenSize !== chunk.length) {
117
- throw new Error(`Fail to write ${chunk.length} to protected file ${filepath}:${tmpFileName}, written only ${writtenSize} bytes`);
118
- }
119
- totalSize += writtenSize;
120
- if (batchChunkIndex && batchChunkIndex++ % everyTenFlush) {
121
- await output.flush();
122
- }
123
- }
124
- await output.close();
125
- return {
126
- filepath: tmpFileName,
127
- filesize: (await fs_1.promises.stat(tmpFileName)).size,
128
- writtenSize: totalSize,
129
- };
130
- }
131
- catch (error) {
132
- if (output) {
133
- await output.close();
134
- await fs_1.promises.rm(tmpFileName, {
135
- recursive: true,
136
- force: true,
137
- });
138
- }
139
- throw error;
140
- }
141
- }
142
- /**
143
- * Reads protected file and write to output stream.
144
- * @param filepath
145
- * @param inputStream
146
- * @param outputStream
147
- * @param secretKey
148
- */
149
- async readGramineProtectedFile(filepath, inputStream, secretKey) {
150
- const tmpFileName = (0, path_1.join)(this.tmpFolder, "tee-pf-" + (0, crypto_1.randomBytes)(16).toString("hex") + ".tmp");
151
- const protectedFsKey = secretKey.length !== 16
152
- ? (0, crypto_1.createHash)("sha256", secretKey).update(secretKey).digest().slice(0, 16)
153
- : secretKey;
154
- let input = null;
155
- try {
156
- const tmpFileStream = (0, fs_1.createWriteStream)(tmpFileName);
157
- await stream_1.promises.pipeline(inputStream, tmpFileStream);
158
- input = new GramineProtectedFS(tmpFileName, filepath, protectedFsKey, false);
159
- const originalFileSize = input.size();
160
- const readChunkSize = PF_SIZE * 8;
161
- let isFileEnd = false;
162
- let cursor = 0;
163
- let remainedBuffer = Buffer.alloc(0);
164
- const decryptedStream = new stream_1.Readable({
165
- read: async function (requestSize) {
166
- if (isFileEnd && !remainedBuffer.length) {
167
- if (input) {
168
- await input.close();
169
- }
170
- return this.push(null);
171
- }
172
- let readBuffer = remainedBuffer;
173
- let remainedReadSize = requestSize - readBuffer.length;
174
- while (!isFileEnd && remainedReadSize > 0) {
175
- const chunk = await input.read(cursor, readChunkSize);
176
- if (!chunk?.length) {
177
- isFileEnd = true;
178
- break;
179
- }
180
- readBuffer = Buffer.concat([readBuffer, chunk]);
181
- cursor += chunk.length;
182
- remainedReadSize -= chunk.length;
183
- if (chunk.length < readChunkSize) {
184
- isFileEnd = true;
185
- break;
186
- }
187
- }
188
- remainedBuffer = readBuffer.slice(requestSize);
189
- this.push(readBuffer.slice(0, requestSize));
190
- },
191
- });
192
- return {
193
- filepath: tmpFileName,
194
- fileStream: decryptedStream,
195
- filesize: originalFileSize,
196
- };
197
- }
198
- catch (error) {
199
- await fs_1.promises.rm(tmpFileName, {
200
- recursive: true,
201
- force: true,
202
- });
203
- if (input) {
204
- await input.close();
205
- }
206
- throw error;
207
- }
208
- }
209
- }
210
- exports.EnclaveService = EnclaveService;
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jbGF2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NneC1uYXRpdmUtbW9kdWxlL2VuY2xhdmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFNLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsT0FBTyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDL0csbUNBQWlEO0FBQ2pELDJCQUF1RTtBQUN2RSwyQkFBNEI7QUFDNUIsK0JBQTRCO0FBQzVCLG1DQUF1RDtBQUd2RCxvQ0FBb0M7QUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBbURyQixNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBYSxFQUFFO0lBQzFELE1BQU0sYUFBYSxHQUFHO1FBQ2xCLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUM1QixPQUFPLEVBQUUsQ0FBQztLQUNiLENBQUM7SUFFRixPQUFPLElBQUksa0JBQVMsQ0FBQztRQUNqQixVQUFVLEVBQUUsS0FBSztRQUVqQixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNoQixRQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNyRSxhQUFhLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsYUFBYSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELFNBQVMsRUFBRSxVQUFVLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUTtZQUMxQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sR0FBRyxTQUFTLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxD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
@@ -1,19 +0,0 @@
1
- import { QuoteVerificationResultType } from "./consts";
2
- export declare class AttestationDcapQuoteVerifyEnclaveError extends Error {
3
- constructor(msg?: string);
4
- }
5
- export declare class QuoteValidationError extends AttestationDcapQuoteVerifyEnclaveError {
6
- readonly verifyResult: number;
7
- criticalError: boolean;
8
- constructor(verifyResult: number);
9
- }
10
- export declare class QuoteSecurityValidationError extends AttestationDcapQuoteVerifyEnclaveError {
11
- readonly verifyResult: QuoteVerificationResultType;
12
- constructor(verifyResult: QuoteVerificationResultType);
13
- }
14
- export declare class PkiServiceError extends Error {
15
- constructor(msg?: string);
16
- }
17
- export declare class QuoteGenerationError extends Error {
18
- constructor(msg?: string);
19
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QuoteGenerationError = exports.PkiServiceError = exports.QuoteSecurityValidationError = exports.QuoteValidationError = exports.AttestationDcapQuoteVerifyEnclaveError = void 0;
4
- const consts_1 = require("./consts");
5
- class AttestationDcapQuoteVerifyEnclaveError extends Error {
6
- constructor(msg) {
7
- super(msg);
8
- this.name = AttestationDcapQuoteVerifyEnclaveError.name;
9
- }
10
- }
11
- exports.AttestationDcapQuoteVerifyEnclaveError = AttestationDcapQuoteVerifyEnclaveError;
12
- class QuoteValidationError extends AttestationDcapQuoteVerifyEnclaveError {
13
- constructor(verifyResult) {
14
- super();
15
- this.verifyResult = verifyResult;
16
- this.criticalError = false;
17
- this.verifyResult = verifyResult;
18
- this.criticalError = false;
19
- switch (verifyResult) {
20
- case 0xa001:
21
- this.message = `The SGX platform firmware and SW are at the latest security patching level but there are
22
- platform hardware configurations may expose the enclave to vulnerabilities.`;
23
- break;
24
- case 0xa002:
25
- case 0xa003:
26
- case 0xa004:
27
- this.message = `The SGX platform firmware and SW are not at the latest security patching level. The
28
- platform needs to be patched with firmware and/or software patches.`;
29
- break;
30
- case 0xa007:
31
- case 0xa008:
32
- this.message = `The SGX platform firmware and SW are at the latest security patching level but there
33
- are certain vulnerabilities that can only be mitigated with software mitigations implemented by the enclave.`;
34
- break;
35
- default:
36
- this.criticalError = true;
37
- this.message = `Quote verification failed. Verification result: 0x${Number(verifyResult).toString(16)}`;
38
- break;
39
- }
40
- }
41
- }
42
- exports.QuoteValidationError = QuoteValidationError;
43
- class QuoteSecurityValidationError extends AttestationDcapQuoteVerifyEnclaveError {
44
- constructor(verifyResult) {
45
- super();
46
- this.verifyResult = verifyResult;
47
- this.verifyResult = verifyResult;
48
- this.message = "Invalid CPU settings are being used.";
49
- if (verifyResult.smtEnabled === consts_1.PckFlag.PCK_FLAG_TRUE) {
50
- this.message = " HyperThreading (SMT) is enabled. Please disable it in BIOS.";
51
- }
52
- }
53
- }
54
- exports.QuoteSecurityValidationError = QuoteSecurityValidationError;
55
- class PkiServiceError extends Error {
56
- constructor(msg) {
57
- super(msg);
58
- this.name = PkiServiceError.name;
59
- }
60
- }
61
- exports.PkiServiceError = PkiServiceError;
62
- class QuoteGenerationError extends Error {
63
- constructor(msg) {
64
- super(msg);
65
- this.name = QuoteGenerationError.name;
66
- }
67
- }
68
- exports.QuoteGenerationError = QuoteGenerationError;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NneC1uYXRpdmUtbW9kdWxlL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBZ0U7QUFFaEUsTUFBYSxzQ0FBdUMsU0FBUSxLQUFLO0lBQzdELFlBQVksR0FBWTtRQUNwQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLHNDQUFzQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDO0NBQ0o7QUFMRCx3RkFLQztBQUVELE1BQWEsb0JBQXFCLFNBQVEsc0NBQXNDO0lBRTVFLFlBQTRCLFlBQW9CO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBRGdCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBRHpDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBR3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDbkIsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxPQUFPLEdBQUc7NEZBQzZELENBQUM7Z0JBQzdFLE1BQU07WUFDVixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxPQUFPLEdBQUc7b0ZBQ3FELENBQUM7Z0JBQ3JFLE1BQU07WUFDVixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssTUFBTTtnQkFDUCxJQUFJLENBQUMsT0FBTyxHQUFHOzZIQUM4RixDQUFDO2dCQUM5RyxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcscURBQXFELE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDeEcsTUFBTTtRQUNkLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUE3QkQsb0RBNkJDO0FBRUQsTUFBYSw0QkFBNkIsU0FBUSxzQ0FBc0M7SUFDcEYsWUFBNEIsWUFBeUM7UUFDakUsS0FBSyxFQUFFLENBQUM7UUFEZ0IsaUJBQVksR0FBWixZQUFZLENBQTZCO1FBRWpFLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsc0NBQXNDLENBQUM7UUFDdEQsSUFBSSxZQUFZLENBQUMsVUFBVSxLQUFLLGdCQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyw4REFBOEQsQ0FBQztRQUNsRixDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBVEQsb0VBU0M7QUFFRCxNQUFhLGVBQWdCLFNBQVEsS0FBSztJQUN0QyxZQUFZLEdBQVk7UUFDcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7Q0FDSjtBQUxELDBDQUtDO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBQzNDLFlBQVksR0FBWTtRQUNwQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0NBQ0o7QUFMRCxvREFLQyJ9
@@ -1 +0,0 @@
1
- export declare function gramineCompatibleRmDir(dirPath: string): Promise<void>;
@@ -1,50 +0,0 @@
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
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.gramineCompatibleRmDir = void 0;
27
- const fs_1 = require("fs");
28
- const path = __importStar(require("path"));
29
- async function gramineCompatibleRmDir(dirPath) {
30
- try {
31
- await fs_1.promises.access(dirPath, fs_1.constants.F_OK);
32
- }
33
- catch {
34
- return;
35
- }
36
- const files = await fs_1.promises.readdir(dirPath);
37
- for (const file of files) {
38
- const filePath = path.join(dirPath, file);
39
- const stat = await fs_1.promises.lstat(filePath);
40
- if (stat.isDirectory()) {
41
- await gramineCompatibleRmDir(filePath);
42
- }
43
- else {
44
- await fs_1.promises.unlink(filePath);
45
- }
46
- }
47
- await fs_1.promises.rmdir(dirPath);
48
- }
49
- exports.gramineCompatibleRmDir = gramineCompatibleRmDir;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZ3gtbmF0aXZlLW1vZHVsZS9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkJBQStDO0FBQy9DLDJDQUE2QjtBQUV0QixLQUFLLFVBQVUsc0JBQXNCLENBQUMsT0FBZTtJQUN4RCxJQUFJLENBQUM7UUFDRCxNQUFNLGFBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ0wsT0FBTztJQUNYLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLGFBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxNQUFNLGFBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNyQixNQUFNLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxhQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxhQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFwQkQsd0RBb0JDIn0=
@@ -1,9 +0,0 @@
1
- export * from "./consts";
2
- export * from "./errors";
3
- export * from "./enclave.service";
4
- export * from "./dcap-quote-verify.service";
5
- export * from "./pki.service";
6
- export * from "./sev-snp";
7
- export * from "./sev-snp-mrenclave";
8
- export * from "./sev-snp-schema";
9
- export * from "../proto/AmdSevSnp";
@@ -1,26 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./consts"), exports);
18
- __exportStar(require("./errors"), exports);
19
- __exportStar(require("./enclave.service"), exports);
20
- __exportStar(require("./dcap-quote-verify.service"), exports);
21
- __exportStar(require("./pki.service"), exports);
22
- __exportStar(require("./sev-snp"), exports);
23
- __exportStar(require("./sev-snp-mrenclave"), exports);
24
- __exportStar(require("./sev-snp-schema"), exports);
25
- __exportStar(require("../proto/AmdSevSnp"), exports);
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2d4LW5hdGl2ZS1tb2R1bGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsb0RBQWtDO0FBQ2xDLDhEQUE0QztBQUM1QyxnREFBOEI7QUFDOUIsNENBQTBCO0FBQzFCLHNEQUFvQztBQUNwQyxtREFBaUM7QUFDakMscURBQW1DIn0=
@@ -1,50 +0,0 @@
1
- /// <reference types="node" />
2
- export type TlsCertResult = {
3
- key: Buffer;
4
- cert: Buffer;
5
- };
6
- export declare enum CertificateKeyType {
7
- RSA = "RSA",
8
- ECP = "ECP"
9
- }
10
- export declare enum CertificateFormat {
11
- PEM = "PEM",
12
- DER = "DER"
13
- }
14
- export declare enum ECPCurve {
15
- SECP192R1 = "SECP192R1" /*!< Domain parameters for the 192-bit curve defined by FIPS 186-4 and SEC1. */,
16
- SECP224R1 = "SECP224R1" /*!< Domain parameters for the 224-bit curve defined by FIPS 186-4 and SEC1. */,
17
- SECP256R1 = "SECP256R1" /*!< Domain parameters for the 256-bit curve defined by FIPS 186-4 and SEC1. */,
18
- SECP384R1 = "SECP384R1" /*!< Domain parameters for the 384-bit curve defined by FIPS 186-4 and SEC1. */,
19
- SECP521R1 = "SECP521R1" /*!< Domain parameters for the 521-bit curve defined by FIPS 186-4 and SEC1. */,
20
- BP256R1 = "BP256R1" /*!< Domain parameters for 256-bit Brainpool curve. */,
21
- BP384R1 = "BP384R1" /*!< Domain parameters for 384-bit Brainpool curve. */,
22
- BP512R1 = "BP512R1" /*!< Domain parameters for 512-bit Brainpool curve. */,
23
- SECP192K1 = "SECP192K1" /*!< Domain parameters for 192-bit "Koblitz" curve. */,
24
- SECP224K1 = "SECP224K1" /*!< Domain parameters for 224-bit "Koblitz" curve. */,
25
- SECP256K1 = "SECP256K1" /*!< Domain parameters for 256-bit "Koblitz" curve. */
26
- }
27
- export type TLSCertParams = {
28
- format?: CertificateFormat;
29
- subject?: {
30
- commonName?: string;
31
- countryName?: string;
32
- state?: string;
33
- localityName?: string;
34
- organizationName?: string;
35
- organizationUnit?: string;
36
- };
37
- keyType?: CertificateKeyType;
38
- withQuote?: boolean;
39
- rsaKeyBits?: number;
40
- ecpCurve?: ECPCurve;
41
- serialNumber?: string;
42
- days?: number;
43
- dnsNames?: string[];
44
- ips?: string[];
45
- };
46
- export declare class PkiService {
47
- private readonly cryptoPrimitives;
48
- constructor();
49
- generateTlsCertificate(params?: TLSCertParams): Promise<TlsCertResult>;
50
- }
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PkiService = exports.ECPCurve = exports.CertificateFormat = exports.CertificateKeyType = void 0;
4
- const { CryptoPrimitives } = require("../../bindings/sgx-native/build/Release/sgx_native.node");
5
- var CertificateKeyType;
6
- (function (CertificateKeyType) {
7
- CertificateKeyType["RSA"] = "RSA";
8
- CertificateKeyType["ECP"] = "ECP";
9
- })(CertificateKeyType || (exports.CertificateKeyType = CertificateKeyType = {}));
10
- var CertificateFormat;
11
- (function (CertificateFormat) {
12
- CertificateFormat["PEM"] = "PEM";
13
- CertificateFormat["DER"] = "DER";
14
- })(CertificateFormat || (exports.CertificateFormat = CertificateFormat = {}));
15
- var ECPCurve;
16
- (function (ECPCurve) {
17
- ECPCurve["SECP192R1"] = "SECP192R1"; /*!< Domain parameters for the 192-bit curve defined by FIPS 186-4 and SEC1. */
18
- ECPCurve["SECP224R1"] = "SECP224R1"; /*!< Domain parameters for the 224-bit curve defined by FIPS 186-4 and SEC1. */
19
- ECPCurve["SECP256R1"] = "SECP256R1"; /*!< Domain parameters for the 256-bit curve defined by FIPS 186-4 and SEC1. */
20
- ECPCurve["SECP384R1"] = "SECP384R1"; /*!< Domain parameters for the 384-bit curve defined by FIPS 186-4 and SEC1. */
21
- ECPCurve["SECP521R1"] = "SECP521R1"; /*!< Domain parameters for the 521-bit curve defined by FIPS 186-4 and SEC1. */
22
- ECPCurve["BP256R1"] = "BP256R1"; /*!< Domain parameters for 256-bit Brainpool curve. */
23
- ECPCurve["BP384R1"] = "BP384R1"; /*!< Domain parameters for 384-bit Brainpool curve. */
24
- ECPCurve["BP512R1"] = "BP512R1"; /*!< Domain parameters for 512-bit Brainpool curve. */
25
- // @TODO: MBEDTLS NOT SUPPORT EXRPORT CURVE25519 = "CURVE25519", /*!< Domain parameters for Curve25519. */
26
- ECPCurve["SECP192K1"] = "SECP192K1"; /*!< Domain parameters for 192-bit "Koblitz" curve. */
27
- ECPCurve["SECP224K1"] = "SECP224K1"; /*!< Domain parameters for 224-bit "Koblitz" curve. */
28
- ECPCurve["SECP256K1"] = "SECP256K1"; /*!< Domain parameters for 256-bit "Koblitz" curve. */
29
- // @TODO: MBEDTLS NOT SUPPORT EXRPORT CURVE448 = "CURVE448", /*!< Domain parameters for Curve448. */
30
- })(ECPCurve || (exports.ECPCurve = ECPCurve = {}));
31
- class PkiService {
32
- constructor() {
33
- this.cryptoPrimitives = new CryptoPrimitives();
34
- }
35
- async generateTlsCertificate(params = {}) {
36
- const subject = {
37
- commonName: params.subject?.commonName ?? "localhost",
38
- countryName: params.subject?.countryName ?? "US",
39
- state: params.subject?.state ?? "New York",
40
- localityName: params.subject?.localityName ?? "New York",
41
- organizationName: params.subject?.organizationName ?? "SuperProtocol",
42
- organizationUnit: params.subject?.organizationUnit ?? "TEE",
43
- };
44
- const format = params.format ?? CertificateFormat.PEM;
45
- const keyType = params.keyType ?? CertificateKeyType.RSA;
46
- let rsaKeyBits;
47
- let ecpCurve;
48
- if (keyType === CertificateKeyType.RSA) {
49
- rsaKeyBits = params.rsaKeyBits ?? 3072;
50
- }
51
- else if (keyType === CertificateKeyType.ECP) {
52
- ecpCurve = params.ecpCurve ?? ECPCurve.SECP384R1;
53
- }
54
- const withQuote = params.withQuote ?? false;
55
- const serialNumber = params.serialNumber ?? "01";
56
- const days = params.days ?? 365;
57
- const dnsNames = params.dnsNames ?? [];
58
- const ips = params.ips ?? [];
59
- return this.cryptoPrimitives.GenerateTlsCertificate({
60
- format,
61
- subject,
62
- keyType,
63
- withQuote,
64
- rsaKeyBits,
65
- ecpCurve,
66
- serialNumber,
67
- days,
68
- dnsNames,
69
- ips,
70
- });
71
- }
72
- }
73
- exports.PkiService = PkiService;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGtpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2d4LW5hdGl2ZS1tb2R1bGUvcGtpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsT0FBTyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFPaEcsSUFBWSxrQkFHWDtBQUhELFdBQVksa0JBQWtCO0lBQzFCLGlDQUFXLENBQUE7SUFDWCxpQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBRzdCO0FBRUQsSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLGdDQUFXLENBQUE7SUFDWCxnQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsSUFBWSxRQWNYO0FBZEQsV0FBWSxRQUFRO0lBQ2hCLG1DQUF1QixDQUFBLENBQUMsK0VBQStFO0lBQ3ZHLG1DQUF1QixDQUFBLENBQUMsK0VBQStFO0lBQ3ZHLG1DQUF1QixDQUFBLENBQUMsK0VBQStFO0lBQ3ZHLG1DQUF1QixDQUFBLENBQUMsK0VBQStFO0lBQ3ZHLG1DQUF1QixDQUFBLENBQUMsK0VBQStFO0lBQ3ZHLCtCQUFtQixDQUFBLENBQUMsc0RBQXNEO0lBQzFFLCtCQUFtQixDQUFBLENBQUMsc0RBQXNEO0lBQzFFLCtCQUFtQixDQUFBLENBQUMsc0RBQXNEO0lBQzFFLDBHQUEwRztJQUMxRyxtQ0FBdUIsQ0FBQSxDQUFDLHNEQUFzRDtJQUM5RSxtQ0FBdUIsQ0FBQSxDQUFDLHNEQUFzRDtJQUM5RSxtQ0FBdUIsQ0FBQSxDQUFDLHNEQUFzRDtJQUM5RSwyR0FBMkc7QUFDL0csQ0FBQyxFQWRXLFFBQVEsd0JBQVIsUUFBUSxRQWNuQjtBQTBCRCxNQUFhLFVBQVU7SUFHbkI7UUFDSSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsU0FBd0IsRUFBRTtRQUNuRCxNQUFNLE9BQU8sR0FBRztZQUNaLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxXQUFXO1lBQ3JELFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsSUFBSSxJQUFJO1lBQ2hELEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxVQUFVO1lBQzFDLFlBQVksRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFlBQVksSUFBSSxVQUFVO1lBQ3hELGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksZUFBZTtZQUNyRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLGdCQUFnQixJQUFJLEtBQUs7U0FDOUQsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBRXpELElBQUksVUFBOEIsQ0FBQztRQUNuQyxJQUFJLFFBQThCLENBQUM7UUFFbkMsSUFBSSxPQUFPLEtBQUssa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDO1FBQzNDLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1QyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3JELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztRQUNqRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUNoRCxNQUFNO1lBQ04sT0FBTztZQUNQLE9BQU87WUFDUCxTQUFTO1lBQ1QsVUFBVTtZQUNWLFFBQVE7WUFDUixZQUFZO1lBQ1osSUFBSTtZQUNKLFFBQVE7WUFDUixHQUFHO1NBQ04sQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBaERELGdDQWdEQyJ9
@@ -1,59 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { StorageAccess } from "@super-protocol/sdk-js";
4
- import { Transform } from "stream";
5
- import { SNPReport } from "../proto/AmdSevSnp";
6
- interface VMCommon {
7
- kernelHash: Buffer;
8
- initrdHash: Buffer | undefined;
9
- ovmfHash: Buffer;
10
- }
11
- interface VMConfig extends VMCommon {
12
- ovmfBucket: string;
13
- ovmfPrefix: string;
14
- ovmfFilename: string;
15
- }
16
- interface VMMeasure extends VMCommon {
17
- ovmfFilePath: string;
18
- }
19
- export interface SNPMrEnclaveCalculatorArgs {
20
- cacheFolder?: string;
21
- rmPrevCache?: boolean;
22
- vmRepoOwner?: string;
23
- vmRepo?: string;
24
- releaseAsset?: string;
25
- downloadAssetRetryInterval?: number;
26
- downloadAssetRetryMax?: number;
27
- storageAccess?: StorageAccess;
28
- cacheRecordsTTL?: number;
29
- }
30
- export declare class SNPMrEnclaveCalculator {
31
- private readonly cacheFolder;
32
- private readonly vmRepoOwner;
33
- private readonly vmRepo;
34
- private readonly releaseAsset;
35
- private readonly axiosInstance;
36
- private readonly retryInterval;
37
- private readonly retryMax;
38
- private readonly storageAccess;
39
- private readonly vmInfoCache;
40
- private readonly defaultCredentials;
41
- constructor(config: SNPMrEnclaveCalculatorArgs);
42
- /**
43
- * The method allows to obtain expected mrenclave if the virtual machine for which the report is
44
- * submitted was running on one core and a Milan processor
45
- * @param report - @see CalcSnpMrEnclaveParams
46
- */
47
- getSingleCoreMrEnclave(report: SNPReport): Promise<Buffer>;
48
- protected downloadAsset(assetUrl: string): Promise<Buffer>;
49
- protected extractVMData(data: Buffer): VMConfig;
50
- protected static calcHashStream(alg?: string): {
51
- process: Transform;
52
- get: () => Buffer;
53
- };
54
- protected static fileExist(filePath: string): Promise<boolean>;
55
- protected getAssetUrl(build: string): Promise<string>;
56
- protected downloadVM(build: string): Promise<VMMeasure>;
57
- protected downloadOvmf(vmFiles: VMConfig, ovmfPath: string): Promise<void>;
58
- }
59
- export {};