aws-delivlib 13.6.2 → 13.7.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.
- 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 +129 -16
- package/cdk.out/tree.json +228 -2
- 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 +11 -11
- package/lib/pipeline.d.ts +1 -0
- package/lib/pipeline.js +7 -1
- package/lib/pipeline.ts +7 -0
- package/package.json +5 -4
package/cdk.out/tree.json
CHANGED
|
@@ -9259,7 +9259,7 @@
|
|
|
9259
9259
|
"aws:cdk:cloudformation:props": {
|
|
9260
9260
|
"code": {
|
|
9261
9261
|
"s3Bucket": "cdk-hnb659fds-assets-712950704752-us-east-1",
|
|
9262
|
-
"s3Key": "
|
|
9262
|
+
"s3Key": "0ff875115bf3a3ba9f32946b1f2b9b153553ecba0e511c42ac11bef064968c40.zip"
|
|
9263
9263
|
},
|
|
9264
9264
|
"role": {
|
|
9265
9265
|
"Fn::GetAtt": [
|
|
@@ -9642,6 +9642,165 @@
|
|
|
9642
9642
|
"version": "1.146.0"
|
|
9643
9643
|
}
|
|
9644
9644
|
},
|
|
9645
|
+
"Bucket": {
|
|
9646
|
+
"id": "Bucket",
|
|
9647
|
+
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Bucket",
|
|
9648
|
+
"children": {
|
|
9649
|
+
"Resource": {
|
|
9650
|
+
"id": "Resource",
|
|
9651
|
+
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Bucket/Resource",
|
|
9652
|
+
"attributes": {
|
|
9653
|
+
"aws:cdk:cloudformation:type": "AWS::S3::Bucket",
|
|
9654
|
+
"aws:cdk:cloudformation:props": {
|
|
9655
|
+
"bucketEncryption": {
|
|
9656
|
+
"serverSideEncryptionConfiguration": [
|
|
9657
|
+
{
|
|
9658
|
+
"serverSideEncryptionByDefault": {
|
|
9659
|
+
"sseAlgorithm": "AES256"
|
|
9660
|
+
}
|
|
9661
|
+
}
|
|
9662
|
+
]
|
|
9663
|
+
},
|
|
9664
|
+
"tags": [
|
|
9665
|
+
{
|
|
9666
|
+
"key": "aws-cdk:auto-delete-objects",
|
|
9667
|
+
"value": "true"
|
|
9668
|
+
}
|
|
9669
|
+
]
|
|
9670
|
+
}
|
|
9671
|
+
},
|
|
9672
|
+
"constructInfo": {
|
|
9673
|
+
"fqn": "monocdk.aws_s3.CfnBucket",
|
|
9674
|
+
"version": "1.146.0"
|
|
9675
|
+
}
|
|
9676
|
+
},
|
|
9677
|
+
"Policy": {
|
|
9678
|
+
"id": "Policy",
|
|
9679
|
+
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Bucket/Policy",
|
|
9680
|
+
"children": {
|
|
9681
|
+
"Resource": {
|
|
9682
|
+
"id": "Resource",
|
|
9683
|
+
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Bucket/Policy/Resource",
|
|
9684
|
+
"attributes": {
|
|
9685
|
+
"aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
|
|
9686
|
+
"aws:cdk:cloudformation:props": {
|
|
9687
|
+
"bucket": {
|
|
9688
|
+
"Ref": "X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261"
|
|
9689
|
+
},
|
|
9690
|
+
"policyDocument": {
|
|
9691
|
+
"Statement": [
|
|
9692
|
+
{
|
|
9693
|
+
"Action": "s3:*",
|
|
9694
|
+
"Condition": {
|
|
9695
|
+
"Bool": {
|
|
9696
|
+
"aws:SecureTransport": "false"
|
|
9697
|
+
}
|
|
9698
|
+
},
|
|
9699
|
+
"Effect": "Deny",
|
|
9700
|
+
"Principal": {
|
|
9701
|
+
"AWS": "*"
|
|
9702
|
+
},
|
|
9703
|
+
"Resource": [
|
|
9704
|
+
{
|
|
9705
|
+
"Fn::GetAtt": [
|
|
9706
|
+
"X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261",
|
|
9707
|
+
"Arn"
|
|
9708
|
+
]
|
|
9709
|
+
},
|
|
9710
|
+
{
|
|
9711
|
+
"Fn::Join": [
|
|
9712
|
+
"",
|
|
9713
|
+
[
|
|
9714
|
+
{
|
|
9715
|
+
"Fn::GetAtt": [
|
|
9716
|
+
"X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261",
|
|
9717
|
+
"Arn"
|
|
9718
|
+
]
|
|
9719
|
+
},
|
|
9720
|
+
"/*"
|
|
9721
|
+
]
|
|
9722
|
+
]
|
|
9723
|
+
}
|
|
9724
|
+
]
|
|
9725
|
+
},
|
|
9726
|
+
{
|
|
9727
|
+
"Action": [
|
|
9728
|
+
"s3:GetBucket*",
|
|
9729
|
+
"s3:List*",
|
|
9730
|
+
"s3:DeleteObject*"
|
|
9731
|
+
],
|
|
9732
|
+
"Effect": "Allow",
|
|
9733
|
+
"Principal": {
|
|
9734
|
+
"AWS": {
|
|
9735
|
+
"Fn::GetAtt": [
|
|
9736
|
+
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
|
|
9737
|
+
"Arn"
|
|
9738
|
+
]
|
|
9739
|
+
}
|
|
9740
|
+
},
|
|
9741
|
+
"Resource": [
|
|
9742
|
+
{
|
|
9743
|
+
"Fn::GetAtt": [
|
|
9744
|
+
"X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261",
|
|
9745
|
+
"Arn"
|
|
9746
|
+
]
|
|
9747
|
+
},
|
|
9748
|
+
{
|
|
9749
|
+
"Fn::Join": [
|
|
9750
|
+
"",
|
|
9751
|
+
[
|
|
9752
|
+
{
|
|
9753
|
+
"Fn::GetAtt": [
|
|
9754
|
+
"X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261",
|
|
9755
|
+
"Arn"
|
|
9756
|
+
]
|
|
9757
|
+
},
|
|
9758
|
+
"/*"
|
|
9759
|
+
]
|
|
9760
|
+
]
|
|
9761
|
+
}
|
|
9762
|
+
]
|
|
9763
|
+
}
|
|
9764
|
+
],
|
|
9765
|
+
"Version": "2012-10-17"
|
|
9766
|
+
}
|
|
9767
|
+
}
|
|
9768
|
+
},
|
|
9769
|
+
"constructInfo": {
|
|
9770
|
+
"fqn": "monocdk.aws_s3.CfnBucketPolicy",
|
|
9771
|
+
"version": "1.146.0"
|
|
9772
|
+
}
|
|
9773
|
+
}
|
|
9774
|
+
},
|
|
9775
|
+
"constructInfo": {
|
|
9776
|
+
"fqn": "monocdk.aws_s3.BucketPolicy",
|
|
9777
|
+
"version": "1.146.0"
|
|
9778
|
+
}
|
|
9779
|
+
},
|
|
9780
|
+
"AutoDeleteObjectsCustomResource": {
|
|
9781
|
+
"id": "AutoDeleteObjectsCustomResource",
|
|
9782
|
+
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Bucket/AutoDeleteObjectsCustomResource",
|
|
9783
|
+
"children": {
|
|
9784
|
+
"Default": {
|
|
9785
|
+
"id": "Default",
|
|
9786
|
+
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Bucket/AutoDeleteObjectsCustomResource/Default",
|
|
9787
|
+
"constructInfo": {
|
|
9788
|
+
"fqn": "monocdk.CfnResource",
|
|
9789
|
+
"version": "1.146.0"
|
|
9790
|
+
}
|
|
9791
|
+
}
|
|
9792
|
+
},
|
|
9793
|
+
"constructInfo": {
|
|
9794
|
+
"fqn": "monocdk.CustomResource",
|
|
9795
|
+
"version": "1.146.0"
|
|
9796
|
+
}
|
|
9797
|
+
}
|
|
9798
|
+
},
|
|
9799
|
+
"constructInfo": {
|
|
9800
|
+
"fqn": "monocdk.aws_s3.Bucket",
|
|
9801
|
+
"version": "1.146.0"
|
|
9802
|
+
}
|
|
9803
|
+
},
|
|
9645
9804
|
"Resource": {
|
|
9646
9805
|
"id": "Resource",
|
|
9647
9806
|
"path": "delivlib-test/X509CodeSigningKey/RSAPrivateKey/CertificateSigningRequest/Resource",
|
|
@@ -9970,6 +10129,39 @@
|
|
|
9970
10129
|
"aws:cdk:cloudformation:props": {
|
|
9971
10130
|
"policyDocument": {
|
|
9972
10131
|
"Statement": [
|
|
10132
|
+
{
|
|
10133
|
+
"Action": [
|
|
10134
|
+
"s3:GetObject*",
|
|
10135
|
+
"s3:GetBucket*",
|
|
10136
|
+
"s3:List*",
|
|
10137
|
+
"s3:DeleteObject*",
|
|
10138
|
+
"s3:PutObject*",
|
|
10139
|
+
"s3:Abort*"
|
|
10140
|
+
],
|
|
10141
|
+
"Effect": "Allow",
|
|
10142
|
+
"Resource": [
|
|
10143
|
+
{
|
|
10144
|
+
"Fn::GetAtt": [
|
|
10145
|
+
"X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261",
|
|
10146
|
+
"Arn"
|
|
10147
|
+
]
|
|
10148
|
+
},
|
|
10149
|
+
{
|
|
10150
|
+
"Fn::Join": [
|
|
10151
|
+
"",
|
|
10152
|
+
[
|
|
10153
|
+
{
|
|
10154
|
+
"Fn::GetAtt": [
|
|
10155
|
+
"X509CodeSigningKeyRSAPrivateKeyCertificateSigningRequestBucketD81FB261",
|
|
10156
|
+
"Arn"
|
|
10157
|
+
]
|
|
10158
|
+
},
|
|
10159
|
+
"/*"
|
|
10160
|
+
]
|
|
10161
|
+
]
|
|
10162
|
+
}
|
|
10163
|
+
]
|
|
10164
|
+
},
|
|
9973
10165
|
{
|
|
9974
10166
|
"Action": "secretsmanager:GetSecretValue",
|
|
9975
10167
|
"Effect": "Allow",
|
|
@@ -10042,7 +10234,7 @@
|
|
|
10042
10234
|
"aws:cdk:cloudformation:props": {
|
|
10043
10235
|
"code": {
|
|
10044
10236
|
"s3Bucket": "cdk-hnb659fds-assets-712950704752-us-east-1",
|
|
10045
|
-
"s3Key": "
|
|
10237
|
+
"s3Key": "9012a4bd6eb36f7ec4fec65ce817435d9b8dda297c62e87163a773c7d25c60a9.zip"
|
|
10046
10238
|
},
|
|
10047
10239
|
"role": {
|
|
10048
10240
|
"Fn::GetAtt": [
|
|
@@ -10072,6 +10264,40 @@
|
|
|
10072
10264
|
"version": "1.146.0"
|
|
10073
10265
|
}
|
|
10074
10266
|
},
|
|
10267
|
+
"Custom::S3AutoDeleteObjectsCustomResourceProvider": {
|
|
10268
|
+
"id": "Custom::S3AutoDeleteObjectsCustomResourceProvider",
|
|
10269
|
+
"path": "delivlib-test/Custom::S3AutoDeleteObjectsCustomResourceProvider",
|
|
10270
|
+
"children": {
|
|
10271
|
+
"Staging": {
|
|
10272
|
+
"id": "Staging",
|
|
10273
|
+
"path": "delivlib-test/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging",
|
|
10274
|
+
"constructInfo": {
|
|
10275
|
+
"fqn": "monocdk.AssetStaging",
|
|
10276
|
+
"version": "1.146.0"
|
|
10277
|
+
}
|
|
10278
|
+
},
|
|
10279
|
+
"Role": {
|
|
10280
|
+
"id": "Role",
|
|
10281
|
+
"path": "delivlib-test/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role",
|
|
10282
|
+
"constructInfo": {
|
|
10283
|
+
"fqn": "monocdk.CfnResource",
|
|
10284
|
+
"version": "1.146.0"
|
|
10285
|
+
}
|
|
10286
|
+
},
|
|
10287
|
+
"Handler": {
|
|
10288
|
+
"id": "Handler",
|
|
10289
|
+
"path": "delivlib-test/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler",
|
|
10290
|
+
"constructInfo": {
|
|
10291
|
+
"fqn": "monocdk.CfnResource",
|
|
10292
|
+
"version": "1.146.0"
|
|
10293
|
+
}
|
|
10294
|
+
}
|
|
10295
|
+
},
|
|
10296
|
+
"constructInfo": {
|
|
10297
|
+
"fqn": "monocdk.CustomResourceProvider",
|
|
10298
|
+
"version": "1.146.0"
|
|
10299
|
+
}
|
|
10300
|
+
},
|
|
10075
10301
|
"CodeSign-CMK": {
|
|
10076
10302
|
"id": "CodeSign-CMK",
|
|
10077
10303
|
"path": "delivlib-test/CodeSign-CMK",
|
|
@@ -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==
|