@super-protocol/sdk-js 3.13.0-beta.3 → 3.13.0-beta.4
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/dist/cjs/certificates/generator.js +19 -6
- package/dist/cjs/certificates/helper.d.ts +5 -4
- package/dist/cjs/certificates/helper.js +32 -11
- package/dist/cjs/certificates/index.d.ts +1 -0
- package/dist/cjs/certificates/index.js +2 -1
- package/dist/cjs/certificates/ocsp.d.ts +2 -2
- package/dist/cjs/certificates/ocsp.js +29 -20
- package/dist/cjs/certificates/types.d.ts +11 -0
- package/dist/cjs/certificates/types.js +1 -1
- package/dist/cjs/tee/TeeCertificateService.js +2 -2
- package/dist/cjs/utils/CryptoKeysTransformer.d.ts +1 -0
- package/dist/cjs/utils/CryptoKeysTransformer.js +24 -1
- package/dist/mjs/certificates/generator.js +20 -7
- package/dist/mjs/certificates/helper.d.ts +5 -4
- package/dist/mjs/certificates/helper.js +32 -11
- package/dist/mjs/certificates/index.d.ts +1 -0
- package/dist/mjs/certificates/index.js +2 -1
- package/dist/mjs/certificates/ocsp.d.ts +2 -2
- package/dist/mjs/certificates/ocsp.js +29 -20
- package/dist/mjs/certificates/types.d.ts +11 -0
- package/dist/mjs/certificates/types.js +1 -1
- package/dist/mjs/tee/TeeCertificateService.js +2 -2
- package/dist/mjs/utils/CryptoKeysTransformer.d.ts +1 -0
- package/dist/mjs/utils/CryptoKeysTransformer.js +24 -1
- package/package.json +1 -1
- package/dist/cjs/certificates/testing-generate.d.ts +0 -1
- package/dist/cjs/certificates/testing-generate.js +0 -115
- package/dist/mjs/certificates/testing-generate.d.ts +0 -1
- package/dist/mjs/certificates/testing-generate.js +0 -110
|
@@ -28,7 +28,7 @@ export class TeeCertificateService {
|
|
|
28
28
|
}
|
|
29
29
|
// ROOT CA doesn't have challenge. but we trust it as it is in SUPERPROTOCOL_CA constant
|
|
30
30
|
const { certs } = CertificatesHelper.extractCAFromChain(certsPem);
|
|
31
|
-
const sortedCerts = CertificatesHelper.sortCertsFromLeafToRoot(certs);
|
|
31
|
+
const sortedCerts = CertificatesHelper.sortCertsFromLeafToRoot(certs).map((certWithKeyIdent) => certWithKeyIdent.cert);
|
|
32
32
|
try {
|
|
33
33
|
await Promise.all(sortedCerts.map((cert) => TeeCertificateService.validateChallenge(cert)));
|
|
34
34
|
const leafCert = sortedCerts[0];
|
|
@@ -133,4 +133,4 @@ export class TeeCertificateService {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQ2VydGlmaWNhdGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlZS9UZWVDZXJ0aWZpY2F0ZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGFBQWEsRUFDYiw2Q0FBNkMsRUFDN0Msd0NBQXdDLEVBQ3hDLGlDQUFpQyxFQUNqQyxzQ0FBc0MsRUFDdEMsbUNBQW1DLEVBQ25DLG9DQUFvQyxHQUNyQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQWtCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3JFLE1BQU0sQ0FBTixJQUFZLDZCQUlYO0FBSkQsV0FBWSw2QkFBNkI7SUFDdkMsZ0ZBQStDLENBQUE7SUFDL0MsZ0ZBQStDLENBQUE7SUFDL0MsOEVBQTZDLENBQUE7QUFDL0MsQ0FBQyxFQUpXLDZCQUE2QixLQUE3Qiw2QkFBNkIsUUFJeEM7QUFPRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsUUFBZ0I7UUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUss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
|
|
@@ -37,5 +37,6 @@ export declare class CryptoKeysTransformer {
|
|
|
37
37
|
static spkiPemToCryptoKey(spkiPem: string): Promise<CryptoKey>;
|
|
38
38
|
static cryptoKeyToPkcs8Pem(privateKey: CryptoKey): Promise<string>;
|
|
39
39
|
static cryptoKeyToSpkiPem(publicKey: CryptoKey): Promise<string>;
|
|
40
|
+
static cryptoPublicFromCryptoPrivate(privateKey: CryptoKey): Promise<CryptoKey>;
|
|
40
41
|
}
|
|
41
42
|
export {};
|
|
@@ -213,5 +213,28 @@ export class CryptoKeysTransformer {
|
|
|
213
213
|
type: 'spki',
|
|
214
214
|
});
|
|
215
215
|
}
|
|
216
|
+
static async cryptoPublicFromCryptoPrivate(privateKey) {
|
|
217
|
+
const jwk = (await cryptoProvider.subtle.exportKey('jwk', privateKey));
|
|
218
|
+
if (jwk.crv === 'K-256') {
|
|
219
|
+
jwk.crv = 'secp256k1';
|
|
220
|
+
}
|
|
221
|
+
const publicKey = await createPublicKey({
|
|
222
|
+
key: jwk,
|
|
223
|
+
format: 'jwk',
|
|
224
|
+
}).export({
|
|
225
|
+
format: 'jwk',
|
|
226
|
+
});
|
|
227
|
+
const publicKeyAlg = publicKey.kty === 'EC'
|
|
228
|
+
? {
|
|
229
|
+
name: 'ECDSA',
|
|
230
|
+
namedCurve: publicKey.crv === 'P-256' ? 'P-256' : 'K-256',
|
|
231
|
+
hash: 'SHA-256',
|
|
232
|
+
}
|
|
233
|
+
: {
|
|
234
|
+
name: 'RSASSA-PKCS1-v1_5',
|
|
235
|
+
hash: 'SHA-256',
|
|
236
|
+
};
|
|
237
|
+
return cryptoProvider.subtle.importKey('jwk', publicKey, publicKeyAlg, true, ['verify']);
|
|
238
|
+
}
|
|
216
239
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvS2V5c1RyYW5zZm9ybWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0NyeXB0b0tleXNUcmFuc2Zvcm1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBT2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFhO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLGFBQXdCO1FBQy9ELE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLE1BQU0sQ0FBQyxJ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
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvS2V5c1RyYW5zZm9ybWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0NyeXB0b0tleXNUcmFuc2Zvcm1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBT2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFhO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLGFBQXdCO1FBQy9ELE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLE1BQU0sQ0FBQyxJ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
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const pki_common_1 = require("@super-protocol/pki-common");
|
|
7
|
-
const generator_js_1 = require("./generator.js");
|
|
8
|
-
const helper_js_1 = require("./helper.js");
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const CryptoKeysTransformer_js_1 = require("../utils/CryptoKeysTransformer.js");
|
|
11
|
-
const constants_js_1 = require("../constants.js");
|
|
12
|
-
// const signatureAlgorithm: SignatureAlgorithm = 'ECDSA-P-256-SHA256';
|
|
13
|
-
const signatureAlgorithm = 'ECDSA-secp256k1-SHA256';
|
|
14
|
-
void (async () => {
|
|
15
|
-
const orderCertPem = await fs_1.default.promises.readFile('order_cert.crt', 'utf8');
|
|
16
|
-
const mrEnclave = helper_js_1.CertificatesHelper.getExtensionValue(orderCertPem, pki_common_1.OID_CUSTOM_EXTENSION_CHALLENGE_ID);
|
|
17
|
-
const userDataHashFromCert = helper_js_1.CertificatesHelper.getExtensionValue(orderCertPem, constants_js_1.OID_CUSTOM_EXTENSION_USER_DATA);
|
|
18
|
-
const rootSubject = {
|
|
19
|
-
country: 'US',
|
|
20
|
-
stateName: 'California',
|
|
21
|
-
localityName: 'San Francisco',
|
|
22
|
-
organization: 'Super Protocol',
|
|
23
|
-
organizationalUnit: 'Development',
|
|
24
|
-
commonName: 'Root CA',
|
|
25
|
-
};
|
|
26
|
-
const subroot1 = {
|
|
27
|
-
country: 'US',
|
|
28
|
-
stateName: 'California',
|
|
29
|
-
localityName: 'San Francisco',
|
|
30
|
-
organization: 'Super Protocol',
|
|
31
|
-
organizationalUnit: 'Development',
|
|
32
|
-
commonName: 'Subroot1 CA',
|
|
33
|
-
};
|
|
34
|
-
const subroot2 = {
|
|
35
|
-
country: 'US',
|
|
36
|
-
stateName: 'California',
|
|
37
|
-
localityName: 'San Francisco',
|
|
38
|
-
organization: 'Super Protocol',
|
|
39
|
-
organizationalUnit: 'Development',
|
|
40
|
-
commonName: 'Subroot Level 2 CA',
|
|
41
|
-
};
|
|
42
|
-
const rootCertKeys = await generator_js_1.CertificateGenerator.generateKeys(signatureAlgorithm);
|
|
43
|
-
const rootPrivatePem = await CryptoKeysTransformer_js_1.CryptoKeysTransformer.cryptoKeyToPkcs8Pem(rootCertKeys.privateKey);
|
|
44
|
-
const rootPublicPem = await CryptoKeysTransformer_js_1.CryptoKeysTransformer.cryptoKeyToSpkiPem(rootCertKeys.publicKey);
|
|
45
|
-
const rootCertParams = {
|
|
46
|
-
subject: rootSubject,
|
|
47
|
-
issuer: rootSubject,
|
|
48
|
-
notAfter: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // 1 year
|
|
49
|
-
ca: true,
|
|
50
|
-
dnsNames: ['sp.superprotocol.io', 'superprotocol.io', '127.0.0.1'],
|
|
51
|
-
publicKey: rootPublicPem,
|
|
52
|
-
privateKey: rootPrivatePem,
|
|
53
|
-
};
|
|
54
|
-
const rootCert = await generator_js_1.CertificateGenerator.generateCert(rootCertParams);
|
|
55
|
-
const alg = helper_js_1.CertificatesHelper.getCertPublicKeyAlgorithm(rootCert);
|
|
56
|
-
alg;
|
|
57
|
-
const subroot1Keys = await generator_js_1.CertificateGenerator.generateKeys(signatureAlgorithm);
|
|
58
|
-
const subroot1CertParams = {
|
|
59
|
-
subject: subroot1,
|
|
60
|
-
issuer: rootSubject,
|
|
61
|
-
privateKey: rootCertKeys.privateKey,
|
|
62
|
-
notAfter: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // 1 year
|
|
63
|
-
ca: true,
|
|
64
|
-
dnsNames: ['sp.superprotocol.io', 'superprotocol.io'],
|
|
65
|
-
customExtensions: [
|
|
66
|
-
{
|
|
67
|
-
oid: constants_js_1.OID_CUSTOM_EXTENSION_USER_DATA,
|
|
68
|
-
value: userDataHashFromCert,
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
oid: '1.3.6.1.3.8888.1.1',
|
|
72
|
-
value: Buffer.from('tdx', 'utf8'),
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
oid: '1.3.6.1.3.8888.1.2',
|
|
76
|
-
value: mrEnclave,
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
publicKey: subroot1Keys.publicKey,
|
|
80
|
-
};
|
|
81
|
-
const subroot1Cert = await generator_js_1.CertificateGenerator.generateCert(subroot1CertParams);
|
|
82
|
-
const subroot2Keys = await generator_js_1.CertificateGenerator.generateKeys(signatureAlgorithm);
|
|
83
|
-
const subrootLevel2CertParams = {
|
|
84
|
-
subject: subroot2,
|
|
85
|
-
issuer: subroot1,
|
|
86
|
-
privateKey: subroot1Keys.privateKey,
|
|
87
|
-
notAfter: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // 1 year
|
|
88
|
-
ca: false,
|
|
89
|
-
dnsNames: ['sp.superprotocol.io', 'superprotocol.io'],
|
|
90
|
-
customExtensions: [
|
|
91
|
-
{
|
|
92
|
-
oid: pki_common_1.OID_CUSTOM_EXTENSION_CHALLENGE_ID,
|
|
93
|
-
value: Buffer.from('tdx', 'utf8'),
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
oid: '1.3.6.1.3.8888.1.2',
|
|
97
|
-
value: mrEnclave,
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
publicKey: subroot2Keys.publicKey,
|
|
101
|
-
};
|
|
102
|
-
const subrootLevel2Cert = await generator_js_1.CertificateGenerator.generateCert(subrootLevel2CertParams);
|
|
103
|
-
// const rootCertPem = CertificatesHelper.derToPem(rootCert.certificate.toSchema().toBER());
|
|
104
|
-
// const subroot1CertPem = CertificatesHelper.derToPem(subroot1Cert.certificate.toSchema().toBER());
|
|
105
|
-
// const subrootLevel2CertPem = CertificatesHelper.derToPem(
|
|
106
|
-
// subrootLevel2Cert.certificate.toSchema().toBER(),
|
|
107
|
-
// );
|
|
108
|
-
const certsPem = [subrootLevel2Cert, subroot1Cert];
|
|
109
|
-
const validateResult = await helper_js_1.CertificatesHelper.validateCertChain(certsPem, rootCert);
|
|
110
|
-
console.log(JSON.stringify(validateResult, null, 2));
|
|
111
|
-
await fs_1.default.promises.writeFile(`pkijsCert-root-${signatureAlgorithm}.crt`, rootCert, 'utf8');
|
|
112
|
-
await fs_1.default.promises.writeFile(`pkijsCert-subroot1-${signatureAlgorithm}.crt`, subroot1Cert, 'utf8');
|
|
113
|
-
await fs_1.default.promises.writeFile(`pkijsCert-subroot2-${signatureAlgorithm}.crt`, subrootLevel2Cert, 'utf8');
|
|
114
|
-
})();
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy1nZW5lcmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jZXJ0aWZpY2F0ZXMvdGVzdGluZy1nZW5lcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJEQUErRTtBQUMvRSxpREFBc0Q7QUFDdEQsMkNBQWlEO0FBRWpELDRDQUFvQjtBQUNwQixnRkFBMEU7QUFDMUUsa0RBQWlFO0FBRWpFLHVFQUF1RTtBQUN2RSxNQUFNLGtCQUFrQixHQUF1Qix3QkFBd0IsQ0FBQztBQUV4RSxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDZixNQUFNLFlBQVksR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLE1BQU0sU0FBUyxHQUFHLDhCQUFrQixDQUFDLGlCQUFpQixDQUNwRCxZQUFZLEVBQ1osOENBQWlDLENBQ2xDLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLDhCQUFrQixDQUFDLGlCQUFpQixDQUMvRCxZQUFZLEVBQ1osNkNBQThCLENBQy9CLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRztRQUNsQixPQUFPLEVBQUUsSUFBSTtRQUNiLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFlBQVksRUFBRSxlQUFlO1FBQzdCLFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIsa0JBQWtCLEVBQUUsYUFBYTtRQUNqQyxVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPLEVBQUUsSUFBSTtRQUNiLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFlBQVksRUFBRSxlQUFlO1FBQzdCLFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIsa0JBQWtCLEVBQUUsYUFBYTtRQUNqQyxVQUFVLEVBQUUsYUFBYTtLQUMxQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPLEVBQUUsSUFBSTtRQUNiLFNB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { OID_CUSTOM_EXTENSION_CHALLENGE_ID } from '@super-protocol/pki-common';
|
|
2
|
-
import { CertificateGenerator } from './generator.js';
|
|
3
|
-
import { CertificatesHelper } from './helper.js';
|
|
4
|
-
import fs from 'fs';
|
|
5
|
-
import { CryptoKeysTransformer } from '../utils/CryptoKeysTransformer.js';
|
|
6
|
-
import { OID_CUSTOM_EXTENSION_USER_DATA } from '../constants.js';
|
|
7
|
-
// const signatureAlgorithm: SignatureAlgorithm = 'ECDSA-P-256-SHA256';
|
|
8
|
-
const signatureAlgorithm = 'ECDSA-secp256k1-SHA256';
|
|
9
|
-
void (async () => {
|
|
10
|
-
const orderCertPem = await fs.promises.readFile('order_cert.crt', 'utf8');
|
|
11
|
-
const mrEnclave = CertificatesHelper.getExtensionValue(orderCertPem, OID_CUSTOM_EXTENSION_CHALLENGE_ID);
|
|
12
|
-
const userDataHashFromCert = CertificatesHelper.getExtensionValue(orderCertPem, OID_CUSTOM_EXTENSION_USER_DATA);
|
|
13
|
-
const rootSubject = {
|
|
14
|
-
country: 'US',
|
|
15
|
-
stateName: 'California',
|
|
16
|
-
localityName: 'San Francisco',
|
|
17
|
-
organization: 'Super Protocol',
|
|
18
|
-
organizationalUnit: 'Development',
|
|
19
|
-
commonName: 'Root CA',
|
|
20
|
-
};
|
|
21
|
-
const subroot1 = {
|
|
22
|
-
country: 'US',
|
|
23
|
-
stateName: 'California',
|
|
24
|
-
localityName: 'San Francisco',
|
|
25
|
-
organization: 'Super Protocol',
|
|
26
|
-
organizationalUnit: 'Development',
|
|
27
|
-
commonName: 'Subroot1 CA',
|
|
28
|
-
};
|
|
29
|
-
const subroot2 = {
|
|
30
|
-
country: 'US',
|
|
31
|
-
stateName: 'California',
|
|
32
|
-
localityName: 'San Francisco',
|
|
33
|
-
organization: 'Super Protocol',
|
|
34
|
-
organizationalUnit: 'Development',
|
|
35
|
-
commonName: 'Subroot Level 2 CA',
|
|
36
|
-
};
|
|
37
|
-
const rootCertKeys = await CertificateGenerator.generateKeys(signatureAlgorithm);
|
|
38
|
-
const rootPrivatePem = await CryptoKeysTransformer.cryptoKeyToPkcs8Pem(rootCertKeys.privateKey);
|
|
39
|
-
const rootPublicPem = await CryptoKeysTransformer.cryptoKeyToSpkiPem(rootCertKeys.publicKey);
|
|
40
|
-
const rootCertParams = {
|
|
41
|
-
subject: rootSubject,
|
|
42
|
-
issuer: rootSubject,
|
|
43
|
-
notAfter: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // 1 year
|
|
44
|
-
ca: true,
|
|
45
|
-
dnsNames: ['sp.superprotocol.io', 'superprotocol.io', '127.0.0.1'],
|
|
46
|
-
publicKey: rootPublicPem,
|
|
47
|
-
privateKey: rootPrivatePem,
|
|
48
|
-
};
|
|
49
|
-
const rootCert = await CertificateGenerator.generateCert(rootCertParams);
|
|
50
|
-
const alg = CertificatesHelper.getCertPublicKeyAlgorithm(rootCert);
|
|
51
|
-
alg;
|
|
52
|
-
const subroot1Keys = await CertificateGenerator.generateKeys(signatureAlgorithm);
|
|
53
|
-
const subroot1CertParams = {
|
|
54
|
-
subject: subroot1,
|
|
55
|
-
issuer: rootSubject,
|
|
56
|
-
privateKey: rootCertKeys.privateKey,
|
|
57
|
-
notAfter: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // 1 year
|
|
58
|
-
ca: true,
|
|
59
|
-
dnsNames: ['sp.superprotocol.io', 'superprotocol.io'],
|
|
60
|
-
customExtensions: [
|
|
61
|
-
{
|
|
62
|
-
oid: OID_CUSTOM_EXTENSION_USER_DATA,
|
|
63
|
-
value: userDataHashFromCert,
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
oid: '1.3.6.1.3.8888.1.1',
|
|
67
|
-
value: Buffer.from('tdx', 'utf8'),
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
oid: '1.3.6.1.3.8888.1.2',
|
|
71
|
-
value: mrEnclave,
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
publicKey: subroot1Keys.publicKey,
|
|
75
|
-
};
|
|
76
|
-
const subroot1Cert = await CertificateGenerator.generateCert(subroot1CertParams);
|
|
77
|
-
const subroot2Keys = await CertificateGenerator.generateKeys(signatureAlgorithm);
|
|
78
|
-
const subrootLevel2CertParams = {
|
|
79
|
-
subject: subroot2,
|
|
80
|
-
issuer: subroot1,
|
|
81
|
-
privateKey: subroot1Keys.privateKey,
|
|
82
|
-
notAfter: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), // 1 year
|
|
83
|
-
ca: false,
|
|
84
|
-
dnsNames: ['sp.superprotocol.io', 'superprotocol.io'],
|
|
85
|
-
customExtensions: [
|
|
86
|
-
{
|
|
87
|
-
oid: OID_CUSTOM_EXTENSION_CHALLENGE_ID,
|
|
88
|
-
value: Buffer.from('tdx', 'utf8'),
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
oid: '1.3.6.1.3.8888.1.2',
|
|
92
|
-
value: mrEnclave,
|
|
93
|
-
},
|
|
94
|
-
],
|
|
95
|
-
publicKey: subroot2Keys.publicKey,
|
|
96
|
-
};
|
|
97
|
-
const subrootLevel2Cert = await CertificateGenerator.generateCert(subrootLevel2CertParams);
|
|
98
|
-
// const rootCertPem = CertificatesHelper.derToPem(rootCert.certificate.toSchema().toBER());
|
|
99
|
-
// const subroot1CertPem = CertificatesHelper.derToPem(subroot1Cert.certificate.toSchema().toBER());
|
|
100
|
-
// const subrootLevel2CertPem = CertificatesHelper.derToPem(
|
|
101
|
-
// subrootLevel2Cert.certificate.toSchema().toBER(),
|
|
102
|
-
// );
|
|
103
|
-
const certsPem = [subrootLevel2Cert, subroot1Cert];
|
|
104
|
-
const validateResult = await CertificatesHelper.validateCertChain(certsPem, rootCert);
|
|
105
|
-
console.log(JSON.stringify(validateResult, null, 2));
|
|
106
|
-
await fs.promises.writeFile(`pkijsCert-root-${signatureAlgorithm}.crt`, rootCert, 'utf8');
|
|
107
|
-
await fs.promises.writeFile(`pkijsCert-subroot1-${signatureAlgorithm}.crt`, subroot1Cert, 'utf8');
|
|
108
|
-
await fs.promises.writeFile(`pkijsCert-subroot2-${signatureAlgorithm}.crt`, subrootLevel2Cert, 'utf8');
|
|
109
|
-
})();
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy1nZW5lcmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jZXJ0aWZpY2F0ZXMvdGVzdGluZy1nZW5lcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLHVFQUF1RTtBQUN2RSxNQUFNLGtCQUFrQixHQUF1Qix3QkFBd0IsQ0FBQztBQUV4RSxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7SUFDZixNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLGlCQUFpQixDQUNwRCxZQUFZLEVBQ1osaUNBQWlDLENBQ2xDLENBQUM7SUFFRixNQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDLGlCQUFpQixDQUMvRCxZQUFZLEVBQ1osOEJBQThCLENBQy9CLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRztRQUNsQixPQUFPLEVBQUUsSUFBSTtRQUNiLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFlBQVksRUFBRSxlQUFlO1FBQzdCLFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIsa0JBQWtCLEVBQUUsYUFBYTtRQUNqQyxVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPLEVBQUUs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
|