Skip to content

Commit e4b7b67

Browse files
authored
Merge pull request #10674 from Frauschi/cert_chain_fix
Fixes for OpenSSL compatibility layer
2 parents fb80740 + 5c1225e commit e4b7b67

18 files changed

Lines changed: 1027 additions & 12 deletions

certs/intermediate/include.am

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,18 @@ EXTRA_DIST += \
5050
certs/intermediate/ca_false_intermediate/test_int_not_cacert.pem \
5151
certs/intermediate/ca_false_intermediate/test_sign_bynoca_srv.pem \
5252
certs/intermediate/ca_false_intermediate/wolfssl_base.conf \
53-
certs/intermediate/ca_false_intermediate/wolfssl_srv.conf
53+
certs/intermediate/ca_false_intermediate/wolfssl_srv.conf \
54+
certs/intermediate/untrusted_anchor/gen_certs.sh \
55+
certs/intermediate/untrusted_anchor/root-ca-cert.pem \
56+
certs/intermediate/untrusted_anchor/root-ca-key.pem \
57+
certs/intermediate/untrusted_anchor/alt-ca-cert.pem \
58+
certs/intermediate/untrusted_anchor/alt-ca-key.pem \
59+
certs/intermediate/untrusted_anchor/int-ca-cert.pem \
60+
certs/intermediate/untrusted_anchor/int-ca-key.pem \
61+
certs/intermediate/untrusted_anchor/int-ca-tampered-cert.pem \
62+
certs/intermediate/untrusted_anchor/int-ca2-cert.pem \
63+
certs/intermediate/untrusted_anchor/int-ca2-key.pem \
64+
certs/intermediate/untrusted_anchor/leaf-cert.pem \
65+
certs/intermediate/untrusted_anchor/leaf-key.pem \
66+
certs/intermediate/untrusted_anchor/leaf-deep-cert.pem \
67+
certs/intermediate/untrusted_anchor/leaf-deep-key.pem
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDCjCCAfKgAwIBAgIJAJoLyjuEz+RhMA0GCSqGSIb3DQEBCwUAMDExLzAtBgNV
3+
BAMMJndvbGZTU0wgVW50cnVzdGVkLUFuY2hvciBUZXN0IEFsdCBSb290MCAXDTI2
4+
MDYwMzA3Mzk0OVoYDzIwNTYwNjAyMDczOTQ5WjAxMS8wLQYDVQQDDCZ3b2xmU1NM
5+
IFVudHJ1c3RlZC1BbmNob3IgVGVzdCBBbHQgUm9vdDCCASIwDQYJKoZIhvcNAQEB
6+
BQADggEPADCCAQoCggEBAKnZcJxZ45wE5i7AiCdA6KoNZNvFi/4JqWsi+oVNZqiH
7+
H3D7uN4xSJNgaRu41syWD+qiVTwtwGKNTn5h6oF1PiZYAO0/qUJiGD7XX3RJl2qX
8+
xINixqeJkasTzndr1aIb9fGXtu7A1Kq8lohc8KABv6N+EIpOlfo2mo+L4RoP5ejJ
9+
g6iCGtTJrAGXLDCfJtutN1ufVCnOvx1sci4UXdscUT/NryqKEMimkF9SyqlL4W9l
10+
SwnS3P619PXKeY8W6O6a2TDVGBr3kKOkoeXyEJH4vkqYLnS5XJk6GNeudFMEbkKD
11+
rbUTrpisEwy8QDpxwRSFDqDwyyFTOdyFnO/EybIzI0sCAwEAAaMjMCEwDwYDVR0T
12+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBAHO6
13+
Ye/rbzYKhAdY0q96M3JtIjIowsg0t7WlabOmf2qu3LijhPutJl7m3d+AAOau9lmz
14+
uvn8vS8awGcIUwe3C+9JMiGqmxbCrhe+UseMfKt+lOJ7qrXdyohhSjHgonfr8mxb
15+
G5UaoSJpNQPf8p667SiUcY6UP5WS9oSjSr01anRqi0WDSwjLPce3v7gv9ZjxNKS5
16+
ssWfj8mOSIjMEl2BKc49k3H+52pzzh63Wd7mD2aaUYplG/RkelyaunnIaM2wAR6i
17+
03TQk7G9RFnppp5UAeswOaS9GEnD3euufIaT55T1o5hJvI/BCzWuBGe+Edn7OXDo
18+
64g1iCxA+aeoQhRmXUQ=
19+
-----END CERTIFICATE-----
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEowIBAAKCAQEAqdlwnFnjnATmLsCIJ0Doqg1k28WL/gmpayL6hU1mqIcfcPu4
3+
3jFIk2BpG7jWzJYP6qJVPC3AYo1OfmHqgXU+JlgA7T+pQmIYPtdfdEmXapfEg2LG
4+
p4mRqxPOd2vVohv18Ze27sDUqryWiFzwoAG/o34Qik6V+jaaj4vhGg/l6MmDqIIa
5+
1MmsAZcsMJ8m2603W59UKc6/HWxyLhRd2xxRP82vKooQyKaQX1LKqUvhb2VLCdLc
6+
/rX09cp5jxbo7prZMNUYGveQo6Sh5fIQkfi+SpgudLlcmToY1650UwRuQoOttROu
7+
mKwTDLxAOnHBFIUOoPDLIVM53IWc78TJsjMjSwIDAQABAoIBAQCb9e+zgc7Aarc6
8+
YswizzVVQOtF6oV7hT+uAvZrBQGo6jpyspG0ZSixOywIqpeCUKDY4KrHkXNAi2Ry
9+
JFMDALdK2jAvqe8v54c/3N/nldOVqzplMoQbPvUlVBCYE8qdCnOxnY/6d9JP3M+U
10+
81J4emKQK6fgd/y7Pvx5pwXRuptwPmqlR2RQERANdP1nFPgjGQhxWBJwulUE13Dp
11+
VtbqJIJ8mpWLWBEk6t4ga4wEV4XboWeo7Bs7oPU1TF5AHZnRVGjMSvpLm4CQHnhX
12+
ccQ/xDWnpkGvIVs1kBRFt6kHepjhaPkUrJJZwjmGOFJXEZdDvJVB5B74jOVDjdyu
13+
ZK3vQ4NBAoGBANcwleVaSd1qxdyUAyye2t3c93d4VhnRbfVo2xV4HUaey4H66ZHA
14+
iVzodDSLXLoj4ecJFRW7IDPjZ/3dFxTlwgBvFzhXgkpIpbJmIUF3mx6ElRWPCtiT
15+
U5kZsupSZqL8vmNejWI7+B0KsHy38NIqUlPoXJUSQNtzAwbC1k8iDvORAoGBAMoP
16+
lnl+mCO+kk4N8apyysMnt8O+fm6pUUFSL9ig9GL/bUAOqxHX2Py57oDQKeapn9g/
17+
YP85DRf47idpfnaG006xaDh5kx7YcXpgks/UAqZIY/b4Mwt5+rTXjLfOHSrK+Vc/
18+
CzLnjXcDqcPepYZwNbP2rHSf4Ut/KrsmjZ8JmMMbAoGABd4aSD21A+eUa5ZRm9bd
19+
Cu2qhcRvPJb8U5O/XY9/5NwRmoK3+bRxSmpAOOqP5bdywnT58TTABQovXLm5lmVJ
20+
a++bh3rDX7kpY3rrbziOrz9YPVVAK3Wg8uzDdyY2DD2uB1Gds08FTe1rsIrncyOa
21+
SRVt6NatlA5Hx9hqNZAtLjECgYAxTxaAdZU4+9OGOr7jwnmaoEGnAgCmjqkmkKDe
22+
c4DP+9c0T6ANjagFHHaIdsQS5wf75JOOFOUOGZA8i/DxibtdM8vkJD7zwwwGOjT5
23+
hJpU68uBRFZokY7NvOA5JpJVlAy+7sKT3I/YIEu4YcfxA8cHMMYq+60mGFVcMG9V
24+
BSmDSwKBgAqhhym6R1RgquV5n6kqy1Y1UFwZhrb2tvn04rDg9FVTsAXdw7Bs276D
25+
daeDdUDTeMOfiAk+VYtmriG46TEexmrQmGDHomVVZsRov0Q/76hyR+KZc+8TEJYm
26+
gcauogYNIeeu+713QbfWq8LxlB1b/E8YQEVfAT+Tl+mG+Sg6WQXN
27+
-----END RSA PRIVATE KEY-----
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
#!/bin/bash
2+
3+
# Regenerate the certificate set used by test_X509_verify_cert_untrusted_inter
4+
# (tests/api/test_ossl_x509_str.c).
5+
#
6+
# The set lets the test verify an end-entity certificate together with
7+
# caller-supplied untrusted intermediates through the OpenSSL compatibility
8+
# path (X509_STORE_CTX_init "chain" argument + X509_verify_cert) and check that
9+
# such a chain is accepted only when it terminates at a trusted anchor.
10+
#
11+
# Two trust chains are produced (both end-entities use the same hostname so a
12+
# downstream hostname check is meaningful):
13+
#
14+
# single intermediate : leaf <- int-ca <- root-ca
15+
# two intermediates : leaf-deep <- int-ca2 <- int-ca <- root-ca
16+
#
17+
# Plus:
18+
# alt-ca an unrelated self-signed root (a populated but wrong
19+
# trust anchor)
20+
# int-ca-tampered int-ca with the final byte of its signatureValue
21+
# flipped (valid TBSCertificate, broken outer signature)
22+
#
23+
# The certificates intentionally omit subjectKeyIdentifier /
24+
# authorityKeyIdentifier; the test relies on this, so the script aborts at the
25+
# end if they were added back. OpenSSL 3.x adds them automatically with no
26+
# option to suppress them, so regenerate with a tool that does not (e.g.
27+
# OPENSSL=/usr/bin/openssl on macOS).
28+
#
29+
# RSA-2048 / SHA-256, ~30 year validity so the regression does not expire.
30+
#
31+
# Requires: openssl (or a compatible LibreSSL, see above) and python3 (used to
32+
# flip a signature byte for the tampered intermediate). With set -e a missing
33+
# python3 aborts regeneration partway through, leaving a half-written fixture
34+
# set; install python3 (or replace the byte-flip step) before regenerating.
35+
36+
set -e
37+
cd "$(dirname "$0")"
38+
39+
OPENSSL="${OPENSSL:-openssl}"
40+
DAYS=10957
41+
RSA_BITS=2048
42+
43+
CA_EXT=$(mktemp)
44+
LEAF_EXT=$(mktemp)
45+
trap 'rm -f "$CA_EXT" "$LEAF_EXT" *.csr *.srl' EXIT
46+
47+
# No pathlen so the first intermediate can still issue the second one in the
48+
# two-intermediate positive control; no key identifiers (see header).
49+
cat > "$CA_EXT" <<'EOF'
50+
basicConstraints = critical, CA:TRUE
51+
keyUsage = critical, digitalSignature, keyCertSign, cRLSign
52+
EOF
53+
54+
cat > "$LEAF_EXT" <<'EOF'
55+
basicConstraints = critical, CA:FALSE
56+
keyUsage = critical, digitalSignature, keyEncipherment
57+
extendedKeyUsage = serverAuth
58+
subjectAltName = DNS:www.example.test
59+
EOF
60+
61+
genkey() { "$OPENSSL" genrsa -out "$1" "$RSA_BITS" 2>/dev/null; }
62+
63+
# Self-sign a root CA: genroot <key> <cert> <CN>
64+
genroot() {
65+
"$OPENSSL" req -x509 -new -key "$1" -sha256 -subj "/CN=$3" -days "$DAYS" \
66+
-extensions v3 \
67+
-config <(printf '[req]\ndistinguished_name=dn\n[dn]\n[v3]\n%s' \
68+
"$(cat "$CA_EXT")") \
69+
-out "$2"
70+
}
71+
72+
# Sign a CSR: signcert <csr> <cert> <issuer-cert> <issuer-key> <extfile>
73+
signcert() {
74+
"$OPENSSL" x509 -req -in "$1" -CA "$3" -CAkey "$4" -CAcreateserial \
75+
-sha256 -days "$DAYS" -extfile "$5" -out "$2" 2>/dev/null
76+
}
77+
78+
# Roots ----------------------------------------------------------------------
79+
genkey root-ca-key.pem
80+
genroot root-ca-key.pem root-ca-cert.pem "wolfSSL Untrusted-Anchor Test Root"
81+
82+
genkey alt-ca-key.pem
83+
genroot alt-ca-key.pem alt-ca-cert.pem "wolfSSL Untrusted-Anchor Test Alt Root"
84+
85+
# Intermediate signed by the root --------------------------------------------
86+
genkey int-ca-key.pem
87+
"$OPENSSL" req -new -key int-ca-key.pem -sha256 \
88+
-subj "/CN=wolfSSL Untrusted-Anchor Test Intermediate" -out int-ca.csr
89+
signcert int-ca.csr int-ca-cert.pem root-ca-cert.pem root-ca-key.pem "$CA_EXT"
90+
91+
# Leaf signed by the intermediate (single-intermediate chain) ----------------
92+
genkey leaf-key.pem
93+
"$OPENSSL" req -new -key leaf-key.pem -sha256 \
94+
-subj "/CN=www.example.test" -out leaf.csr
95+
signcert leaf.csr leaf-cert.pem int-ca-cert.pem int-ca-key.pem "$LEAF_EXT"
96+
97+
# Second-level intermediate signed by the first intermediate -----------------
98+
genkey int-ca2-key.pem
99+
"$OPENSSL" req -new -key int-ca2-key.pem -sha256 \
100+
-subj "/CN=wolfSSL Untrusted-Anchor Test Intermediate 2" -out int-ca2.csr
101+
signcert int-ca2.csr int-ca2-cert.pem int-ca-cert.pem int-ca-key.pem "$CA_EXT"
102+
103+
# Leaf signed by the second-level intermediate (two-intermediate chain) ------
104+
genkey leaf-deep-key.pem
105+
"$OPENSSL" req -new -key leaf-deep-key.pem -sha256 \
106+
-subj "/CN=www.example.test" -out leaf-deep.csr
107+
signcert leaf-deep.csr leaf-deep-cert.pem int-ca2-cert.pem int-ca2-key.pem \
108+
"$LEAF_EXT"
109+
110+
# Tampered intermediate: flip the final byte of the DER (last byte of the
111+
# signatureValue) so the TBSCertificate stays valid but the outer signature no
112+
# longer verifies.
113+
"$OPENSSL" x509 -in int-ca-cert.pem -outform DER -out int-ca.der
114+
python3 - <<'PY'
115+
d = open("int-ca.der", "rb").read()
116+
d = d[:-1] + bytes([d[-1] ^ 0x01])
117+
open("int-ca-tampered.der", "wb").write(d)
118+
PY
119+
"$OPENSSL" x509 -inform DER -in int-ca-tampered.der -out int-ca-tampered-cert.pem
120+
rm -f int-ca.der int-ca-tampered.der
121+
122+
# Guard: these test certificates must not carry key identifiers (see header).
123+
for c in root-ca-cert.pem alt-ca-cert.pem int-ca-cert.pem int-ca2-cert.pem \
124+
leaf-cert.pem leaf-deep-cert.pem; do
125+
if "$OPENSSL" x509 -in "$c" -noout -text \
126+
| grep -q "Key Identifier"; then
127+
echo "ERROR: $c carries a subject/authority key identifier." >&2
128+
echo "Use an OpenSSL/LibreSSL that does not auto-add them" >&2
129+
echo "(e.g. OPENSSL=/usr/bin/openssl $0)." >&2
130+
exit 1
131+
fi
132+
done
133+
134+
echo "Completed"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDCjCCAfKgAwIBAgIJAPTQ79oIkv6aMA0GCSqGSIb3DQEBCwUAMC0xKzApBgNV
3+
BAMMIndvbGZTU0wgVW50cnVzdGVkLUFuY2hvciBUZXN0IFJvb3QwIBcNMjYwNjAz
4+
MDczOTQ5WhgPMjA1NjA2MDIwNzM5NDlaMDUxMzAxBgNVBAMMKndvbGZTU0wgVW50
5+
cnVzdGVkLUFuY2hvciBUZXN0IEludGVybWVkaWF0ZTCCASIwDQYJKoZIhvcNAQEB
6+
BQADggEPADCCAQoCggEBANUAGLPvY/JtFj7JCaHHUafA7rCnvf/t143a8tFrrn79
7+
1QF9+4BBZlS3xLNEFVZl8LB90kHdT2ws6lX0W6Q98+xebix9L0uAIevoAn1dPXAV
8+
/aY6i8au5azybGRL86g4yoTSt4Jg+hRJzdirsoq/sBYTvQTVOfeZNimb9RCdEq66
9+
MyRtnTREYVWwS8AzxeanTnKC2Yw/m7CB5oPQ2TKNSOhQVdzqcEb3jyxL5JLPi47y
10+
AEAPvcqF/HONwDSvtHchzgCowFQOfCpicrJSRZKop1XDjdgN3+Bv9dYQscVGV9Mh
11+
TA7fduxMAIIcYSsiw4LSRijuenP5IY4C5t6FMLq/9Y0CAwEAAaMjMCEwDwYDVR0T
12+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBADlM
13+
TxZoEdjtXQpju84oBxscHyhNJU2OqN93B1tgTUi3B9j2ciHrRKV89/OiPSMgxGZ9
14+
DmijQgvKV7SEB22eXJDb0l4sEspPQQcuxB1m0bLDPh7xpYxvXTPxI/HuAxBp95kt
15+
ke1t3/3NOhWIP44Evmmo1W5NZBdjPGJQSXHKS6HyENVu2vrTj3TmLuYg57nldxAg
16+
kAF2D14InFJJwIGKeNaP710bN2tUkN7npWvNl7vu1TrDgeWdF67uVu1f647IST5i
17+
9O1f4s4yvhLh5gDKuM3IEDt+3XP1qLegSKIwWrlxHcjhs5XO+52aLulSVkT6RR5G
18+
tL6izMt6DXTOy/LUBkM=
19+
-----END CERTIFICATE-----
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpQIBAAKCAQEA1QAYs+9j8m0WPskJocdRp8DusKe9/+3Xjdry0Wuufv3VAX37
3+
gEFmVLfEs0QVVmXwsH3SQd1PbCzqVfRbpD3z7F5uLH0vS4Ah6+gCfV09cBX9pjqL
4+
xq7lrPJsZEvzqDjKhNK3gmD6FEnN2Kuyir+wFhO9BNU595k2KZv1EJ0SrrozJG2d
5+
NERhVbBLwDPF5qdOcoLZjD+bsIHmg9DZMo1I6FBV3OpwRvePLEvkks+LjvIAQA+9
6+
yoX8c43ANK+0dyHOAKjAVA58KmJyslJFkqinVcON2A3f4G/11hCxxUZX0yFMDt92
7+
7EwAghxhKyLDgtJGKO56c/khjgLm3oUwur/1jQIDAQABAoIBAAKw6Z78W0rozesl
8+
JxYAKqvv6BQbSm89VgfYyFCVB7NbCaHnMZJBQUW4vKd3KL3as9vG+y0R2rsHJj7H
9+
w5Cjp71IxCOTwVE24TbVy5JB51DPNlEvVCzCcOxqc6wguYdakFR1RRREnWQ8OnmO
10+
Uccm/NaKkUzKVN0n9mM4MTRwh5flhG6K9YoDxk75g12+fD+DQKf61iqcUh9Hqy3y
11+
ZBFdgKzRowq0UNK8OmqkATkHIBkOOZRWXz7t1+TOq+DlNizkjmUQXQM5qQ4Vrf01
12+
jjt+PfnjPQcVYgvanXSFZbinjgTa4+E5QQTBkSyFaal0GbbRKX7bxAu7aHHCMd5P
13+
PqkSUYECgYEA+Di097OJZLNQDgx7RNUGSPFiPhuLEg6wVhmBAtz1DM6UKYD2el7N
14+
AQ1kmpHC0rGbzeQoJQ/fcuxXQ7w7S0ycvNNTYW+kcUrK0h0L64JnUC6UVVrB+ax+
15+
3CLfM+qVo1Z1gFr+teiadCS1AHXUlVzz4BkkVTBOZosEo6k+s4Ol9GkCgYEA26zW
16+
TWUd0vkASkyAPG6JeMGX56tMbU+kSC+zY2UvuEp9JNVZhGwrb411jbREBrjA+eok
17+
UxIe3M4mMmbNvdlJ7M+6I6g5uVQ8FmohbEo78HcyB4onr2et6bw0giqupEhyrfx+
18+
XDgSpu1Mu1bFKYknRKn9MIzNTdHyAr404A38w4UCgYEAynElVuf8ZD7CSdLwLkE2
19+
8QK9Rz4bfEyykGYYjAc9bIaG3Bqr6z2qIPOVW2MJ6+Ci25b7Ds8VRJtwyHOaQF1p
20+
b69Cz7LIAQYoyJicAiXGsORsYfi1PzXp+QwP0j2+cQqwplCQcDgW0Can4Io5KOA4
21+
nkqjET9mkcdLr1b3Jl12WhECgYEAp6jzauCI8bNP0GUw3m6zB3IiIRPxYeCODvYx
22+
IORilnJrrwgSqWnxgNNjbAKwhLzPtC5LCQfkfDvulTs3PfWwYUht1bcYT2WF8smP
23+
ttm1g6NFkNGV1l74MlONc+dloUcWF8qFGpdFTRgCH11rX3cpfFONRVfBfeqFnihT
24+
rMmgKA0CgYEA0a4G8rqeUBL/nU4ALLdnvhx4Qus3cJ7kCF+7ZBi+CCrFQun1kTTF
25+
23uOeAIabjAvm8ur8k73FzD9bg5EhlOsmWcAOSSWgq1ONr51sS+8IrmAx/95AvtP
26+
ztWQJywOMcA3mjIlJDuA+tkI9gQObtxnNOVy/OUk8aNE755UXLFG53k=
27+
-----END RSA PRIVATE KEY-----
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDCjCCAfKgAwIBAgIJAPTQ79oIkv6aMA0GCSqGSIb3DQEBCwUAMC0xKzApBgNV
3+
BAMMIndvbGZTU0wgVW50cnVzdGVkLUFuY2hvciBUZXN0IFJvb3QwIBcNMjYwNjAz
4+
MDczOTQ5WhgPMjA1NjA2MDIwNzM5NDlaMDUxMzAxBgNVBAMMKndvbGZTU0wgVW50
5+
cnVzdGVkLUFuY2hvciBUZXN0IEludGVybWVkaWF0ZTCCASIwDQYJKoZIhvcNAQEB
6+
BQADggEPADCCAQoCggEBANUAGLPvY/JtFj7JCaHHUafA7rCnvf/t143a8tFrrn79
7+
1QF9+4BBZlS3xLNEFVZl8LB90kHdT2ws6lX0W6Q98+xebix9L0uAIevoAn1dPXAV
8+
/aY6i8au5azybGRL86g4yoTSt4Jg+hRJzdirsoq/sBYTvQTVOfeZNimb9RCdEq66
9+
MyRtnTREYVWwS8AzxeanTnKC2Yw/m7CB5oPQ2TKNSOhQVdzqcEb3jyxL5JLPi47y
10+
AEAPvcqF/HONwDSvtHchzgCowFQOfCpicrJSRZKop1XDjdgN3+Bv9dYQscVGV9Mh
11+
TA7fduxMAIIcYSsiw4LSRijuenP5IY4C5t6FMLq/9Y0CAwEAAaMjMCEwDwYDVR0T
12+
AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBADlM
13+
TxZoEdjtXQpju84oBxscHyhNJU2OqN93B1tgTUi3B9j2ciHrRKV89/OiPSMgxGZ9
14+
DmijQgvKV7SEB22eXJDb0l4sEspPQQcuxB1m0bLDPh7xpYxvXTPxI/HuAxBp95kt
15+
ke1t3/3NOhWIP44Evmmo1W5NZBdjPGJQSXHKS6HyENVu2vrTj3TmLuYg57nldxAg
16+
kAF2D14InFJJwIGKeNaP710bN2tUkN7npWvNl7vu1TrDgeWdF67uVu1f647IST5i
17+
9O1f4s4yvhLh5gDKuM3IEDt+3XP1qLegSKIwWrlxHcjhs5XO+52aLulSVkT6RR5G
18+
tL6izMt6DXTOy/LUBkI=
19+
-----END CERTIFICATE-----
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDFDCCAfygAwIBAgIJAIpSt1mJH/iOMA0GCSqGSIb3DQEBCwUAMDUxMzAxBgNV
3+
BAMMKndvbGZTU0wgVW50cnVzdGVkLUFuY2hvciBUZXN0IEludGVybWVkaWF0ZTAg
4+
Fw0yNjA2MDMwNzM5NTBaGA8yMDU2MDYwMjA3Mzk1MFowNzE1MDMGA1UEAwwsd29s
5+
ZlNTTCBVbnRydXN0ZWQtQW5jaG9yIFRlc3QgSW50ZXJtZWRpYXRlIDIwggEiMA0G
6+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCoVXfEVO7xHX3hjTbTdwD3YM7sOX3e
7+
BQvZQkmOxHYH4nr+3D8d0U9LNQPL+nQ07G9D71g6mW7fVScvoeyNIptknoS/MBKl
8+
g9ZfptEYbKJsggaSxw+CLVsprTtOXd2vq7OXNXJqlmuEEjiOn0lQxUF2JiS+cYqY
9+
N1+iNE8zYB0GXpQPFoSGudgl9lRFZTKtqR5O9Vs50I1r2JQfRybVN61W6QUdZMtv
10+
nfdcD0AcQxPnkdQ03h1X57DtIDKh2TjBXbR69wViMtDKhvAWRmgvH0AZFTQrUBIJ
11+
QAUiTYLyzOnedl+bY7Tl+h5EIUH7l5qu4O2HzxArQVz7O/Ad7uYLSxZrAgMBAAGj
12+
IzAhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
13+
CwUAA4IBAQC1MBh4c9iTDKBHzR5IqDSASBtc8yBA/jxaX6aXYlNkgNv2Nnpz3uan
14+
mbi4uQuUycI63RfUPPNS28x7j90rVGPxHlM6vYRHarzvgKlGIlJhHAFmzNlALbSM
15+
yM94m9iXDELQV5f494PbyGsBcnI1qJQZXdwpRiukICTOr0E8AlVULxJAGks9L0tZ
16+
pJ3im3ay8yZPFVwhpDBXU2oeqNNsFQro8mZEzlYcyBlvf8uZbXy/7RHsRDr2CFyz
17+
ECZnGZUJ3GdFo8T0IfW7ztLP6kBS0qTXOKEbVoGo7vystiu6dw9VAXukIGFSI+Md
18+
tvdsR8KWuQeoWo/CfAI6MIyghQBGaCNg
19+
-----END CERTIFICATE-----
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpAIBAAKCAQEAqFV3xFTu8R194Y0203cA92DO7Dl93gUL2UJJjsR2B+J6/tw/
3+
HdFPSzUDy/p0NOxvQ+9YOplu31UnL6HsjSKbZJ6EvzASpYPWX6bRGGyibIIGkscP
4+
gi1bKa07Tl3dr6uzlzVyapZrhBI4jp9JUMVBdiYkvnGKmDdfojRPM2AdBl6UDxaE
5+
hrnYJfZURWUyrakeTvVbOdCNa9iUH0cm1TetVukFHWTLb533XA9AHEMT55HUNN4d
6+
V+ew7SAyodk4wV20evcFYjLQyobwFkZoLx9AGRU0K1ASCUAFIk2C8szp3nZfm2O0
7+
5foeRCFB+5earuDth88QK0Fc+zvwHe7mC0sWawIDAQABAoIBAFuFnIhyZTdTAY4Q
8+
aS6wFSZqzBZDa9u6gqatE7E7v7CpwpWuyeI8WxBY0qeklGnx4szc5Ot3YICsm5Ga
9+
SDK0Dii2xxXr3TeAZp265RSSe/zi9Q/4isYMQvR16zjAcDeC8zHTLVImVm6IOZfR
10+
otr3ZJAITRH+SYxZDvXx2t3j8+Pxxlp6hzG3sXw8MWa2Ra3mIhDjzCBIaRXq25Mj
11+
8DUTi/8p5OupEd7mt6HZmaWk71KC6R4efNNBtl2p2WCiw0VQNZ+cFLPyYeL8+f32
12+
HrWPqTinzCR8LXkX2GTWdZuC8cJIKX/8olTJZaTKsmD73H2dGj+VsBjdx4SRr6aW
13+
SYp6boECgYEA1aZq8XofRXid7ZIKeDkmhWhMcrx+4QIqKU5YKMYocuFGeeRla0pz
14+
LGunt+bs2V/LuUVDiOvbQ8RuaDB4mmJiYnRag28iRBpoJPm5nGELv7h3vxiG5tKJ
15+
n52HCzvi2CI4dEXTH3cwhIis+Uu26Udhhiri08m6rl50/qE9STYr8WUCgYEAybN/
16+
iRNHcGSYyrBPfSfAcTEbbDI45C1NgFOjccBnnpBgaqatUSTgJDImCpH/v5efDXqk
17+
YxhCJ7tfbxhREmpWSNS1prvzih7T+xVOoWsdDSKIgF2PcsqeXFikQGh0ffu9UT0m
18+
lJ4tw7P615q9MNGlKrERmQsYyM4GmMyLGj2V048CgYBWzBpMakHEFoGKn7czKny0
19+
3C+auWuOfDOmvlZgkkiii1T3dkuhsAhkdoQX2XBFy35XkYUjXjahLG9yUqbcibXQ
20+
q9aN6RtxsYy34OCAYIjGZen4L722jrgsqXHQpY6+IgDvc+KWuPR0E5a6XQE9eqtr
21+
N4cZZa464tMDE3xzfteRZQKBgQCQZR0nP5MEBjBP4lp1ibC+F96+3VFXIIt8E+RN
22+
eeV0YX10vHAVSCXiI7iSFqUVPvFRj/wBKQurL/uJJ8paOaAdsZF9lM4rkhhFhqJs
23+
8qawkYlRBCm+jwlBqP+lUGIdEswcTX/CI1813DH2icNpIJxybKLhgk0y7DNSzhPD
24+
LFWHRwKBgQC67X7ZML+st35dOvPRg7djtcCQTr0lcywKLUUo2B3VZVZL7pObe/V3
25+
y+CK8HEvw9wTbsQ7VnqM8v/KfQmk8gHlOpppYg0LGeTDjz97TGlJGVE+w3zHkL3h
26+
QNEYZpApBmMiThPPsTb+5L7xJkuEmFVsUrVaJcr2cIXKCEnnKzDYag==
27+
-----END RSA PRIVATE KEY-----
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDJzCCAg+gAwIBAgIJAIpSt1mJH/iNMA0GCSqGSIb3DQEBCwUAMDUxMzAxBgNV
3+
BAMMKndvbGZTU0wgVW50cnVzdGVkLUFuY2hvciBUZXN0IEludGVybWVkaWF0ZTAg
4+
Fw0yNjA2MDMwNzM5NTBaGA8yMDU2MDYwMjA3Mzk1MFowGzEZMBcGA1UEAwwQd3d3
5+
LmV4YW1wbGUudGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMIN
6+
u32XXq4VzV/WKmfgaLZlkPbtYG8Ic9LOYqE0/y/F34wkYLWThYSleLglbFG9Vtcx
7+
FhAPuutZSML8j3QGdvRPHF/w03+BZ4SVnHQiBvJSCyY0TYhgSHZaNuWR7VVhlTsg
8+
XQNfx1ZCYsBiAgaJnhC/O2id6qjS3bnnhme/gvoKMl1SolgJgPalqRfhlHXs68Q+
9+
P2Mj5TdhqcwxGfBRGuaavTwwYBJYHwD8FvXtfGuoVtZb2gNU64m0ZpVPPUT6yBEy
10+
PJwZnrfZIDW9IrByz0kVRqmlDbMvgOs8Rxh0kvuuAtdun02AyOyzIuupHSEMoJmi
11+
oxqj026GgqEYnDCuZD8CAwEAAaNSMFAwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8E
12+
BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGwYDVR0RBBQwEoIQd3d3LmV4YW1w
13+
bGUudGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAZLly5fb9QVkI6rb0MuzlGLr44Umq
14+
wI9bNzbd/EEt1vIymTpagf24PmvTtltQthhRWS5TK1P/mdfZEIhoX2lLU2k5xCOR
15+
pnCrgjJy9VSrW/gUfP0hnNR90Ig9OwUdQesJ4/7xcApox0BWD5P4M2HyRYmAkCop
16+
7Gho954vAuDpcNuXwudr1DwPlaK0EFvCOrFjeRhigYCI1EBVHrB6lgpOf1YXoA3d
17+
dlM9D/VOBj3FUta/brU5dDGpFYEhoOX62Z0RdTFIgGuvQm37UsbNEeEjqN7vL5EG
18+
Fyysmns+uGjkoNFufyJ7G53jvA7bG1N6f3+BLnFgYJk79Y0BGu2WrKtn/Q==
19+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)