@super-protocol/pki-attestation-engine 0.0.0-nvidia-local-verifier
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/attestationType.d.ts +4 -0
- package/dist/attestationType.js +61 -0
- package/dist/azure.d.ts +40 -0
- package/dist/azure.js +128 -0
- package/dist/certificateGenerator.d.ts +34 -0
- package/dist/certificateGenerator.js +347 -0
- package/dist/challengeProvider/challengeNvidiaCCHelper.d.ts +33 -0
- package/dist/challengeProvider/challengeNvidiaCCHelper.js +254 -0
- package/dist/challengeProvider/challengeProvider.d.ts +6 -0
- package/dist/challengeProvider/challengeProvider.js +3 -0
- package/dist/challengeProvider/challengeProviderAzure.d.ts +11 -0
- package/dist/challengeProvider/challengeProviderAzure.js +60 -0
- package/dist/challengeProvider/challengeProviderCertificate.d.ts +15 -0
- package/dist/challengeProvider/challengeProviderCertificate.js +82 -0
- package/dist/challengeProvider/challengeProviderSevSnp.d.ts +10 -0
- package/dist/challengeProvider/challengeProviderSevSnp.js +55 -0
- package/dist/challengeProvider/challengeProviderTdx.d.ts +11 -0
- package/dist/challengeProvider/challengeProviderTdx.js +60 -0
- package/dist/challengeProvider/challengeProviderToken.d.ts +9 -0
- package/dist/challengeProvider/challengeProviderToken.js +22 -0
- package/dist/challengeProvider/challengeProviderUntrusted.d.ts +9 -0
- package/dist/challengeProvider/challengeProviderUntrusted.js +22 -0
- package/dist/challengeProvider/index.d.ts +8 -0
- package/dist/challengeProvider/index.js +25 -0
- package/dist/challengeValidator/challengeValidator.d.ts +18 -0
- package/dist/challengeValidator/challengeValidator.js +3 -0
- package/dist/challengeValidator/challengeValidatorAzure.d.ts +29 -0
- package/dist/challengeValidator/challengeValidatorAzure.js +67 -0
- package/dist/challengeValidator/challengeValidatorCertificate.d.ts +9 -0
- package/dist/challengeValidator/challengeValidatorCertificate.js +55 -0
- package/dist/challengeValidator/challengeValidatorNvidia.d.ts +10 -0
- package/dist/challengeValidator/challengeValidatorNvidia.js +246 -0
- package/dist/challengeValidator/challengeValidatorSevSnp.d.ts +13 -0
- package/dist/challengeValidator/challengeValidatorSevSnp.js +142 -0
- package/dist/challengeValidator/challengeValidatorTdx.d.ts +8 -0
- package/dist/challengeValidator/challengeValidatorTdx.js +58 -0
- package/dist/challengeValidator/challengeValidatorToken.d.ts +8 -0
- package/dist/challengeValidator/challengeValidatorToken.js +38 -0
- package/dist/challengeValidator/index.d.ts +9 -0
- package/dist/challengeValidator/index.js +37 -0
- package/dist/challengeValidator/schemas.d.ts +13 -0
- package/dist/challengeValidator/schemas.js +21 -0
- package/dist/challengeValidator/validatorConfig.d.ts +28 -0
- package/dist/challengeValidator/validatorConfig.js +3 -0
- package/dist/challengeValidator/wasmVerificationPolicy.d.ts +60 -0
- package/dist/challengeValidator/wasmVerificationPolicy.js +123 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +24 -0
- package/dist/mrEnclaveSignature.d.ts +9 -0
- package/dist/mrEnclaveSignature.js +32 -0
- package/dist/swarmCertValidation.d.ts +6 -0
- package/dist/swarmCertValidation.js +52 -0
- package/package.json +32 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyChallengeMrEnclaveSignature = void 0;
|
|
4
|
+
const attestation_common_1 = require("@super-protocol/attestation-common");
|
|
5
|
+
const pki_common_1 = require("@super-protocol/pki-common");
|
|
6
|
+
const challengeTypeToEvidenceType = (challengeType) => {
|
|
7
|
+
switch (challengeType) {
|
|
8
|
+
case pki_common_1.ChallengeType.TDX:
|
|
9
|
+
return attestation_common_1.TeeEvidenceType.TEE_EVIDENCE_TYPE_INTEL_TDX_QEMU;
|
|
10
|
+
case pki_common_1.ChallengeType.TDXGOOGLE:
|
|
11
|
+
return attestation_common_1.TeeEvidenceType.TEE_EVIDENCE_TYPE_INTEL_TDX_GCP;
|
|
12
|
+
case pki_common_1.ChallengeType.TDXAZURE:
|
|
13
|
+
return attestation_common_1.TeeEvidenceType.TEE_EVIDENCE_TYPE_INTEL_TDX_AZURE;
|
|
14
|
+
case pki_common_1.ChallengeType.SEVSNP:
|
|
15
|
+
return attestation_common_1.TeeEvidenceType.TEE_EVIDENCE_TYPE_AMD_SEV_SNP_QEMU;
|
|
16
|
+
case pki_common_1.ChallengeType.SEVSNPAZURE:
|
|
17
|
+
return attestation_common_1.TeeEvidenceType.TEE_EVIDENCE_TYPE_AMD_SEV_SNP_AZURE;
|
|
18
|
+
default:
|
|
19
|
+
throw new Error(`mrEnclave signature verification is not supported for challenge type ${challengeType}`);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Verifies that the mrEnclave of a TEE challenge is signed by Super Protocol
|
|
24
|
+
* and present in the trusted registry.
|
|
25
|
+
*
|
|
26
|
+
* @throws If the challenge type has no registry or the signature is missing or invalid.
|
|
27
|
+
*/
|
|
28
|
+
const verifyChallengeMrEnclaveSignature = async (mrEnclave, challengeType) => {
|
|
29
|
+
await (0, attestation_common_1.verifyMrEnclaveSignature)(mrEnclave, challengeTypeToEvidenceType(challengeType));
|
|
30
|
+
};
|
|
31
|
+
exports.verifyChallengeMrEnclaveSignature = verifyChallengeMrEnclaveSignature;
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXJFbmNsYXZlU2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21yRW5jbGF2ZVNpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRUFHNEM7QUFDNUMsMkRBQTJEO0FBRTNELE1BQU0sMkJBQTJCLEdBQUcsQ0FDaEMsYUFBNEIsRUFDYixFQUFFO0lBQ2pCLFFBQVEsYUFBYSxFQUFFLENBQUM7UUFDcEIsS0FBSywwQkFBYSxDQUFDLEdBQUc7WUFDbEIsT0FBTyxvQ0FBZSxDQUFDLGdDQUFnQyxDQUFDO1FBQzVELEtBQUssMEJBQWEsQ0FBQyxTQUFTO1lBQ3hCLE9BQU8sb0NBQWUsQ0FBQywrQkFBK0IsQ0FBQztRQUMzRCxLQUFLLDBCQUFhLENBQUMsUUFBUTtZQUN2QixPQUFPLG9DQUFlLENBQUMsaUNBQWlDLENBQUM7UUFDN0QsS0FBSywwQkFBYSxDQUFDLE1BQU07WUFDckIsT0FBTyxvQ0FBZSxDQUFDLGtDQUFrQyxDQUFDO1FBQzlELEtBQUssMEJBQWEsQ0FBQyxXQUFXO1lBQzFCLE9BQU8sb0NBQWUsQ0FBQyxtQ0FBbUMsQ0FBQztRQUMvRDtZQUNJLE1BQU0sSUFBSSxLQUFLLENBQ1gsd0VBQXdFLGFBQWEsRUFBRSxDQUMxRixDQUFDO0lBQ1YsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxpQ0FBaUMsR0FBRyxLQUFLLEVBQ2xELFNBQWlCLEVBQ2pCLGFBQTRCLEVBQ2YsRUFBRTtJQUNmLE1BQU0sSUFBQSw2Q0FBd0IsRUFDMUIsU0FBUyxFQUNULDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxDQUM3QyxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBUlcsUUFBQSxpQ0FBaUMscUNBUTVDIn0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateClientCertificateChain = void 0;
|
|
4
|
+
const pki_common_1 = require("@super-protocol/pki-common");
|
|
5
|
+
const sdk_js_1 = require("@super-protocol/sdk-js");
|
|
6
|
+
const validateClientCertificateChain = async (certChainPem, rootCaPem, log) => {
|
|
7
|
+
try {
|
|
8
|
+
const { isValid, errorMessage } = await sdk_js_1.CertificatesHelper.validateCertChain(certChainPem, rootCaPem);
|
|
9
|
+
if (!isValid) {
|
|
10
|
+
const message = errorMessage || 'Certificate chain validation failed';
|
|
11
|
+
log?.warn('Certificate validation failed', { error: message });
|
|
12
|
+
return {
|
|
13
|
+
isValid: false,
|
|
14
|
+
errorMessage: message,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
// Sort certificates from leaf to root to get leaf certificate
|
|
18
|
+
const sortedCertPems = (0, pki_common_1.sortCertsFromLeafToRootWrapper)(certChainPem, (pem) => sdk_js_1.CertificatesHelper.sortCertsFromLeafToRoot(pem).map((c) => sdk_js_1.CertificatesHelper.derToPem(c.cert.toSchema().toBER(false))));
|
|
19
|
+
if (sortedCertPems.length === 0) {
|
|
20
|
+
const message = 'No certificates found in chain';
|
|
21
|
+
log?.warn('Certificate validation failed', { error: message });
|
|
22
|
+
return {
|
|
23
|
+
isValid: false,
|
|
24
|
+
errorMessage: message,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// First certificate after sorting is leaf
|
|
28
|
+
const leafCertPem = sortedCertPems[0];
|
|
29
|
+
// Check for OID_CUSTOM_EXTENSION_CHALLENGE_VALIDATED in leaf certificate
|
|
30
|
+
const challengeValidated = sdk_js_1.CertificatesHelper.getExtensionValue(leafCertPem, pki_common_1.OID_CUSTOM_EXTENSION_CHALLENGE_VALIDATED);
|
|
31
|
+
if (!challengeValidated) {
|
|
32
|
+
const message = 'Certificate is missing challenge validation extension';
|
|
33
|
+
log?.warn('Certificate validation failed', { error: message });
|
|
34
|
+
return {
|
|
35
|
+
isValid: false,
|
|
36
|
+
errorMessage: message,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return { isValid: true, leafCertPem };
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
log?.error('Error validating certificate', {
|
|
43
|
+
error: error.message,
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
isValid: false,
|
|
47
|
+
errorMessage: `Certificate validation error: ${error.message}`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.validateClientCertificateChain = validateClientCertificateChain;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dhcm1DZXJ0VmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zd2FybUNlcnRWYWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUlvQztBQUNwQyxtREFBNEQ7QUFFckQsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLEVBQy9DLFlBQW9CLEVBQ3BCLFNBQWlCLEVBQ2pCLEdBQVMsRUFLVixFQUFFO0lBQ0QsSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FDM0IsTUFBTSwyQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsTUFBTSxPQUFPLEdBQ1QsWUFBWSxJQUFJLHFDQUFxQyxDQUFDO1lBQzFELEdBQUcsRUFBRSxJQUFJLENBQUMsK0JBQStCLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPO2dCQUNILE9BQU8sRUFBRSxLQUFLO2dCQUNkLFlBQVksRUFBRSxPQUFPO2FBQ3hCLENBQUM7UUFDTixDQUFDO1FBRUQsOERBQThEO1FBQzlELE1BQU0sY0FBYyxHQUFHLElBQUEsMkNBQThCLEVBQ2pELFlBQVksRUFDWixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ0osMkJBQWtCLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEQsMkJBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzlELENBQ1IsQ0FBQztRQUVGLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLE9BQU8sR0FBRyxnQ0FBZ0MsQ0FBQztZQUNqRCxHQUFHLEVBQUUsSUFBSSxDQUFDLCtCQUErQixFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDL0QsT0FBTztnQkFDSCxPQUFPLEVBQUUsS0FBSztnQkFDZCxZQUFZLEVBQUUsT0FBTzthQUN4QixDQUFDO1FBQ04sQ0FBQztRQUVELDBDQUEwQztRQUMxQyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEMseUVBQXlFO1FBQ3pFLE1BQU0sa0JBQWtCLEdBQUcsMkJBQWtCLENBQUMsaUJBQWlCLENBQzNELFdBQVcsRUFDWCxxREFBd0MsQ0FDM0MsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sT0FBTyxHQUNULHVEQUF1RCxDQUFDO1lBQzVELEdBQUcsRUFBRSxJQUFJLENBQUMsK0JBQStCLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPO2dCQUNILE9BQU8sRUFBRSxLQUFLO2dCQUNkLFlBQVksRUFBRSxPQUFPO2FBQ3hCLENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDbEIsR0FBRyxFQUFFLEtBQUssQ0FBQyw4QkFBOEIsRUFBRTtZQUN2QyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNILE9BQU8sRUFBRSxLQUFLO1lBQ2QsWUFBWSxFQUFFLGlDQUFpQyxLQUFLLENBQUMsT0FBTyxFQUFFO1NBQ2pFLENBQUM7SUFDTixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBckVXLFFBQUEsOEJBQThCLGtDQXFFekMifQ==
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@super-protocol/pki-attestation-engine",
|
|
3
|
+
"version": "0.0.0-nvidia-local-verifier",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"directories": {
|
|
12
|
+
"lib": "dist"
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc -b",
|
|
16
|
+
"lint": "eslint --max-warnings=0 src",
|
|
17
|
+
"lint:fix": "eslint --fix src"
|
|
18
|
+
},
|
|
19
|
+
"author": "Super Protocol",
|
|
20
|
+
"license": "ISC",
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@sinclair/typebox": "0.33.22",
|
|
23
|
+
"@super-protocol/addons-tee": "^4.2.0",
|
|
24
|
+
"@super-protocol/attestation-common": "^0.3.1",
|
|
25
|
+
"@super-protocol/attestation-wasm": "^0.3.0",
|
|
26
|
+
"@super-protocol/pki-common": "0.0.0-nvidia-local-verifier",
|
|
27
|
+
"@super-protocol/sp-nvtrust-wrapper": "0.0.0-nvidia-local-verifier"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"@super-protocol/sdk-js": "*"
|
|
31
|
+
}
|
|
32
|
+
}
|