aws-delivlib 13.6.1 → 13.6.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/cdk.out/{asset.98dba9b3d79739d40a37e0621754556a791eef3b1c96e913c6e8d5df3a379bd4 → asset.0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40}/index.js +30 -30
- package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/__entrypoint__.js +119 -0
- package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/index.d.ts +1 -0
- package/cdk.out/asset.15684a15d07860e99d2a8079150ad33dd2cb743677fcd7016dd07345e1b69538/index.js +81 -0
- package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_cloud-formation.js +0 -0
- package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_exec.js +0 -0
- package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_lambda.js +0 -0
- package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/_rmrf.js +0 -0
- package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/certificate-signing-request.js +18 -3
- package/cdk.out/{asset.70d613312145b8280d33a47035cc5be2a9bd0e5069705e39f83b14cd1f720e99 → asset.9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9}/index.js +18 -3
- package/cdk.out/delivlib-test.assets.json +22 -8
- package/cdk.out/delivlib-test.template.json +237 -4
- package/cdk.out/manifest.json +118 -5
- package/cdk.out/tree.json +619 -393
- package/lib/code-signing/certificate-signing-request.d.ts +4 -1
- package/lib/code-signing/certificate-signing-request.js +11 -1
- package/lib/code-signing/certificate-signing-request.ts +17 -1
- package/lib/custom-resource-handlers/bin/certificate-signing-request/certificate-signing-request.js +18 -3
- package/lib/custom-resource-handlers/bin/certificate-signing-request/index.js +18 -3
- package/lib/custom-resource-handlers/src/certificate-signing-request.js +18 -3
- package/lib/custom-resource-handlers/src/certificate-signing-request.ts +19 -2
- package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
- package/lib/package-integrity/handler/validate.bundle.js +424 -358
- package/package.json +10 -9
|
@@ -32,9 +32,12 @@ export interface CertificateSigningRequestProps {
|
|
|
32
32
|
*/
|
|
33
33
|
export declare class CertificateSigningRequest extends Construct {
|
|
34
34
|
/**
|
|
35
|
-
* The
|
|
35
|
+
* The S3 URL to the CSR document.
|
|
36
36
|
*/
|
|
37
37
|
readonly pemRequest: string;
|
|
38
|
+
/**
|
|
39
|
+
* The S3 URL to a self-signed certificate that corresponds with this CSR.
|
|
40
|
+
*/
|
|
38
41
|
readonly selfSignedPemCertificate: string;
|
|
39
42
|
constructor(parent: Construct, id: string, props: CertificateSigningRequestProps);
|
|
40
43
|
}
|
|
@@ -48,6 +48,14 @@ class CertificateSigningRequest extends monocdk_1.Construct {
|
|
|
48
48
|
code: monocdk_1.aws_lambda.Code.fromAsset(path.join(__dirname, '..', 'custom-resource-handlers', 'layers', 'openssl-cli-layer.zip')),
|
|
49
49
|
})],
|
|
50
50
|
});
|
|
51
|
+
const outputBucket = new monocdk_1.aws_s3.Bucket(this, 'Bucket', {
|
|
52
|
+
// CSRs can be easily re-created if lost or corrupt, so we can let those get to a black hole, no worries.
|
|
53
|
+
autoDeleteObjects: true,
|
|
54
|
+
removalPolicy: monocdk_1.RemovalPolicy.DESTROY,
|
|
55
|
+
encryption: monocdk_1.aws_s3.BucketEncryption.S3_MANAGED,
|
|
56
|
+
enforceSSL: true,
|
|
57
|
+
});
|
|
58
|
+
outputBucket.grantReadWrite(customResource);
|
|
51
59
|
const csr = new monocdk_1.aws_cloudformation.CustomResource(this, 'Resource', {
|
|
52
60
|
provider: monocdk_1.aws_cloudformation.CustomResourceProvider.lambda(customResource),
|
|
53
61
|
resourceType: 'Custom::CertificateSigningRequest',
|
|
@@ -66,6 +74,8 @@ class CertificateSigningRequest extends monocdk_1.Construct {
|
|
|
66
74
|
// Key Usage
|
|
67
75
|
extendedKeyUsage: props.extendedKeyUsage || '',
|
|
68
76
|
keyUsage: props.keyUsage,
|
|
77
|
+
// Ouput location
|
|
78
|
+
outputBucket: outputBucket.bucketName,
|
|
69
79
|
},
|
|
70
80
|
});
|
|
71
81
|
if (customResource.role) {
|
|
@@ -78,4 +88,4 @@ class CertificateSigningRequest extends monocdk_1.Construct {
|
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
exports.CertificateSigningRequest = CertificateSigningRequest;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IscUNBTWlCO0FBQ2pCLGtDQUE4QztBQTJCOUM7Ozs7Ozs7R0FPRztBQUNILE1BQWEseUJBQTBCLFNBQVEsbUJBQVM7SUFXdEQsWUFBWSxNQUFpQixFQUFFLEVBQVUsRUFBRSxLQUFxQztRQUM5RSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNySCxNQUFNLGNBQWMsR0FBRyxJQUFJLG9CQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzNFLElBQUksRUFBRSxzQ0FBc0M7WUFDNUMsYUFBYSxFQUFFLFdBQVc7WUFDMUIsV0FBVyxFQUFFLHdFQUF3RTtZQUNyRixPQUFPLEVBQUUsb0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixJQUFJLEVBQUUsSUFBSSxvQkFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDeEMsT0FBTyxFQUFFLGtCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUM5QixxREFBcUQ7WUFDckQsTUFBTSxFQUFFLENBQUMsSUFBSSxvQkFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7b0JBQ3hELElBQUksRUFBRSxvQkFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2lCQUN2SCxDQUFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxJQUFJLGdCQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDakQseUdBQXlHO1lBQ3pHLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsYUFBYSxFQUFFLHVCQUFhLENBQUMsT0FBTztZQUNwQyxVQUFVLEVBQUUsZ0JBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO1lBQzFDLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSw0QkFBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ25ELFFBQVEsRUFBRSw0QkFBRyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDM0QsWUFBWSxFQUFFLG1DQUFtQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLElBQUEsMEJBQW1CLEVBQUMsWUFBWSxDQUFDO2dCQUNsRCxjQUFjO2dCQUNkLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUztnQkFDOUMscUJBQXFCO2dCQUNyQixZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVO2dCQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPO2dCQUMzQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLGVBQWU7Z0JBQzNDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVE7Z0JBQzdCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCO2dCQUM3Qyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLHNCQUFzQjtnQkFDekQsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWTtnQkFDckMsWUFBWTtnQkFDWixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLElBQUksRUFBRTtnQkFDOUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixpQkFBaUI7Z0JBQ2pCLFlBQVksRUFBRSxZQUFZLENBQUMsVUFBVTthQUN0QztTQUNGLENBQUMsQ0FBQztRQUNILElBQUksY0FBYyxDQUFDLElBQUksRUFBRTtZQUN2QiwyREFBMkQ7WUFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakYsQ0FBQztDQUNGO0FBckVELDhEQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3QsIER1cmF0aW9uLFxuICBhd3NfY2xvdWRmb3JtYXRpb24gYXMgY2ZuLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX3MzIGFzIHMzLFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tICdtb25vY2RrJztcbmltcG9ydCB7IGhhc2hGaWxlT3JEaXJlY3RvcnkgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IFJzYVByaXZhdGVLZXlTZWNyZXQgfSBmcm9tICcuL3ByaXZhdGUta2V5JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIENlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgUlNBIFByaXZhdGUgS2V5IHRvIHVzZSBmb3IgdGhpcyBDU1IuXG4gICAqL1xuICBwcml2YXRlS2V5OiBSc2FQcml2YXRlS2V5U2VjcmV0O1xuICAvKipcbiAgICogVGhlIERpc3Rpbmd1aXNoZWQgTmFtZSBmb3IgdGhpcyBDU1IuXG4gICAqL1xuICBkbjogRGlzdGluZ3Vpc2hlZE5hbWU7XG4gIC8qKlxuICAgKiBUaGUga2V5IHVzYWdlIHJlcXVlc3RzIGZvciB0aGlzIENTUi5cbiAgICpcbiAgICogQGV4YW1wbGUgY3JpdGljYWwsZGlnaXRhbFNpZ25hdHVyZVxuICAgKi9cbiAga2V5VXNhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBleHRlbmRlZCBrZXkgdXNhZ2UgcmVxdWVzdHMgZm9yIHRoaXMgQ1NSLlxuICAgKlxuICAgKiBAZXhhbXBsZSBjcml0aWNhbCxjb2RlU2lnbmluZ1xuICAgKi9cbiAgZXh0ZW5kZWRLZXlVc2FnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgQ2VydGlmaWNhdGUgU2lnbmluZyBSZXF1ZXN0IChDU1IpLCB3aGljaCB3aWxsIGFsbG93IGEgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IHRvIHByb3ZpZGUgYSBzaWduZWQgY2VydGlmaWNhdGVcbiAqIHRoYXQgdXNlcyB0aGUgc3BlY2lmaWVkIFJTQSBQcml2YXRlIEtleS4gQSBDU1IgZG9jdW1lbnQgY2FuIHVzdWFsbHkgYmUgc2hhcmVkIHB1YmxpY2x5LCBob3dldmVyIGl0IG11c3QgYmUgbm90ZWQgdGhhdFxuICogdGhlIGluZm9ybWF0aW9uIHByb3ZpZGVkIGluIHRoZSBgYGRuYGAgZmllbGRzLCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVibGljIGtleSBhbmQgdGhlIGludGVuZGVkIGxleSB1c2FnZSB3aWxsIGJlXG4gKiByZWFkYWJsZSBieSBhbnlvbmUgd2hvIGNhbiBhY2Nlc3MgdGhlIENTUi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnL2RvY3MvbWFubWFzdGVyL21hbjEvcmVxLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIFMzIFVSTCB0byB0aGUgQ1NSIGRvY3VtZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBlbVJlcXVlc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFMzIFVSTCB0byBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGlzIENTUi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWxmU2lnbmVkUGVtQ2VydGlmaWNhdGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwYXJlbnQ6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgY29uc3QgY29kZUxvY2F0aW9uID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ2N1c3RvbS1yZXNvdXJjZS1oYW5kbGVycycsICdiaW4nLCAnY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0Jyk7XG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2UgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsICdSZXNvdXJjZUhhbmRsZXInLCB7XG4gICAgICB1dWlkOiAnNTQxRjY3ODItNkRDRi00OUE3LThDNUEtNjc3MTVBREQ5RTRDJyxcbiAgICAgIGxhbWJkYVB1cnBvc2U6ICdDcmVhdGVDU1InLFxuICAgICAgZGVzY3JpcHRpb246ICdDcmVhdGVzIGEgQ2VydGlmaWNhdGUgU2lnbmluZyBSZXF1ZXN0IGRvY3VtZW50IGZvciBhbiB4NTA5IGNlcnRpZmljYXRlJyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMl9YLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbmV3IGxhbWJkYS5Bc3NldENvZGUoY29kZUxvY2F0aW9uKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIC8vIGFkZCB0aGUgbGF5ZXIgdGhhdCBjb250YWlucyB0aGUgT3BlblNTTCBDTEkgYmluYXJ5XG4gICAgICBsYXllcnM6IFtuZXcgbGFtYmRhLkxheWVyVmVyc2lvbih0aGlzLCAnT3BlblNzbENsaUxheWVyJywge1xuICAgICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJ2N1c3RvbS1yZXNvdXJjZS1oYW5kbGVycycsICdsYXllcnMnLCAnb3BlbnNzbC1jbGktbGF5ZXIuemlwJykpLFxuICAgICAgfSldLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3V0cHV0QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQnVja2V0Jywge1xuICAgICAgLy8gQ1NScyBjYW4gYmUgZWFzaWx5IHJlLWNyZWF0ZWQgaWYgbG9zdCBvciBjb3JydXB0LCBzbyB3ZSBjYW4gbGV0IHRob3NlIGdldCB0byBhIGJsYWNrIGhvbGUsIG5vIHdvcnJpZXMuXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgfSk7XG4gICAgb3V0cHV0QnVja2V0LmdyYW50UmVhZFdyaXRlKGN1c3RvbVJlc291cmNlKTtcblxuICAgIGNvbnN0IGNzciA9IG5ldyBjZm4uQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcHJvdmlkZXI6IGNmbi5DdXN0b21SZXNvdXJjZVByb3ZpZGVyLmxhbWJkYShjdXN0b21SZXNvdXJjZSksXG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkNlcnRpZmljYXRlU2lnbmluZ1JlcXVlc3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICByZXNvdXJjZVZlcnNpb246IGhhc2hGaWxlT3JEaXJlY3RvcnkoY29kZUxvY2F0aW9uKSxcbiAgICAgICAgLy8gUHJpdmF0ZSBrZXlcbiAgICAgICAgcHJpdmF0ZUtleVNlY3JldElkOiBwcm9wcy5wcml2YXRlS2V5LnNlY3JldEFybixcbiAgICAgICAgLy8gRGlzdGluZ3Vpc2hlZCBuYW1lXG4gICAgICAgIGRuQ29tbW9uTmFtZTogcHJvcHMuZG4uY29tbW9uTmFtZSxcbiAgICAgICAgZG5Db3VudHJ5OiBwcm9wcy5kbi5jb3VudHJ5LFxuICAgICAgICBkblN0YXRlT3JQcm92aW5jZTogcHJvcHMuZG4uc3RhdGVPclByb3ZpbmNlLFxuICAgICAgICBkbkxvY2FsaXR5OiBwcm9wcy5kbi5sb2NhbGl0eSxcbiAgICAgICAgZG5Pcmdhbml6YXRpb25OYW1lOiBwcm9wcy5kbi5vcmdhbml6YXRpb25OYW1lLFxuICAgICAgICBkbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHByb3BzLmRuLm9yZ2FuaXphdGlvbmFsVW5pdE5hbWUsXG4gICAgICAgIGRuRW1haWxBZGRyZXNzOiBwcm9wcy5kbi5lbWFpbEFkZHJlc3MsXG4gICAgICAgIC8vIEtleSBVc2FnZVxuICAgICAgICBleHRlbmRlZEtleVVzYWdlOiBwcm9wcy5leHRlbmRlZEtleVVzYWdlIHx8ICcnLFxuICAgICAgICBrZXlVc2FnZTogcHJvcHMua2V5VXNhZ2UsXG4gICAgICAgIC8vIE91cHV0IGxvY2F0aW9uXG4gICAgICAgIG91dHB1dEJ1Y2tldDogb3V0cHV0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChjdXN0b21SZXNvdXJjZS5yb2xlKSB7XG4gICAgICAvLyBNYWtlIHN1cmUgdGhlIHBlcm1pc3Npb25zIGFyZSBhbGwgZ29vZCBiZWZvcmUgcHJvY2VlZGluZ1xuICAgICAgY3NyLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21SZXNvdXJjZS5yb2xlKTtcbiAgICAgIHByb3BzLnByaXZhdGVLZXkuZ3JhbnRHZXRTZWNyZXRWYWx1ZShjdXN0b21SZXNvdXJjZS5yb2xlKTtcbiAgICB9XG5cbiAgICB0aGlzLnBlbVJlcXVlc3QgPSBjc3IuZ2V0QXR0KCdDU1InKS50b1N0cmluZygpO1xuICAgIHRoaXMuc2VsZlNpZ25lZFBlbUNlcnRpZmljYXRlID0gY3NyLmdldEF0dCgnU2VsZlNpZ25lZENlcnRpZmljYXRlJykudG9TdHJpbmcoKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpZWxkcyB0aGF0IGNvbXBvc2UgdGhlIGRpc3Rpbmd1aXNoZWQgbmFtZSBvZiBhIGNlcnRpZmljYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzdGluZ3Vpc2hlZE5hbWUge1xuICAvKiogVGhlIENvbW1vbiBOYW1lIChDTikgKi9cbiAgY29tbW9uTmFtZTogc3RyaW5nO1xuICAvKiogVGhlIGVtYWlsIGFkZHJlc3MgKGVtYWlsQWRkcmVzcykgKi9cbiAgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBDb3VudHJ5IChDKSAqL1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIC8qKiBUaGUgU3RhdGUgb3IgUHJvdmluY2UgKFNUKSAqL1xuICBzdGF0ZU9yUHJvdmluY2U6IHN0cmluZztcbiAgLyoqIFRoZSBsb2NhbGl0eSAoTCkgKi9cbiAgbG9jYWxpdHk6IHN0cmluZztcblxuICAvKiogVGhlIG9yZ2FuaXphdGlvbiBuYW1lIChPKSAqL1xuICBvcmdhbml6YXRpb25OYW1lOiBzdHJpbmc7XG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uYWwgdW5pdCBuYW1lIChPVSkgKi9cbiAgb3JnYW5pemF0aW9uYWxVbml0TmFtZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -3,6 +3,8 @@ import {
|
|
|
3
3
|
Construct, Duration,
|
|
4
4
|
aws_cloudformation as cfn,
|
|
5
5
|
aws_lambda as lambda,
|
|
6
|
+
aws_s3 as s3,
|
|
7
|
+
RemovalPolicy,
|
|
6
8
|
} from 'monocdk';
|
|
7
9
|
import { hashFileOrDirectory } from '../util';
|
|
8
10
|
import { RsaPrivateKeySecret } from './private-key';
|
|
@@ -41,10 +43,13 @@ export interface CertificateSigningRequestProps {
|
|
|
41
43
|
*/
|
|
42
44
|
export class CertificateSigningRequest extends Construct {
|
|
43
45
|
/**
|
|
44
|
-
* The
|
|
46
|
+
* The S3 URL to the CSR document.
|
|
45
47
|
*/
|
|
46
48
|
public readonly pemRequest: string;
|
|
47
49
|
|
|
50
|
+
/**
|
|
51
|
+
* The S3 URL to a self-signed certificate that corresponds with this CSR.
|
|
52
|
+
*/
|
|
48
53
|
public readonly selfSignedPemCertificate: string;
|
|
49
54
|
|
|
50
55
|
constructor(parent: Construct, id: string, props: CertificateSigningRequestProps) {
|
|
@@ -65,6 +70,15 @@ export class CertificateSigningRequest extends Construct {
|
|
|
65
70
|
})],
|
|
66
71
|
});
|
|
67
72
|
|
|
73
|
+
const outputBucket = new s3.Bucket(this, 'Bucket', {
|
|
74
|
+
// CSRs can be easily re-created if lost or corrupt, so we can let those get to a black hole, no worries.
|
|
75
|
+
autoDeleteObjects: true,
|
|
76
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
77
|
+
encryption: s3.BucketEncryption.S3_MANAGED,
|
|
78
|
+
enforceSSL: true,
|
|
79
|
+
});
|
|
80
|
+
outputBucket.grantReadWrite(customResource);
|
|
81
|
+
|
|
68
82
|
const csr = new cfn.CustomResource(this, 'Resource', {
|
|
69
83
|
provider: cfn.CustomResourceProvider.lambda(customResource),
|
|
70
84
|
resourceType: 'Custom::CertificateSigningRequest',
|
|
@@ -83,6 +97,8 @@ export class CertificateSigningRequest extends Construct {
|
|
|
83
97
|
// Key Usage
|
|
84
98
|
extendedKeyUsage: props.extendedKeyUsage || '',
|
|
85
99
|
keyUsage: props.keyUsage,
|
|
100
|
+
// Ouput location
|
|
101
|
+
outputBucket: outputBucket.bucketName,
|
|
86
102
|
},
|
|
87
103
|
});
|
|
88
104
|
if (customResource.role) {
|
package/lib/custom-resource-handlers/bin/certificate-signing-request/certificate-signing-request.js
CHANGED
|
@@ -26,6 +26,7 @@ async function handleEvent(event, _context) {
|
|
|
26
26
|
ExtendedKeyUsage: false,
|
|
27
27
|
KeyUsage: true,
|
|
28
28
|
PrivateKeySecretId: true,
|
|
29
|
+
OutputBucket: true,
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
switch (event.RequestType) {
|
|
@@ -45,10 +46,24 @@ async function _createSelfSignedCertificate(event) {
|
|
|
45
46
|
await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
|
|
46
47
|
const certFile = path.join(tempDir, 'cert.pem');
|
|
47
48
|
await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
|
|
49
|
+
const s3 = new aws.S3();
|
|
50
|
+
const bucketName = event.ResourceProperties.OutputBucket;
|
|
51
|
+
await s3.putObject({
|
|
52
|
+
Bucket: bucketName,
|
|
53
|
+
Key: 'certificate-signing-request.pem',
|
|
54
|
+
Body: await readFile(csrFile, { encoding: 'utf8' }),
|
|
55
|
+
ContentType: 'application/x-pem-file',
|
|
56
|
+
}).promise();
|
|
57
|
+
await s3.putObject({
|
|
58
|
+
Bucket: bucketName,
|
|
59
|
+
Key: 'self-signed-certificate.pem',
|
|
60
|
+
Body: await readFile(certFile, { encoding: 'utf8' }),
|
|
61
|
+
ContentType: 'application/x-pem-file',
|
|
62
|
+
}).promise();
|
|
48
63
|
return {
|
|
49
64
|
Ref: event.LogicalResourceId,
|
|
50
|
-
CSR:
|
|
51
|
-
SelfSignedCertificate:
|
|
65
|
+
CSR: `s3://${bucketName}/certificate-signing-request.pem`,
|
|
66
|
+
SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
|
|
52
67
|
};
|
|
53
68
|
}
|
|
54
69
|
finally {
|
|
@@ -91,4 +106,4 @@ async function _retrievePrivateKey(event, dir) {
|
|
|
91
106
|
await writeFile(file, secret.SecretString, { encoding: 'utf8' });
|
|
92
107
|
return file;
|
|
93
108
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
|
|
@@ -26,6 +26,7 @@ async function handleEvent(event, _context) {
|
|
|
26
26
|
ExtendedKeyUsage: false,
|
|
27
27
|
KeyUsage: true,
|
|
28
28
|
PrivateKeySecretId: true,
|
|
29
|
+
OutputBucket: true,
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
32
|
switch (event.RequestType) {
|
|
@@ -45,10 +46,24 @@ async function _createSelfSignedCertificate(event) {
|
|
|
45
46
|
await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
|
|
46
47
|
const certFile = path.join(tempDir, 'cert.pem');
|
|
47
48
|
await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
|
|
49
|
+
const s3 = new aws.S3();
|
|
50
|
+
const bucketName = event.ResourceProperties.OutputBucket;
|
|
51
|
+
await s3.putObject({
|
|
52
|
+
Bucket: bucketName,
|
|
53
|
+
Key: 'certificate-signing-request.pem',
|
|
54
|
+
Body: await readFile(csrFile, { encoding: 'utf8' }),
|
|
55
|
+
ContentType: 'application/x-pem-file',
|
|
56
|
+
}).promise();
|
|
57
|
+
await s3.putObject({
|
|
58
|
+
Bucket: bucketName,
|
|
59
|
+
Key: 'self-signed-certificate.pem',
|
|
60
|
+
Body: await readFile(certFile, { encoding: 'utf8' }),
|
|
61
|
+
ContentType: 'application/x-pem-file',
|
|
62
|
+
}).promise();
|
|
48
63
|
return {
|
|
49
64
|
Ref: event.LogicalResourceId,
|
|
50
|
-
CSR:
|
|
51
|
-
SelfSignedCertificate:
|
|
65
|
+
CSR: `s3://${bucketName}/certificate-signing-request.pem`,
|
|
66
|
+
SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
|
|
52
67
|
};
|
|
53
68
|
}
|
|
54
69
|
finally {
|
|
@@ -91,4 +106,4 @@ async function _retrievePrivateKey(event, dir) {
|
|
|
91
106
|
await writeFile(file, secret.SecretString, { encoding: 'utf8' });
|
|
92
107
|
return file;
|
|
93
108
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBK0I7QUFFL0IsMENBQTBDO0FBRTFDLGlDQUFrQztBQUdsQyxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixR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
|
|
@@ -48,6 +48,7 @@ async function handleEvent(event, _context) {
|
|
|
48
48
|
ExtendedKeyUsage: false,
|
|
49
49
|
KeyUsage: true,
|
|
50
50
|
PrivateKeySecretId: true,
|
|
51
|
+
OutputBucket: true,
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
switch (event.RequestType) {
|
|
@@ -68,10 +69,24 @@ async function _createSelfSignedCertificate(event) {
|
|
|
68
69
|
await _exec('/opt/openssl', 'req', '-config', configFile, '-key', pkeyFile, '-out', csrFile, '-new');
|
|
69
70
|
const certFile = path.join(tempDir, 'cert.pem');
|
|
70
71
|
await _exec('/opt/openssl', 'x509', '-in', csrFile, '-out', certFile, '-req', '-signkey', pkeyFile, '-days', '365');
|
|
72
|
+
const s3 = new aws.S3();
|
|
73
|
+
const bucketName = event.ResourceProperties.OutputBucket;
|
|
74
|
+
await s3.putObject({
|
|
75
|
+
Bucket: bucketName,
|
|
76
|
+
Key: 'certificate-signing-request.pem',
|
|
77
|
+
Body: await readFile(csrFile, { encoding: 'utf8' }),
|
|
78
|
+
ContentType: 'application/x-pem-file',
|
|
79
|
+
}).promise();
|
|
80
|
+
await s3.putObject({
|
|
81
|
+
Bucket: bucketName,
|
|
82
|
+
Key: 'self-signed-certificate.pem',
|
|
83
|
+
Body: await readFile(certFile, { encoding: 'utf8' }),
|
|
84
|
+
ContentType: 'application/x-pem-file',
|
|
85
|
+
}).promise();
|
|
71
86
|
return {
|
|
72
87
|
Ref: event.LogicalResourceId,
|
|
73
|
-
CSR:
|
|
74
|
-
SelfSignedCertificate:
|
|
88
|
+
CSR: `s3://${bucketName}/certificate-signing-request.pem`,
|
|
89
|
+
SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
|
|
75
90
|
};
|
|
76
91
|
}
|
|
77
92
|
finally {
|
|
@@ -114,4 +129,4 @@ async function _retrievePrivateKey(event, dir) {
|
|
|
114
129
|
await writeFile(file, secret.SecretString, { encoding: 'utf8' });
|
|
115
130
|
return file;
|
|
116
131
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJDQUE2QjtBQUM3Qiw2REFBNkQ7QUFDN0QsNkNBQStCO0FBRS9CLHdEQUEwQztBQUMxQyxpRUFBaUU7QUFDakUsaUNBQWtDO0FBRWxDLGlFQUFpRTtBQUNqRSxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlC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RUFBRTtRQUM3RSwwQkFBMEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRTtRQUNuRSxFQUFFO1FBQ0YsZ0JBQWdCO1FBQ2hCLDBCQUEwQixLQUFLLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUU7UUFDckUsMEJBQTBCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7UUFDN0QsNkJBQTZCO0tBQzlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsR0FBVztJQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sY0FBYyxDQUFDLGNBQWMsQ0FBQztRQUNqRCxRQUFRLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQjtRQUNyRCxZQUFZLEVBQUUsWUFBWTtLQUMzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDYixNQUFNLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0ICogYXMgYXdzIGZyb20gJ2F3cy1zZGsnO1xuXG5pbXBvcnQgKiBhcyBjZm4gZnJvbSAnLi9fY2xvdWQtZm9ybWF0aW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX2V4ZWMgPSByZXF1aXJlKCcuL19leGVjJyk7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnLi9fbGFtYmRhJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX3JtcmYgPSByZXF1aXJlKCcuL19ybXJmJyk7XG5cbmNvbnN0IG1rZHRlbXAgPSB1dGlsLnByb21pc2lmeShmcy5ta2R0ZW1wKTtcbmNvbnN0IHJlYWRGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuY29uc3Qgd3JpdGVGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMud3JpdGVGaWxlKTtcblxuY29uc3Qgc2VjcmV0c01hbmFnZXIgPSBuZXcgYXdzLlNlY3JldHNNYW5hZ2VyKCk7XG5cbmV4cG9ydHMuaGFuZGxlciA9IGNmbi5jdXN0b21SZXNvdXJjZUhhbmRsZXIoaGFuZGxlRXZlbnQpO1xuXG5pbnRlcmZhY2UgUmVzb3VyY2VBdHRyaWJ1dGVzIGV4dGVuZHMgY2ZuLlJlc291cmNlQXR0cmlidXRlcyB7XG4gIENTUjogc3RyaW5nO1xuICBTZWxmU2lnbmVkQ2VydGlmaWNhdGU6IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQ6IGNmbi5FdmVudCwgX2NvbnRleHQ6IGxhbWJkYS5Db250ZXh0KTogUHJvbWlzZTxjZm4uUmVzb3VyY2VBdHRyaWJ1dGVzPiB7XG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSAhPT0gY2ZuLlJlcXVlc3RUeXBlLkRFTEVURSkge1xuICAgIGNmbi52YWxpZGF0ZVByb3BlcnRpZXMoZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLCB7XG4gICAgICBEbkNvbW1vbk5hbWU6IHRydWUsXG4gICAgICBEbkNvdW50cnk6IHRydWUsXG4gICAgICBEbkVtYWlsQWRkcmVzczogdHJ1ZSxcbiAgICAgIERuTG9jYWxpdHk6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbk5hbWU6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHRydWUsXG4gICAgICBEblN0YXRlT3JQcm92aW5jZTogdHJ1ZSxcbiAgICAgIEV4dGVuZGVkS2V5VXNhZ2U6IGZhbHNlLFxuICAgICAgS2V5VXNhZ2U6IHRydWUsXG4gICAgICBQcml2YXRlS2V5U2VjcmV0SWQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBjZm4uUmVxdWVzdFR5cGUuQ1JFQVRFOlxuICAgIGNhc2UgY2ZuLlJlcXVlc3RUeXBlLlVQREFURTpcbiAgICAgIHJldHVybiBfY3JlYXRlU2VsZlNpZ25lZENlcnRpZmljYXRlKGV2ZW50KTtcbiAgICBjYXNlIGNmbi5SZXF1ZXN0VHlwZS5ERUxFVEU6XG4gICAgLy8gTm90aGluZyB0byBkbyAtIHRoaXMgaXMgbm90IGEgXCJQaHlzaWNhbFwiIHJlc291cmNlXG4gICAgICByZXR1cm4geyBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIH07XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gX2NyZWF0ZVNlbGZTaWduZWRDZXJ0aWZpY2F0ZShldmVudDogY2ZuLkV2ZW50KTogUHJvbWlzZTxSZXNvdXJjZUF0dHJpYnV0ZXM+IHtcbiAgY29uc3QgdGVtcERpciA9IGF3YWl0IG1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAneDUwOUNTUi0nKSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IF9tYWtlQ3NyQ29uZmlnKGV2ZW50LCB0ZW1wRGlyKTtcbiAgICBjb25zdCBwa2V5RmlsZSA9IGF3YWl0IF9yZXRyaWV2ZVByaXZhdGVLZXkoZXZlbnQsIHRlbXBEaXIpO1xuICAgIGNvbnN0IGNzckZpbGUgPSBwYXRoLmpvaW4odGVtcERpciwgJ2Nzci5wZW0nKTtcbiAgICBhd2FpdCBfZXhlYygnL29wdC9vcGVuc3NsJywgJ3JlcScsICctY29uZmlnJywgY29uZmlnRmlsZSxcbiAgICAgICcta2V5JywgcGtleUZpbGUsXG4gICAgICAnLW91dCcsIGNzckZpbGUsXG4gICAgICAnLW5ldycpO1xuICAgIGNvbnN0IGNlcnRGaWxlID0gcGF0aC5qb2luKHRlbXBEaXIsICdjZXJ0LnBlbScpO1xuICAgIGF3YWl0IF9leGVjKCcvb3B0L29wZW5zc2wnLCAneDUwOScsICctaW4nLCBjc3JGaWxlLFxuICAgICAgJy1vdXQnLCBjZXJ0RmlsZSxcbiAgICAgICctcmVxJyxcbiAgICAgICctc2lnbmtleScsIHBrZXlGaWxlLFxuICAgICAgJy1kYXlzJywgJzM2NScpO1xuICAgIHJldHVybiB7XG4gICAgICBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgQ1NSOiBhd2FpdCByZWFkRmlsZShjc3JGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgICBTZWxmU2lnbmVkQ2VydGlmaWNhdGU6IGF3YWl0IHJlYWRGaWxlKGNlcnRGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBfcm1yZih0ZW1wRGlyKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBfbWFrZUNzckNvbmZpZyhldmVudDogY2ZuLkV2ZW50LCBkaXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4oZGlyLCAnY3NyLmNvbmZpZycpO1xuICBhd2FpdCB3cml0ZUZpbGUoZmlsZSwgW1xuICAgICdbIHJlcSBdJyxcbiAgICAnZGVmYXVsdF9tZCAgICAgICAgICAgPSBzaGEyNTYnLFxuICAgICdkaXN0aW5ndWlzaGVkX25hbWUgICA9IGRuJyxcbiAgICAncHJvbXB0ICAgICAgICAgICAgICAgPSBubycsXG4gICAgJ3JlcV9leHRlbnNpb25zICAgICAgID0gZXh0ZW5zaW9ucycsXG4gICAgJ3N0cmluZ19tYXNrICAgICAgICAgID0gdXRmOG9ubHknLFxuICAgICd1dGY4ICAgICAgICAgICAgICAgICA9IHllcycsXG4gICAgJycsXG4gICAgJ1sgZG4gXScsXG4gICAgYENOICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db21tb25OYW1lfWAsXG4gICAgYEMgICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db3VudHJ5fWAsXG4gICAgYFNUICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5TdGF0ZU9yUHJvdmluY2V9YCxcbiAgICBgTCAgICAgICAgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5EbkxvY2FsaXR5fWAsXG4gICAgYE8gICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25OYW1lfWAsXG4gICAgYE9VICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25hbFVuaXROYW1lfWAsXG4gICAgYGVtYWlsQWRkcmVzcyAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5FbWFpbEFkZHJlc3N9YCxcbiAgICAnJyxcbiAgICAnWyBleHRlbnNpb25zIF0nLFxuICAgIGBleHRlbmRlZEtleVVzYWdlICAgICA9ICR7ZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkV4dGVuZGVkS2V5VXNhZ2V9YCxcbiAgICBga2V5VXNhZ2UgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5LZXlVc2FnZX1gLFxuICAgICdzdWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gnLFxuICBdLmpvaW4oJ1xcbicpLCB7IGVuY29kaW5nOiAndXRmOCcgfSk7XG4gIHJldHVybiBmaWxlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBfcmV0cmlldmVQcml2YXRlS2V5KGV2ZW50OiBjZm4uRXZlbnQsIGRpcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXIsICdwcml2YXRlX2tleS5wZW0nKTtcbiAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgc2VjcmV0c01hbmFnZXIuZ2V0U2VjcmV0VmFsdWUoe1xuICAgIFNlY3JldElkOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUHJpdmF0ZUtleVNlY3JldElkLFxuICAgIFZlcnNpb25TdGFnZTogJ0FXU0NVUlJFTlQnLFxuICB9KS5wcm9taXNlKCk7XG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlLCBzZWNyZXQuU2VjcmV0U3RyaW5nISwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICByZXR1cm4gZmlsZTtcbn1cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJDQUE2QjtBQUM3Qiw2REFBNkQ7QUFDN0QsNkNBQStCO0FBRS9CLHdEQUEwQztBQUMxQyxpRUFBaUU7QUFDakUsaUNBQWtDO0FBRWxDLGlFQUFpRTtBQUNqRSxpQ0FBa0M7QUFFbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7QUFFaEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7QUFPekQsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFnQixFQUFFLFFBQXdCO0lBQ25FLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtRQUNoRCxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQy9DLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlC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S0FBSyxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQjtRQUNyRCxZQUFZLEVBQUUsWUFBWTtLQUMzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDYixNQUFNLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0ICogYXMgYXdzIGZyb20gJ2F3cy1zZGsnO1xuXG5pbXBvcnQgKiBhcyBjZm4gZnJvbSAnLi9fY2xvdWQtZm9ybWF0aW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX2V4ZWMgPSByZXF1aXJlKCcuL19leGVjJyk7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnLi9fbGFtYmRhJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgX3JtcmYgPSByZXF1aXJlKCcuL19ybXJmJyk7XG5cbmNvbnN0IG1rZHRlbXAgPSB1dGlsLnByb21pc2lmeShmcy5ta2R0ZW1wKTtcbmNvbnN0IHJlYWRGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuY29uc3Qgd3JpdGVGaWxlID0gdXRpbC5wcm9taXNpZnkoZnMud3JpdGVGaWxlKTtcblxuY29uc3Qgc2VjcmV0c01hbmFnZXIgPSBuZXcgYXdzLlNlY3JldHNNYW5hZ2VyKCk7XG5cbmV4cG9ydHMuaGFuZGxlciA9IGNmbi5jdXN0b21SZXNvdXJjZUhhbmRsZXIoaGFuZGxlRXZlbnQpO1xuXG5pbnRlcmZhY2UgUmVzb3VyY2VBdHRyaWJ1dGVzIGV4dGVuZHMgY2ZuLlJlc291cmNlQXR0cmlidXRlcyB7XG4gIENTUjogc3RyaW5nO1xuICBTZWxmU2lnbmVkQ2VydGlmaWNhdGU6IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQ6IGNmbi5FdmVudCwgX2NvbnRleHQ6IGxhbWJkYS5Db250ZXh0KTogUHJvbWlzZTxjZm4uUmVzb3VyY2VBdHRyaWJ1dGVzPiB7XG4gIGlmIChldmVudC5SZXF1ZXN0VHlwZSAhPT0gY2ZuLlJlcXVlc3RUeXBlLkRFTEVURSkge1xuICAgIGNmbi52YWxpZGF0ZVByb3BlcnRpZXMoZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLCB7XG4gICAgICBEbkNvbW1vbk5hbWU6IHRydWUsXG4gICAgICBEbkNvdW50cnk6IHRydWUsXG4gICAgICBEbkVtYWlsQWRkcmVzczogdHJ1ZSxcbiAgICAgIERuTG9jYWxpdHk6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbk5hbWU6IHRydWUsXG4gICAgICBEbk9yZ2FuaXphdGlvbmFsVW5pdE5hbWU6IHRydWUsXG4gICAgICBEblN0YXRlT3JQcm92aW5jZTogdHJ1ZSxcbiAgICAgIEV4dGVuZGVkS2V5VXNhZ2U6IGZhbHNlLFxuICAgICAgS2V5VXNhZ2U6IHRydWUsXG4gICAgICBQcml2YXRlS2V5U2VjcmV0SWQ6IHRydWUsXG4gICAgICBPdXRwdXRCdWNrZXQ6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBjZm4uUmVxdWVzdFR5cGUuQ1JFQVRFOlxuICAgIGNhc2UgY2ZuLlJlcXVlc3RUeXBlLlVQREFURTpcbiAgICAgIHJldHVybiBfY3JlYXRlU2VsZlNpZ25lZENlcnRpZmljYXRlKGV2ZW50KTtcbiAgICBjYXNlIGNmbi5SZXF1ZXN0VHlwZS5ERUxFVEU6XG4gICAgLy8gTm90aGluZyB0byBkbyAtIHRoaXMgaXMgbm90IGEgXCJQaHlzaWNhbFwiIHJlc291cmNlXG4gICAgICByZXR1cm4geyBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIH07XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gX2NyZWF0ZVNlbGZTaWduZWRDZXJ0aWZpY2F0ZShldmVudDogY2ZuLkV2ZW50KTogUHJvbWlzZTxSZXNvdXJjZUF0dHJpYnV0ZXM+IHtcbiAgY29uc3QgdGVtcERpciA9IGF3YWl0IG1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAneDUwOUNTUi0nKSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IF9tYWtlQ3NyQ29uZmlnKGV2ZW50LCB0ZW1wRGlyKTtcbiAgICBjb25zdCBwa2V5RmlsZSA9IGF3YWl0IF9yZXRyaWV2ZVByaXZhdGVLZXkoZXZlbnQsIHRlbXBEaXIpO1xuICAgIGNvbnN0IGNzckZpbGUgPSBwYXRoLmpvaW4odGVtcERpciwgJ2Nzci5wZW0nKTtcbiAgICBhd2FpdCBfZXhlYygnL29wdC9vcGVuc3NsJywgJ3JlcScsICctY29uZmlnJywgY29uZmlnRmlsZSxcbiAgICAgICcta2V5JywgcGtleUZpbGUsXG4gICAgICAnLW91dCcsIGNzckZpbGUsXG4gICAgICAnLW5ldycpO1xuICAgIGNvbnN0IGNlcnRGaWxlID0gcGF0aC5qb2luKHRlbXBEaXIsICdjZXJ0LnBlbScpO1xuICAgIGF3YWl0IF9leGVjKCcvb3B0L29wZW5zc2wnLCAneDUwOScsICctaW4nLCBjc3JGaWxlLFxuICAgICAgJy1vdXQnLCBjZXJ0RmlsZSxcbiAgICAgICctcmVxJyxcbiAgICAgICctc2lnbmtleScsIHBrZXlGaWxlLFxuICAgICAgJy1kYXlzJywgJzM2NScpO1xuXG4gICAgY29uc3QgczMgPSBuZXcgYXdzLlMzKCk7XG4gICAgY29uc3QgYnVja2V0TmFtZTogc3RyaW5nID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLk91dHB1dEJ1Y2tldDtcbiAgICBhd2FpdCBzMy5wdXRPYmplY3Qoe1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgS2V5OiAnY2VydGlmaWNhdGUtc2lnbmluZy1yZXF1ZXN0LnBlbScsXG4gICAgICBCb2R5OiBhd2FpdCByZWFkRmlsZShjc3JGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3gtcGVtLWZpbGUnLFxuICAgIH0pLnByb21pc2UoKTtcbiAgICBhd2FpdCBzMy5wdXRPYmplY3Qoe1xuICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgS2V5OiAnc2VsZi1zaWduZWQtY2VydGlmaWNhdGUucGVtJyxcbiAgICAgIEJvZHk6IGF3YWl0IHJlYWRGaWxlKGNlcnRGaWxlLCB7IGVuY29kaW5nOiAndXRmOCcgfSksXG4gICAgICBDb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3gtcGVtLWZpbGUnLFxuICAgIH0pLnByb21pc2UoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBSZWY6IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkLFxuICAgICAgQ1NSOiBgczM6Ly8ke2J1Y2tldE5hbWV9L2NlcnRpZmljYXRlLXNpZ25pbmctcmVxdWVzdC5wZW1gLFxuICAgICAgU2VsZlNpZ25lZENlcnRpZmljYXRlOiBgczM6Ly8ke2J1Y2tldE5hbWV9L3NlbGYtc2lnbmVkLWNlcnRpZmljYXRlLnBlbWAsXG4gICAgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBfcm1yZih0ZW1wRGlyKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBfbWFrZUNzckNvbmZpZyhldmVudDogY2ZuLkV2ZW50LCBkaXI6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4oZGlyLCAnY3NyLmNvbmZpZycpO1xuICBhd2FpdCB3cml0ZUZpbGUoZmlsZSwgW1xuICAgICdbIHJlcSBdJyxcbiAgICAnZGVmYXVsdF9tZCAgICAgICAgICAgPSBzaGEyNTYnLFxuICAgICdkaXN0aW5ndWlzaGVkX25hbWUgICA9IGRuJyxcbiAgICAncHJvbXB0ICAgICAgICAgICAgICAgPSBubycsXG4gICAgJ3JlcV9leHRlbnNpb25zICAgICAgID0gZXh0ZW5zaW9ucycsXG4gICAgJ3N0cmluZ19tYXNrICAgICAgICAgID0gdXRmOG9ubHknLFxuICAgICd1dGY4ICAgICAgICAgICAgICAgICA9IHllcycsXG4gICAgJycsXG4gICAgJ1sgZG4gXScsXG4gICAgYENOICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db21tb25OYW1lfWAsXG4gICAgYEMgICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Db3VudHJ5fWAsXG4gICAgYFNUICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5TdGF0ZU9yUHJvdmluY2V9YCxcbiAgICBgTCAgICAgICAgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5EbkxvY2FsaXR5fWAsXG4gICAgYE8gICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25OYW1lfWAsXG4gICAgYE9VICAgICAgICAgICAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5Pcmdhbml6YXRpb25hbFVuaXROYW1lfWAsXG4gICAgYGVtYWlsQWRkcmVzcyAgICAgICAgID0gJHtldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRG5FbWFpbEFkZHJlc3N9YCxcbiAgICAnJyxcbiAgICAnWyBleHRlbnNpb25zIF0nLFxuICAgIGBleHRlbmRlZEtleVVzYWdlICAgICA9ICR7ZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkV4dGVuZGVkS2V5VXNhZ2V9YCxcbiAgICBga2V5VXNhZ2UgICAgICAgICAgICAgPSAke2V2ZW50LlJlc291cmNlUHJvcGVydGllcy5LZXlVc2FnZX1gLFxuICAgICdzdWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gnLFxuICBdLmpvaW4oJ1xcbicpLCB7IGVuY29kaW5nOiAndXRmOCcgfSk7XG4gIHJldHVybiBmaWxlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBfcmV0cmlldmVQcml2YXRlS2V5KGV2ZW50OiBjZm4uRXZlbnQsIGRpcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXIsICdwcml2YXRlX2tleS5wZW0nKTtcbiAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgc2VjcmV0c01hbmFnZXIuZ2V0U2VjcmV0VmFsdWUoe1xuICAgIFNlY3JldElkOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuUHJpdmF0ZUtleVNlY3JldElkLFxuICAgIFZlcnNpb25TdGFnZTogJ0FXU0NVUlJFTlQnLFxuICB9KS5wcm9taXNlKCk7XG4gIGF3YWl0IHdyaXRlRmlsZShmaWxlLCBzZWNyZXQuU2VjcmV0U3RyaW5nISwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuICByZXR1cm4gZmlsZTtcbn1cbiJdfQ==
|
|
@@ -38,6 +38,7 @@ async function handleEvent(event: cfn.Event, _context: lambda.Context): Promise<
|
|
|
38
38
|
ExtendedKeyUsage: false,
|
|
39
39
|
KeyUsage: true,
|
|
40
40
|
PrivateKeySecretId: true,
|
|
41
|
+
OutputBucket: true,
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
44
|
|
|
@@ -67,10 +68,26 @@ async function _createSelfSignedCertificate(event: cfn.Event): Promise<ResourceA
|
|
|
67
68
|
'-req',
|
|
68
69
|
'-signkey', pkeyFile,
|
|
69
70
|
'-days', '365');
|
|
71
|
+
|
|
72
|
+
const s3 = new aws.S3();
|
|
73
|
+
const bucketName: string = event.ResourceProperties.OutputBucket;
|
|
74
|
+
await s3.putObject({
|
|
75
|
+
Bucket: bucketName,
|
|
76
|
+
Key: 'certificate-signing-request.pem',
|
|
77
|
+
Body: await readFile(csrFile, { encoding: 'utf8' }),
|
|
78
|
+
ContentType: 'application/x-pem-file',
|
|
79
|
+
}).promise();
|
|
80
|
+
await s3.putObject({
|
|
81
|
+
Bucket: bucketName,
|
|
82
|
+
Key: 'self-signed-certificate.pem',
|
|
83
|
+
Body: await readFile(certFile, { encoding: 'utf8' }),
|
|
84
|
+
ContentType: 'application/x-pem-file',
|
|
85
|
+
}).promise();
|
|
86
|
+
|
|
70
87
|
return {
|
|
71
88
|
Ref: event.LogicalResourceId,
|
|
72
|
-
CSR:
|
|
73
|
-
SelfSignedCertificate:
|
|
89
|
+
CSR: `s3://${bucketName}/certificate-signing-request.pem`,
|
|
90
|
+
SelfSignedCertificate: `s3://${bucketName}/self-signed-certificate.pem`,
|
|
74
91
|
};
|
|
75
92
|
} finally {
|
|
76
93
|
await _rmrf(tempDir);
|