Skip to content

Commit 6356e72

Browse files
authored
Merge pull request #7 from SignPath/slsa-attestations
adds slsa attestations page
2 parents b6cb055 + 70432da commit 6356e72

21 files changed

Lines changed: 520 additions & 3 deletions

File tree

docs/_data/menus/documentation.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@
5757
- text: Origin Verification
5858
path: origin-verification
5959

60+
- text: SLSA Attestations
61+
path: slsa-attestations
62+
items:
63+
- text: Definitions
64+
path: definitions
65+
6066
- separator: true
6167

6268
- text: PowerShell cmdlets

docs/_data/tables/artifact-configuration.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ signing-file-elements:
22
headers:
33
element: Element
44
isComposite: "[Container format](#containers)"
5-
directive: Signing directives
5+
directive: Directives
66
extensions: Extensions
77
description: Description
88
_attributes:
@@ -87,9 +87,11 @@ signing-file-elements:
8787
description: "Debian package files (available for Advanced Code Signing)"
8888
- element: "[`<zip-file>`](syntax#zip-file-element)"
8989
isComposite: "Yes"
90-
directive: "[`<jar-sign>`](#jar-sign)"
90+
directive: |
91+
[`<jar-sign>`](#jar-sign)
92+
[`<create-provenance-file>`](#create-provenance-file)
9193
extensions: ".zip"
92-
description: "Use ZIP archives to sign multiple files at once. (ZIP archives can also be signed and verified using the [JAR format](#jar-sign).)"
94+
description: "Use ZIP archives to sign multiple files at once or to add additional files, like [SLSA provenance attestations](#create-provenance-file) (ZIP archives can also be signed and verified using the [JAR format](#jar-sign).)"
9395
- element: "`<office-oxml-file>`"
9496
isComposite: "No"
9597
directive: "[`<office-macro-sign>`](#office-macro-sign)"
@@ -129,6 +131,12 @@ signing-file-elements:
129131
Create enveloped signatures ([DSSE](#dsse-sign) or [S/MIME](#smime-sign))
130132
and detached signatures ([CMS/PKCS #7](#create-cms-signature), [GPG/OpenPGP](#create-gpg-signature), [raw](#create-raw-signature))
131133
for arbitrary files (available for Advanced Code Signing).
134+
- element: "*"
135+
isComposite: "No"
136+
directive: "[`<include-in-provenance>`](#create-provenance-file)"
137+
extensions: "*"
138+
description: |
139+
A reference to any file can be included in a provenance created by the [`<create-provenance-file>`](#create-provenance-file) directive.
132140
133141
signing-method-categories:
134142
headers:

docs/_sass/resources.scss

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,19 @@ main > section.resources-section {
192192
}
193193
}
194194

195+
blockquote.quote {
196+
background: $light-grey-background-color;
197+
border-left: 10px solid $blockquote-line-color;
198+
margin: 1.5em 10px;
199+
padding: 0.5em 10px;
200+
quotes: "\201C""\201D""\2018""\2019";
201+
font-style: italic;
202+
203+
& > p {
204+
margin: 0px;
205+
}
206+
}
207+
195208
/** HIGHLIGHTS **/
196209
blockquote.panel {
197210
border: 1px solid $grey-border-color;

docs/artifact-configuration/reference.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,88 @@ The restrictions can be applied to file elements, [file set elements](syntax#fil
749749
| `<msi-file>` | MSI properties: `subject`, `author` | [MSI file restrictions](examples#msi-and-pe-restriction)
750750
| `<xml-file>` | Root element name and namespace: `root-element-name`, `root-element-namespace` | [SBOM restrictions](examples#sbom-restriction)
751751

752+
## SLSA attestations {#create-provenance-file}
753+
754+
SignPath can create SLSA attestations for any of the supported build systems. See the [definition](/origin-verification/slsa-attestations) for more details.
755+
756+
Creating a SLSA attestation requires multiple directives:
757+
758+
* `<include-in-provenance>` to include a reference to a file in the generated provenance.
759+
* `<create-provenance-file>` inside a root level `<zip-file>` to create a SLSA provenance.
760+
* `<create-verification-summary-file>` to create a SLSA verification summary.
761+
* `<create-attestation-signature>` to sign the provenance and turn them into a SLSA attestation or SLSA verification summary attestation (VSA).
762+
763+
The parameters for all these directives, except `<include-in-provenance>`, which does not have any, are listed below.
764+
765+
766+
| Directive | Parameter | Description
767+
|----------- |----------- |-------------------------------------------------
768+
| `<create-provenance-file>` | `output-file-name` | Name of the output file to hold the provenance information.
769+
| `<create-verification-summary-file>` | `output-file-name` | Name of the output file to hold the verification summary information.
770+
| `<create-attestation-signature>` | `type` | The signature type. Currently supported are [`cms`](#create-cms-signature) and [`dsse`](#dsse-sign).
771+
| `<create-attestation-signature>` | `output-file-name` | Name of the output file to hold the attestation signature.
772+
773+
#### Example
774+
775+
~~~ xml
776+
<artifact-configuration xmlns="http://signpath.io/artifact-configuration/v1">
777+
<zip-file>
778+
<pe-file path="myApp.exe">
779+
<include-in-provenance />
780+
</pe-file>
781+
<create-provenance-file output-file-name="slsa-attestation.in-toto.jsonl">
782+
<create-attestation-signature type="cms" output-file-name="${file.name}.cms.pem" />
783+
<create-verification-summary-file output-file-name="slsa-vsa.json">
784+
<create-attestation-signature type="dsse" output-file-name="slsa-vsa.dsse.json" />
785+
</create-verification-summary-file>
786+
</create-provenance-file>
787+
</zip-file>
788+
</artifact-configuration>
789+
~~~
790+
791+
#### Verification of SLSA verification summaries (VSA) {#slsa-vsa-verification}
792+
793+
To verify a SLSA verification summary attestation (VSA), you need:
794+
795+
* The verification summary attestation file (e.g. `slsa-vsa.dsse.json` in the example above)
796+
* The attestation signer certificate. For SLSA attestations created by SignPath, you can download [SignPath_SLSA.pem] for fully supported systems and [SignPath_SLSA-Beta.pem], which is a self-signed certificate, for all systems with preview support (See the [definition](/origin-verification/slsa-attestations) for a list of all supported systems).
797+
* The publisher certificate
798+
799+
{:.panel.info}
800+
> **`resource-uri`**
801+
>
802+
> SLSA specifies a `resource-uri` field with the intention of allowing a consumer to ensure that the software artifact was obtained from a trusted source. SignPath populates this field with information from the publisher certificate, in the form of
803+
>
804+
> `urn:x-software-publisher:verified=<true|false>;certificate-fingerprint=<publisher-cert-fingerprint>;subject=<publisher-cert-subject>`
805+
>
806+
> The values are defined as follows:
807+
> * `verified`: `true` if the publisher certificate was issued by a trusted certificate authority (CA)
808+
> * `certificate-fingerprint`: The SHA-1 fingerprint of the X.509 publisher certificate.
809+
> * `subject`: The subject of the X.509 publisher certificate.
810+
811+
To verify the verification summary attestation, the official [slsa-verifier](https://github.com/slsa-framework/slsa-verifier) tool can be used:
812+
813+
The following steps are required to verify a SLSA provenance attestation generated by SignPath:
814+
815+
~~~bash
816+
# 1. Verify the Attestation Signer certificate
817+
## on Windows
818+
certutil -verify SignPath_SLSA.pem
819+
## on Linux
820+
openssl verify -untrusted SignPath_SLSA.pem SignPath_SLSA.pem
821+
822+
# 2. Extract the public key of the Attestation Signer certificate
823+
openssl x509 -pubkey -noout -in SignPath_SLSA.pem > SignPath_SLSA.pubkey.pem
824+
825+
# 3. Verify the SLSA verification summary attestation
826+
slsa-verifier verify-vsa \
827+
--subject-digest "sha256:$artifactHash" \
828+
--attestation-path /path/to/slsa-vsa.dsse.json \
829+
--verifier-id https://signpath.io \
830+
--public-key-path SignPath_SLSA.pubkey.pem \
831+
--resource-uri "urn:x-software-publisher:verified=true;certificate-fingerprint=$publisherFingerprint;subject=$publisherSubject" \
832+
--verified-level SLSA_BUILD_LEVEL_3
833+
~~~
752834

753835
**Footnotes:**
754836

@@ -757,3 +839,5 @@ The restrictions can be applied to file elements, [file set elements](syntax#fil
757839
[DSSE]: https://github.com/secure-systems-lab/dsse
758840
[RFC 5652]: https://datatracker.ietf.org/doc/html/rfc5652
759841
[Secure Systems Lab]: https://ssl.engineering.nyu.edu/
842+
[SignPath_SLSA.pem]: /assets/other/SignPath_SLSA.pem
843+
[SignPath_SLSA-Beta.pem]: /assets/other/SignPath_SLSA-Beta.pem
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIF1TCCA72gAwIBAgIJAJ1gIqQz7KIdMA0GCSqGSIb3DQEBCwUAMIGPMQ8wDQYD
3+
VQQHEwZWaWVubmExDzANBgNVBAgTBlZpZW5uYTELMAkGA1UEBhMCQVQxGjAYBgNV
4+
BAsTEVNMU0EgQXR0ZXN0YXRpb25zMRYwFAYDVQQKEw1TaWduUGF0aCBHbWJIMSow
5+
KAYDVQQDEyFTaWduUGF0aCBTTFNBIEF0dGVzdGF0aW9ucyAoQmV0YSkwHhcNMjUx
6+
MTA1MDAwMDAwWhcNMjgxMTA1MDAwMDAwWjCBjzEPMA0GA1UEBxMGVmllbm5hMQ8w
7+
DQYDVQQIEwZWaWVubmExCzAJBgNVBAYTAkFUMRowGAYDVQQLExFTTFNBIEF0dGVz
8+
dGF0aW9uczEWMBQGA1UEChMNU2lnblBhdGggR21iSDEqMCgGA1UEAxMhU2lnblBh
9+
dGggU0xTQSBBdHRlc3RhdGlvbnMgKEJldGEpMIICIjANBgkqhkiG9w0BAQEFAAOC
10+
Ag8AMIICCgKCAgEAuOrYgOVstvmTUyw0AGHIYV6MMIy3CLBdjbiqjtKUsT57j2nw
11+
7EemW7IHe+c8EQPH2TZHPtnYpjn5iTFnj0JWbtUziceb6pQeOCPqOlUrpT0UCBiT
12+
4l4VtN4gXptTq/5BYqLC/dKzcEIk5ppeG98f6ENFQHyG0GhrwK/MO2bszzgWmrS9
13+
Uf0Z918PauEzcwpzp5G4I0bvBwBkW59q7E951IMX7P0bANNT/6kSccEWyD4KbZdN
14+
SbCyV05CUcHcsVhNJimV4/WD/msZ8klzE1nG4BgFism6rAPk22zXvzWN7Gh+VxiY
15+
yXrIVS+iA2eWmJ8oza3iKoB8uFJF2pr8PL6dJv6s8VaR1vW3C/0V3hYxdVL2IKrY
16+
ZaKUbYxN3pbSx8qAzWtvfayWwesKjcqjzq2ZxvUW4JrvyUtVLaRHMOg+g9rzwVrs
17+
BQApUOrnzM6viXYaMwGatN+uv9XpMATky/G2bgNjwBrM+50/OzyjD5aoER7UJu/3
18+
aHQBGN838W7KfwiFs2TcJCP+Z9qyBEtEUxQ2a06D76UDgTfzMcgp0pkuK94dkvyL
19+
/pps1MlrkaEeCn7np+RBdx/ScJUOR6F9LKLCy1epFGnVT0hHueOgmrPkJyQQO5uB
20+
h1rR0/6Igrd4jUCe4NTDL2V1m1zVkQTZzaU+fUMTyWx8IL6Z7stZvxp667UCAwEA
21+
AaMyMDAwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
22+
BQUHAwMwDQYJKoZIhvcNAQELBQADggIBADO+i0aP2XkAXEeNMwHOQs58yGy5G1wG
23+
k6KgfMbsYE5lqF33xSlXyThfRnMKIcAavAY97tlXyJTcRgH/ec/Sg8mxlZS86vHt
24+
Rm07iXD/G9KDO7VLnZtiQOSmIa4rifP/yNZd0zAjJOvp6pI4NT1lJsGDFgovFIe4
25+
A5Y4gbrBlZXUfviDKP5BPHg5dNDb8wCSnpG2Cx3b1gpFPSJWZygQ3H/S6BXjIxDb
26+
Av/hP7EB61Uibn1B280XCVvDpPdb5IJNwLhlzOM+jXHIW2c65bTDqHz6degPO+XA
27+
lxrAjqlxQG1dSflgcfYRHBRnqsyFn2IJ5qvxOGhkpG+OBpQcdcOY/kvqmk239F/9
28+
CCecZXmRruoLylWBsIx0R8cXyTU4VCNYvr+vjg16P0q9u9fcWzlqDWdefTZWAdmc
29+
ZhGDqWSHb+awPMrMtC1mHr2xfi9m8SRE5gvzHAFVyEsDmpcoM+P0jErOwTj5W1Go
30+
Nqqo0tfMHt9ttcYfZGhC1GafCqA2X/4KPj4fTHixY/UkBMN6iwsi5ab5cGfdIjqX
31+
lI0c/JRux9Gnm7TEmWojPdPjIFhq7H9CieZ8qOLg4wluXq/x6qekfF6aKQThMPct
32+
hUAB92TIWBWgPt91MHzIERS03KPuCG48u4o/RLrVbOs0Ai24tdvi6CZiQwRJ3M3U
33+
2kxW+aJS1uzJ
34+
-----END CERTIFICATE-----
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIH1zCCBb+gAwIBAgIQCM0Pe34U/+ALMb37hATDZzANBgkqhkiG9w0BAQsFADBp
3+
MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMT
4+
OERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMjU2
5+
IDIwMjEgQ0ExMB4XDTI2MDMwMzAwMDAwMFoXDTI3MDMwMjIzNTk1OVowgd8xEzAR
6+
BgsrBgEEAYI3PAIBAxMCQVQxFTATBgsrBgEEAYI3PAIBAhMEV2llbjEVMBMGCysG
7+
AQQBgjc8AgEBEwRXaWVuMR0wGwYDVQQPDBRQcml2YXRlIE9yZ2FuaXphdGlvbjEQ
8+
MA4GA1UEBRMHNDc1NTA2ejELMAkGA1UEBhMCQVQxDTALBgNVBAcTBFdpZW4xFjAU
9+
BgNVBAoTDVNpZ25QYXRoIEdtYkgxHTAbBgNVBAsTFFNvZnR3YXJlIEF0dGVzdGF0
10+
aW9uMRYwFAYDVQQDEw1TaWduUGF0aCBHbWJIMIICIjANBgkqhkiG9w0BAQEFAAOC
11+
Ag8AMIICCgKCAgEAxbl80nXwyVpMtRumJ2a/880agLIs4ulE/LrUFujmuV+SRNsP
12+
znGvqKdCWY+kuE+pU4Vn9UnIaMvhsDGScMtjnQ0UzQHrNXo/fVO4Obdalvg76yVt
13+
yqn/LG+8uPaoLQch98RWj+KjE+5zNykpuKKqPGmVH0t2zLERcxGjUfqyUsY1nfUL
14+
Bk2rqjn/1kLVRjLM18P6ir1TAggeXjpBSvvYLSrAKMN7lxcaBawIkO+UEJggBfXv
15+
XEv6zu8KyFAyvuS0ByZ+cEgFTayhnnX5gNHaQIIdqinMpUnkl+7fswuyGxvu21ka
16+
nrf2tj3a5VRxf0BjWzCFPWvM4fwLfVMav5+R1RQiuL/cIZNCEeWc1Nr+VZlV9DO/
17+
xc2VcHMxBHJKiLFTokb1cD0+Cg3HhbnbUWVp72TZsEXJsWDeLzO0eOI3Mqo3ebkX
18+
2YYVwLqo5UxgDK/zBtV+U5sG/aotmgveCD90L3EfSGkcV6bLuqvHf8/vpp+P1SXw
19+
qj49LiQ0ild+JnrkQtggm2kLqHvY5KK+SdjfN8EpFv/eTqmD71nUsfk0X8Dl/Eq3
20+
bum0SHJJ+eZXh9bOg+NWPsxmbWVJbKqMv4SI0D5TAwtW6+csG5VMaI2ZHV5ucsY1
21+
8542hinFbSw88cXX4KwaDZqpPTVe2a1ceuchEkxRKe4nYsBm5FQmD96klYUCAwEA
22+
AaOCAgIwggH+MB8GA1UdIwQYMBaAFLxrImWdjGjm5h4F8dhyJdS44EjAMB0GA1Ud
23+
DgQWBBSD/YY30asY6Gi2bZNmtbwkwO9OhjA9BgNVHSAENjA0MDIGBWeBDAEDMCkw
24+
JwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAOBgNVHQ8B
25+
Af8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwgbUGA1UdHwSBrTCBqjBToFGg
26+
T4ZNaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29k
27+
ZVNpZ25pbmdSU0E0MDk2U0hBMjU2MjAyMUNBMS5jcmwwU6BRoE+GTWh0dHA6Ly9j
28+
cmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWduaW5nUlNB
29+
NDA5NlNIQTI1NjIwMjFDQTEuY3JsMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEF
30+
BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRw
31+
Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2ln
32+
bmluZ1JTQTQwOTZTSEEyNTYyMDIxQ0ExLmNydDAJBgNVHRMEAjAAMA0GCSqGSIb3
33+
DQEBCwUAA4ICAQCbjo7S3DVsHTAnrC2cQqZKbgdqNmbzmaPRA0NR2xmzYySHoCWR
34+
sxM29NqjlKjEMZ6uqBasb5LzfGs8PSgLg7vTjiP4hulr/pwficm3TRDAf2EKcP9M
35+
VQOrzE2T3vy95MMFGR5Mz8Xl43N7y5ErZj/KoU6WE/22TpFVgZY1TbZklIDE6MxM
36+
hlNCYsNmKLHeTBMinJSDzPT1lrxiPIMmHEVd11DzBRYzihXCgBitvE3Zapmi27el
37+
V4vaEogXuSJCApg7cYNFwWtSe/6viPTUymjxeyXASfrD1ZUD6LIZEETNObxtnJHv
38+
tK6/ohEDPh36ZcXDPWlLZq8T0+f7TEWffd4mzDVmOEVjJHSTRQs1HzDlSVtW6sDD
39+
/rGtfCbrPU103u30CBEWFsukwQ0eaelGTvQJa12Ah7fq8595SbzL+eYCZL2O2npE
40+
F1Hf65PUsbovNhctGj30fHrWL4UPowjJkJ8MGZy1S8lz6txaOlshWkhx1ADuibu2
41+
GNGypwmFDrZDsTBjExfy3svpbU5XtwZLEuMJHz2F87LXOZopa0JEGmJKTbK1jxur
42+
adI5Le7Fw3Glm0hk3hR2LYdI0HRmnINbtieRfA3ww+SpXeoZa0826iNwNz0RTwI0
43+
uZ1VLbigxtvrJVVMun4T6e6oNaiXdhgocd+nWlnmL9w6Vp3sALf/qJSBkQ==
44+
-----END CERTIFICATE-----
45+
-----BEGIN CERTIFICATE-----
46+
MIIGsDCCBJigAwIBAgIQDk1n9kMWySo7ehfMRpdqjzANBgkqhkiG9w0BAQsFADBi
47+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
48+
d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
49+
RzQwHhcNMjEwNzI4MDAwMDAwWhcNMzYwNzI3MjM1OTU5WjBpMQswCQYDVQQGEwJV
50+
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRy
51+
dXN0ZWQgRzQgQ29kZSBTaWduaW5nIFJTQTQwOTYgU0hBMjU2IDIwMjEgQ0ExMIIC
52+
IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri4MfdPvaOOECPqbDE3zNg/n
53+
sfM0MoNGVGJf6ogVscpox00cZPOiAXZwGLyPm/HmSxmNCDxKUqFWE1LIVTzCYcNt
54+
kqCv+MNCZoHxIY1mERdsU+sYYfADDDHpi10op0br0SrrrEuf6+uuXRxhpZ7xgopt
55+
T/WhDG3vqXjabJPsKCDcEsnElut6Nm8XHHV+CcnZpbwle4OCcnrgLerBEHu+iIEj
56+
gCts01n+1b1abmrFXzJ3aC/iXP/6HIqYs7sdAUU8C7WcLflXm3xzec6yltqyKEyx
57+
cvgdBMTapqmw7pkFrm8l56JYpctFHJtdyFsroL6lojC8yS3j5z05+SgaAjSMI8Qf
58+
al5WAy2Jii/EvnPZf1azgUvzYkfKgYEy5kA5c+3j9ZuKifb7EPp4pvkXHZJ6KzJh
59+
abuRgXqjObO9YtRk5LnZgvwHJ74T/vFTYO47h2wOqv/JaZd8K5/IAiSop/JTjlHB
60+
stkJfnAb6iH1UUKKgMhpNCpSkM9s2xzQQmZ44RGIRDs+AHm5lER4Z2OohQ+nMP/g
61+
UjvnouZ2XZuI+yn2EBbtRDkBr9YRru28bpsKNCALgFmNzoxR7rs6FaQBzEsgDj80
62+
u6F04YlFIQwp9U8iWTljWWMX+p8OJ7Q1LXAPQl/aSZmlf+WLXQcr8x0qU+v7Xi1T
63+
VSBZpvRMa0s941GE0WkCAwEAAaOCAVkwggFVMBIGA1UdEwEB/wQIMAYBAf8CAQAw
64+
HQYDVR0OBBYEFLxrImWdjGjm5h4F8dhyJdS44EjAMB8GA1UdIwQYMBaAFOzX44LS
65+
cV1kTN8uZz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEF
66+
BQcDAzB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRp
67+
Z2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQu
68+
Y29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYy
69+
aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5j
70+
cmwwHAYDVR0gBBUwEzAHBgVngQwBAzAIBgZngQwBBAEwDQYJKoZIhvcNAQELBQAD
71+
ggIBAEnyvKd58wdZXmcA+X7z6oYDbVHvIUfZ06j7ceH8uVBtYIDZHk5oVHGzVui4
72+
wx3D97fdWCqsFL+B59Z9jZcTPdrIlmstIiLkystVOrkyDRsOoiI/6O/nuvxOS+iS
73+
o+9MLMiU/rUB9YrzLL+USwFeIitwL4CRhdf+Zuar/NYsy1qU8cHV04pGIdie2mPK
74+
fLa5TqRhA1BElbYPcakAoWKx//O1B04BYiVAbU9dEr2n+pItB2/QzjaIm9tNbcry
75+
eXW8skjjVMp8AP6t/y9x0XchZ5pVbTABf/qVT3ffxsyzgyL7HyWgC/fVR7rbgVoX
76+
9Bw/GmHw/xidbZdYWBceThHp1mR2MJtbA6wr3l9c+FguOMF51v9QV45/nhGCQJLc
77+
nOgdM2wbz13Y7udRoF1pbBfDdBqyo1m9Ztl8NDyUnGp8+ujPUu+egIgPy3Z8hSCP
78+
bLKQNSMsgRSdcrX+Kd+OOzZKpDvH2EJwzNRqizJLL+luO4AKf8NKIlTXHFbGGaXh
79+
mNXB6PSUL2XobkwHmA9ZLV6AQ5G3S1gBMYnLBbbjEmuMYzWpT/4WWydXvGZGkCgw
80+
MqHKVHkOp4Rxy31w8JJBVyp2NTvdr5JXNlrb1U0dJU1Ie0bNkXxvw5vVvv0jhgSL
81+
d2cMpodm6dMlNU5TWt2QtLrUKtfNvcLKeF6wG2ayii6COsXo
82+
-----END CERTIFICATE-----
83+
-----BEGIN CERTIFICATE-----
84+
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
114+
-----END CERTIFICATE-----
File renamed without changes.

0 commit comments

Comments
 (0)