OpenSSL 3.0 compliant

This commit is contained in:
HLFH 2022-11-28 12:57:16 +00:00 committed by Benjamin Fry
parent 2fa499dcf3
commit b122d71636
13 changed files with 240 additions and 220 deletions

View File

@ -62,7 +62,7 @@ async fn test_quic_stream() {
.map_err(|e| format!("error reading cert: {}", e))
.unwrap();
let key = tls_server::read_key_from_pem(Path::new(&format!(
"{}/tests/test-data/cert-key.pem",
"{}/tests/test-data/cert.key",
server_path
)))
.unwrap();

View File

@ -34,6 +34,12 @@ pub fn read_cert(cert_path: &Path) -> ProtoResult<Vec<Certificate>> {
}
/// Reads a private key from a pkcs8 formatted, and possibly encoded file
///
/// ## Accepted formats
///
/// - A Sec1-encoded plaintext private key; as specified in RFC5915
/// - A DER-encoded plaintext RSA private key; as specified in PKCS#1/RFC3447
/// - DER-encoded plaintext private key; as specified in PKCS#8/RFC5958
pub fn read_key(path: &Path) -> ProtoResult<PrivateKey> {
let mut file = BufReader::new(File::open(path)?);
@ -57,18 +63,31 @@ pub fn read_key_from_der(path: &Path) -> ProtoResult<PrivateKey> {
Ok(PrivateKey(buf))
}
/// Reads a private key from a pem formatted file
/// Attempts to read a private key from a PEM formatted file.
///
/// ## Accepted formats
///
/// - DER-encoded plaintext RSA private key; as specified in PKCS#1/RFC3447
/// - DER-encoded plaintext RSA private key; as specified in PKCS#8/RFC5958 default with openssl v3
///
/// ## Errors
///
/// Returns a [ProtoError] in either cases:
///
/// - Unable to open key at given `path`
/// - Encountered an IO error
/// - Unable to read key: either no key or no key found in the right format
pub fn read_key_from_pem(path: &Path) -> ProtoResult<PrivateKey> {
let file = File::open(path)?;
let mut file = BufReader::new(file);
let mut keys = rustls_pemfile::rsa_private_keys(&mut file)
.map_err(|_| format!("Error reading RSA key from: {}", path.display()))?;
let key = keys
.pop()
.ok_or_else(|| format!("No RSA keys in file: {}", path.display()))?;
Ok(PrivateKey(key))
loop {
match rustls_pemfile::read_one(&mut file)? {
None => return Err(format!("No RSA keys in file: {}", path.display()).into()),
Some(Item::RSAKey(key)) | Some(Item::PKCS8Key(key)) => return Ok(PrivateKey(key)),
Some(_) => continue,
}
}
}
/// Construct the new Acceptor with the associated pkcs12 data

View File

@ -2,13 +2,13 @@
set -e
OPENSSL=/usr/local/opt/openssl/bin/openssl
OPENSSL=/usr/bin/openssl
trust_dns_dir=$(dirname $0)/..
pushd $trust_dns_dir/tests/test-data
for i in ca.key ca.pem cert-key.pem cert.csr cert.pem cert.p12 ; do
for i in ca.key ca.pem cert.key cert.csr cert.pem cert.p12 ; do
[ -f $i ] && echo "$i exists" && exit 1;
done
@ -21,7 +21,6 @@ req_extensions = req_ext
distinguished_name = dn
[dn]
C = US
ST = California
L = San Francisco
@ -29,7 +28,7 @@ O = Trust-DNS
CN = root.example.com
[req_ext]
basicConstraints = CA:TRUE
basicConstraints = critical,CA:TRUE
subjectAltName = @alt_names
[alt_names]
@ -38,8 +37,7 @@ EOF
# CA
echo "----> Generating CA <----"
${OPENSSL:?} genrsa -out ca.key 4096
${OPENSSL:?} req -x509 -new -nodes -key ca.key -days 365 -out ca.pem -verify -config /tmp/ca.conf
${OPENSSL:?} req -x509 -new -nodes -newkey rsa:4096 -days 365 -keyout ca.key -out ca.pem -config /tmp/ca.conf
${OPENSSL:?} x509 -in ca.pem -out ca.der -outform der
cat <<-EOF > /tmp/cert.conf
@ -68,8 +66,7 @@ EOF
# Cert
echo "----> Generating CERT <----"
${OPENSSL:?} genrsa -out cert-key.pem 4096
${OPENSSL:?} req -new -nodes -key cert-key.pem -out cert.csr \
${OPENSSL:?} req -new -nodes -newkey rsa:4096 -keyout cert.key -out cert.csr \
-verify \
-config /tmp/cert.conf
${OPENSSL:?} x509 -in ca.pem -inform pem -pubkey -noout > ca.pubkey
@ -81,7 +78,7 @@ echo "----> Verifying Cert <----"
${OPENSSL:?} verify -CAfile ca.pem cert.pem
echo "----> Createing PCKS12 <----"
${OPENSSL:?} pkcs12 -export -inkey cert-key.pem -in cert.pem -out cert.p12 -passout pass:mypass -name ns.example.com -chain -CAfile ca.pem
${OPENSSL:?} pkcs12 -export -inkey cert.key -in cert.pem -out cert.p12 -passout pass:mypass -name ns.example.com -chain -CAfile ca.pem
popd
popd

View File

@ -218,7 +218,7 @@ fn test_server_www_tls() {
.map_err(|e| format!("error reading cert: {}", e))
.unwrap();
let key = tls_server::read_key_from_pem(Path::new(&format!(
"{}/tests/test-data/cert-key.pem",
"{}/tests/test-data/cert.key",
server_path
)))
.unwrap();

Binary file not shown.

View File

@ -1,51 +1,52 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
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
dGcY+b1yZpoODxeTcCRKEvxWGCl7hA==
-----END PRIVATE KEY-----

View File

@ -1,33 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFszCCA5ugAwIBAgIUUMwmsBejhMx66ktn3UPYAM59hLMwDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xEjAQBgNVBAoMCVRydXN0LUROUzEZMBcGA1UEAwwQcm9v
dC5leGFtcGxlLmNvbTAeFw0yMjA5MjQxOTQ3NDJaFw0yMzA5MjQxOTQ3NDJaMGkx
MIIFWTCCA0ECFCjit4xzVF45CewzmKO5a3vtrQ9VMA0GCSqGSIb3DQEBCwUAMGkx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4g
RnJhbmNpc2NvMRIwEAYDVQQKDAlUcnVzdC1ETlMxGTAXBgNVBAMMEHJvb3QuZXhh
bXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt0eYXPGhx
eMc21A4j8hXD9oZozmRW2CoKS0O62LRFvhrTg7g7l/hOCaeHAhN1s4OKSyMA5KB7
vvWKxNtuox5/iZ9vuPrc+Ewndt6iofSgoQen088sSmHqCzC41S7MJ2G1NLOai6Cw
6sCgfwRInCDkIjYmFamXYw12J5pbNyLc0IUHo8bT5DHhLC6a9s6YvITvIYaOY+bv
gEF65O6sKkL654iIptnRAw5lI/jRjIpn+0wGlwmFHAXvVcYlSVN45+8V2VdXHMoW
SwkZDEDiFp8kIukuDbYFsiorqeqJrT2tpSvPXGSz1G1JUvO7mMcQqstxGizL09ST
DueP3nz8IS7RR6nLjzpJGrZIVzsv10lpg4IVyPQe2OqXVyKqosPYZbsOIQ/wNAY8
Lv6O3VfmeEfL86pLfAI0mlLbA7X3BT47K6lImE0JH0iQzXsFCs0mybviO8r8gIcE
0XwWnM/mKcxONQEeWFVYdcYg+cSNdg7Nfr/akWhfTjajBXBEbAAC/RlavajBiUAo
v2VnubTuisRoNP0+K/EynlYC1hu4JdgzMQIup7LPXbNesUceu0q7T/qk5NcbEYV3
Mz7ro8ujefvX25AIUrQilQ2/f2GkSxkbXSikFOrNuG9lgOtI5fADq3efaQLXHpru
Gt8YX0eh9vDQSeL8F62t7/pJsBpxOFpPKwIDAQABo1MwUTAdBgNVHQ4EFgQU6qlo
m8NBy2WefLOW7qIlvwf9taAwHwYDVR0jBBgwFoAU6qlom8NBy2WefLOW7qIlvwf9
taAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAfEtZ8J/RiGp7
SAoXe7teuYL4+8OoBS5pjqUgnvC2WVxBx5R/3PiHHMTQt8rJPjevUXJHQEAkwh2V
XgRIYNxioLIBIdshTAyQMb18q7l4lHhW47zfX4kU4sINCFwNr0VmKorccExJRrQ0
hvn8svuVPe8CnLBI4L8ZeGrj4914AuZUdbXJGsQISJbzCXtNfNZEb1JDlUBPS+gk
W+pJ2QScQX9UUZuHafUKU2PSLzIw5t3Fo5HzXe1y6mHg1ebSe6ODqoKjtmv5olKc
7qa9JGY642OHFp1wUpKLIIWbVedqN7yq1azPdkZ86Dcnm9PkO4GnKI4uAyFlYFta
FLjYXuKLzzUA4lYZp9Bpey3QHd9TZ6YFwU4ZUyx1LnpWCKhIk1LcEoeFcrUQXIDJ
qUvJPK6oinb8VyXHIxK9bN65gnJwFdnmmGnwf1RasANK8at9PDQSLFyzXxDFQ2dF
C2bX3Z56vSETJ/xNB+fy6jT3ZYfxmYIpJeUCHyd+OLODIaoGHfY3X41WbfRabBbI
9DVflRDsNO3UyrVfh82LueQDaX/ddjb5jT6rF+xJVq61aQhIQRF4hSAUEIAszDcz
a+f/veCRgUlxAOEDNshwgt69Sx5Ne6r4mNLejX1dQ7nz7cyC2Q0rL2lP5jzGHVGR
W2c7CCGGiSljd3DxpoFeXv/xTLqsDM8=
bXBsZS5jb20wHhcNMjIxMTI3MTE1OTMxWhcNMjMxMTI3MTE1OTMxWjBpMQswCQYD
VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5j
aXNjbzESMBAGA1UECgwJVHJ1c3QtRE5TMRkwFwYDVQQDDBByb290LmV4YW1wbGUu
Y29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArX5jEnMaQ/11AU9D
fnPerlgFWCJBY/p4hmLjbDjXQOgZzejR47Z+jwlU3I9RvZ5HAAScOFEQS9nv9eTE
/qLt6qoOULv48LfSgFejhfVodmuAAp/6y4p6bvSqi/hYiBcKxqTwGqTa+ZAGE7L+
6ZcYkW4aluhY0OGf5ggvr7WhBli+9GC4UkV7eBG1qZNsVZI1/ijEtDmFNmdMvaCm
Ek1jMlmGn8IhYu33HXeyRk8fSy/E5HvtWBJN3nkDD0SqARNq31UaeD6Wvw68Rh1w
fXcqONI/VQ0pLSGHMqpKabdiAPKOPIt+wOKXM2A/8Wb+Q6pmbGN+xtNScX4vP/Nq
RwZqKSEtR0x8thpaIdM1Ec+9k87zJrgDxDY+ZhgK3tIkZhti1VJA1/WWpZGyby4X
jXZQRL2yuKiDPD0HBOvWIiEzviYtt5XkS6AgNWg1luSvytZKQ3wLxZTcTNa5KUC6
G7qpumS7weIv96oIxiNOA/9DAbPBPCZP6tNsr89pXocRutOCL53H/n0QrLjh+HNS
ZHLOCFyPNyxoeB6NFSj8owYm1IORHG3yYDOP+8TvCuSJNbMmIxva96v9/SVcQJAc
/0ovFEJ9qYYC6OUFRTpBKdFLPalJR/JhG6OXKGQx/XL8n1pNJI181Z+wnW1UVdMQ
vpGQ4jfVTikLeozF4D7Ia6dMMqkCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAC2nO
NZHxdkMlrgvVit6EKJzT+ZeSygbXDnxnPAbAPvCg6+j4L/Ja2mnnWAQHXXd9DoKb
TG2UR61U0Js+2fOe8ZJEL+zsjZYf8U+UC4+eJbTZTFe60kP/PEXCEA0qBhExQeR4
TVlth36k88gUREZj3fnx+UZVN5aiWVgN1PjB4zJm+6VK1JqabzB56BgddBBB9Mkp
sYxCdlWyNpSdcvy/7S82NTonJ6E7q0oInbzTBLz6h4Sn83Ur3sGsTXatG+TOOZrW
Ougx4ZJMzeHoDnvWK+exjXUEhVP9KSXmIAzxKBjUsMLQuszmLDBmdtfDuT/Mx/2x
YejiYDatPw5Q2HzxkbXCXpOHvUlAAQTKx4RP14NV7FP/knTXGTmTjwE1q1Hh4H+W
MCy8jKH+uNNP5Bo5h/w4ffHCTF8U9vZ0gW1NA23wzHOoGeXU3iNqUoVCOrHs00W/
ryu8N0nQhcKvy0XvaPAWK6vLnfCcLQ5u5KSjb2kc7fpEGuOC6wuP97DA+12gv+aX
nW1BFXgC2UiK3UscvZQGz3fQudKa1BzuR9YExHgcA5k9aiTdnlkpJ2D951X9dHSZ
smnZtg2KGg/e1Gvzat8MW7lPMqgYf06wpMoiI9G65MpTiB81XW8sZw72W6x2zLJ3
PAf+Y591HKpqmGR6TpgWQpoASakqqqAjCsbban0=
-----END CERTIFICATE-----

View File

@ -1,14 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArdHmFzxocXjHNtQOI/IV
w/aGaM5kVtgqCktDuti0Rb4a04O4O5f4TgmnhwITdbODiksjAOSge771isTbbqMe
f4mfb7j63PhMJ3beoqH0oKEHp9PPLEph6gswuNUuzCdhtTSzmougsOrAoH8ESJwg
5CI2JhWpl2MNdieaWzci3NCFB6PG0+Qx4SwumvbOmLyE7yGGjmPm74BBeuTurCpC
+ueIiKbZ0QMOZSP40YyKZ/tMBpcJhRwF71XGJUlTeOfvFdlXVxzKFksJGQxA4haf
JCLpLg22BbIqK6nqia09raUrz1xks9RtSVLzu5jHEKrLcRosy9PUkw7nj958/CEu
0Uepy486SRq2SFc7L9dJaYOCFcj0Htjql1ciqqLD2GW7DiEP8DQGPC7+jt1X5nhH
y/OqS3wCNJpS2wO19wU+OyupSJhNCR9IkM17BQrNJsm74jvK/ICHBNF8FpzP5inM
TjUBHlhVWHXGIPnEjXYOzX6/2pFoX042owVwRGwAAv0ZWr2owYlAKL9lZ7m07orE
aDT9PivxMp5WAtYbuCXYMzECLqeyz12zXrFHHrtKu0/6pOTXGxGFdzM+66PLo3n7
19uQCFK0IpUNv39hpEsZG10opBTqzbhvZYDrSOXwA6t3n2kC1x6a7hrfGF9Hofbw
0Eni/Betre/6SbAacThaTysCAwEAAQ==
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArX5jEnMaQ/11AU9DfnPe
rlgFWCJBY/p4hmLjbDjXQOgZzejR47Z+jwlU3I9RvZ5HAAScOFEQS9nv9eTE/qLt
6qoOULv48LfSgFejhfVodmuAAp/6y4p6bvSqi/hYiBcKxqTwGqTa+ZAGE7L+6ZcY
kW4aluhY0OGf5ggvr7WhBli+9GC4UkV7eBG1qZNsVZI1/ijEtDmFNmdMvaCmEk1j
MlmGn8IhYu33HXeyRk8fSy/E5HvtWBJN3nkDD0SqARNq31UaeD6Wvw68Rh1wfXcq
ONI/VQ0pLSGHMqpKabdiAPKOPIt+wOKXM2A/8Wb+Q6pmbGN+xtNScX4vP/NqRwZq
KSEtR0x8thpaIdM1Ec+9k87zJrgDxDY+ZhgK3tIkZhti1VJA1/WWpZGyby4XjXZQ
RL2yuKiDPD0HBOvWIiEzviYtt5XkS6AgNWg1luSvytZKQ3wLxZTcTNa5KUC6G7qp
umS7weIv96oIxiNOA/9DAbPBPCZP6tNsr89pXocRutOCL53H/n0QrLjh+HNSZHLO
CFyPNyxoeB6NFSj8owYm1IORHG3yYDOP+8TvCuSJNbMmIxva96v9/SVcQJAc/0ov
FEJ9qYYC6OUFRTpBKdFLPalJR/JhG6OXKGQx/XL8n1pNJI181Z+wnW1UVdMQvpGQ
4jfVTikLeozF4D7Ia6dMMqkCAwEAAQ==
-----END PUBLIC KEY-----

View File

@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1,28 +1,29 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIErTCCApUCAQAwaDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
FjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xEzARBgNVBAoMCiBUcnVzdC1ETlMxFzAV
BgNVBAMMDm5zLmV4YW1wbGUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAvrB8F6V4Dd9KdxfkP0M0si3flHsQgUz+fzLE25etQWeO206AkY8bWZ7k
kMRHFHj7mqUHZgxsdpG/nWw9epBIpR31MJa2bAqYq6yFLBM5KdryaIzCTnbJwn3t
ubWT9jd1Hx3Vl4783EGpsnBCZjcjSEFowDQMpzpLRBkqmlt1ykdJNQbu2Wt2OVMA
JEbnM9aVFlI87emd+8ZOQC4/cXvweUkPMtxsUXaXzyQqXvIXrrHaH8TyAlaaAwbk
aygUyIT8MZBPQHPGmrzsio7hbfcTUb3nVDZ1K2jHaC2KsqAXHcF6v+3VtZn2gTZc
cUtBMcM5t2HwghHkO54Qi0Bf695b4bpbrE29BOIOKGaW6OhlqmRulVOT8fYVqU/3
1WTVeAHPPpSBRW3YnPsgztDmfyC0WLXsFa3kQT9qyg3VEedButZYafmraOF5np9c
VvHLnu3A4LTilPu2tgvM8q/vQxXkehkJPJn8Z9+AFClRX6AJDCWy3ZRw2b8/WkDz
Ci9VdVFe0cJfHZCtVTI52pgMc7F+vKW6Kp9NONtW+1wSWI3PykeSF+2hvIF3UFxg
/PxJtfcLKDeDKTxt+61m651+1c5N+rh0kF4RmJrsCONAY2a8iDmTB9NLBWz9Ck9N
IRQ1g5D4GoFFFKPlWKtHO5dfKpyXbp5LvQvH39xx5MrBdRmNlokCAwEAAaAAMA0G
CSqGSIb3DQEBCwUAA4ICAQAS8+ZUzaMFNV0KXNhQAjlEj5nb70fdGnif8xFmA9v+
nOAFzKTHlfLXaFX2bgHhJAi2bXWhBXDe7FlM9LGXw33nfkRFh10GUT0GSNnLLOUg
bfQkLk37qeGpdUkWW6K+YLqqr/YusWlIZZk44eDREhsLXcKEEtM2t9P4YeiYlNju
yxB6SRoOe2CU6Ae3Zbp7XSBrIV0K+KV1zy/1YWRF9oy1joPJNx2VG5f9FAz0fpUg
2VT384tXKO6tSQazD19PZcvIn/0FXavZh1gwQPxkzGkwb0kjfXAlizz72muGEIIr
T51JRONGlyA/q41YiaJuy+M8kSqXGHXD8U6Z3f+5KyVKGvMMbJVDAD9hfsMcKCkN
JuQ63urRwSUYQNJI+TSeAc5Kk8AS5SQnnvw1G9lGv/32evBStCNy6bYPzTaLAIg9
nIzqv50vK4hoorC0nVBcPNHChhmXBbCoG3YByID5fvyUZEaHVHw1Kyi+yPLgXVWQ
XTS+lMbi3Ibz5MAgj7/bsQBYOqt0m/am42NqSvxGxT+A1Ax1cB6M06LwDx85yJ00
xA98ubyRJuS5ZpeteQg/c2Pd/J7V+9Oo7W6D/5KmBukw5JMCwmCEc306WEmknBq/
KEtbqJ9A6C010L22gNLWTbrCeCoDxmQtG/vDGnojgTXL7GqA/L0IjxrWJNJccnnA
mQ==
MIIE8DCCAtgCAQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
FjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xEjAQBgNVBAoMCVRydXN0LUROUzEXMBUG
A1UEAwwObnMuZXhhbXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQC/gFqZ6cpMTEtSWfPo44h0UFu9dukmuGxj/LC43VZxH2JhbLvcl+/29QBd
YFQW1FyAD1mbLQMn2dsQsoU3FaQXklPI5BJfDCDFECs7guCCPx2lE6ICd6jYHsTk
U4VDiaMCzGaR+gF/TD6yTaLf65GYPrJd3E+1FdPAzrYuttduT2nJdkvQMmyRWQGs
dZjZE54JKCzCkAM+H3LRq0QY9i/YA3gxwHJVCpDVXl7v7z2dFXreVR581JBu4Hgp
PdIzSIlnrfOHuLNglNaI0SUH0k2Ys9NcYKHvASq/Lm83hddX7X+gRepq48PGiBbp
A6TvGOSMveHGNK2XkTX0pFTriCBWix9Z817IAQF9LuKb5FBXGmgNll/qEvl4UA+R
l/K/tZ9+1xTGd0Oa+zYqnRAF16fSOkdN9VGOwRXb92cdHlx2zzSH4yyjaJFzyw4o
tu+cFDhEoo+D/dj+bQDooxwf0K72qP6wcs2CRcIl0vLlHBZL8S6IQtQQCX/6SToB
PDxu1y6plrcyiv2SGbg2WT0UAnXPoFSApj6eS6T2UhdCmPLbyoiewPG+3VbwiqPE
IWeiyZtsg6yf1jNbDqEbKzDGAC7fxiLvB+YdL8yi28l/5sdBJ9Uzfn4skVA99N0V
kkVXIFEXC8K8qTvFE5tg7gr/xjgQ4GOd3q8zgLrrUsyaFvzrDQIDAQABoEQwQgYJ
KoZIhvcNAQkOMTUwMzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DAZBgNVHREEEjAQ
gg5ucy5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAY/O8JFy4yjlD6LfM
ivxnEbnzSmnQGeN5yOZMzUxG3X3AttB1yEnGz2eXOWqdWaJINmqTWD8ur6378Q8B
r1sqT0cBHCm0h7XcA2eRgLGipTTcC2DNaO0Pd9mbds/kP8oChUC0SOnoZlMK/EwT
m4wbzxx2jmslev95OKleD9ov70xPwDful8IngZN8hjryERsluZt7rGk1Js114Cbu
2O3LDu4WzURpvBuNOg0R8vhmwmL+syrmGp+c7zs19L4RjNykCtBy4PUB+NsKszzK
M57FHgR4Vn+3OLgu9F4n6D8ZC9nH0/inOkxKA415CC6vfKVUmozgHgBgQ241K5vS
Inj4p2usGV/OeGZqSOREsUTX14xmsUDmRi0XxckT2kWTl83taVmMeNLIjJ6daQYG
l5JH46FgaIU1eGY51n3qcFSb1EPSkiWcV6fPPZo5DMEDbHoQV0N2aTEY5pZo/K48
umPZLdhgHig2YkJqMbQFfmMitdLlNrLZrQICCf0rIQuGhy5AfYIPJobZgb4oM24V
5n6o7OF2M5HIEMUYDmOX/s2CaifuI6ES9Grd0IyZlbFxUBBkdCxF5o7l/3Z9uRCQ
XtXOm6PkBamhCsXab8lqmQgeI7k0TcyxMEPPU+RoCho3K3DLSZ4vtzrJzsV7AMqY
99JpK1/13gudvv1/YKH9g2sy5js=
-----END CERTIFICATE REQUEST-----

52
tests/test-data/cert.key Normal file
View File

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
bPLsMSwzUl5XrzdT74t4xqc40dTzDA==
-----END PRIVATE KEY-----

Binary file not shown.

View File

@ -1,33 +1,36 @@
-----BEGIN CERTIFICATE-----
MIIFqDCCA5CgAwIBAgIUB2KVB152fk+xkHoW0b2+xhZ062EwDQYJKoZIhvcNAQEL
BQAwaTELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xEjAQBgNVBAoMCVRydXN0LUROUzEZMBcGA1UEAwwQcm9v
dC5leGFtcGxlLmNvbTAeFw0yMjA5MjQxOTU5MDhaFw0yMzA5MjQxOTU5MDhaMGgx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4g
RnJhbmNpc2NvMRMwEQYDVQQKDAogVHJ1c3QtRE5TMRcwFQYDVQQDDA5ucy5leGFt
cGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL6wfBeleA3f
SncX5D9DNLIt35R7EIFM/n8yxNuXrUFnjttOgJGPG1me5JDERxR4+5qlB2YMbHaR
v51sPXqQSKUd9TCWtmwKmKushSwTOSna8miMwk52ycJ97bm1k/Y3dR8d1ZeO/NxB
qbJwQmY3I0hBaMA0DKc6S0QZKppbdcpHSTUG7tlrdjlTACRG5zPWlRZSPO3pnfvG
TkAuP3F78HlJDzLcbFF2l88kKl7yF66x2h/E8gJWmgMG5GsoFMiE/DGQT0Bzxpq8
7IqO4W33E1G951Q2dStox2gtirKgFx3Ber/t1bWZ9oE2XHFLQTHDObdh8IIR5Due
EItAX+veW+G6W6xNvQTiDihmlujoZapkbpVTk/H2FalP99Vk1XgBzz6UgUVt2Jz7
IM7Q5n8gtFi17BWt5EE/asoN1RHnQbrWWGn5q2jheZ6fXFbxy57twOC04pT7trYL
zPKv70MV5HoZCTyZ/GffgBQpUV+gCQwlst2UcNm/P1pA8wovVXVRXtHCXx2QrVUy
OdqYDHOxfryluiqfTTjbVvtcEliNz8pHkhftobyBd1BcYPz8SbX3Cyg3gyk8bfut
ZuudftXOTfq4dJBeEZia7AjjQGNmvIg5kwfTSwVs/QpPTSEUNYOQ+BqBRRSj5Vir
RzuXXyqcl26eS70Lx9/cceTKwXUZjZaJAgMBAAGjSTBHMB8GA1UdIwQYMBaAFOqp
aJvDQctlnnyzlu6iJb8H/bWgMAkGA1UdEwQCMAAwGQYDVR0RBBIwEIIObnMuZXhh
bXBsZS5jb20wDQYJKoZIhvcNAQELBQADggIBAIADh5B7YJj6zn6MDjaaaTcV/E8g
CdqrifuzxCJVp736admFKJB68UNdcZPSSdKaQ4S//6VEEL3plq6dOEE28lHbp1F+
+WgatTCnWac0l4yyl0syX5ECE64t5HrjZSMOUc/PPvafywDEF9GH4DeeYs91MUWY
YgvZzZN/isC6pkho/2xF7LEKDkmjN0QbgayoLUpE/Gw8syRYdzfcFXiNusCpoHXd
sOGgj51tlqjPU+L6ORZAbXl73q5xRNzht1/kkKEXggZcTECnwwIDVnqXY3Mi1UzI
r8hvTGA8dy8vBX5bwGyeSf61Ks9Ai7bBqui19Y44Gig4WKFaaSLr3yT0tT2Egpg5
Nkvj4KSfsr0Qop2bYj3chRJ3GnbFNpGxqWzIZU+EzJT9jtxqPyHLMcGzkm0VHPnU
vCEReukpqmWrMUFgRd4iUry8Y34JzSe12rZ98WeH0bcGkio+Vj1kxFm+2ynzI7U0
8D4M3Ld7crqukoJStx0DLgC7qIKh356Pj8UQCgC5eGXLaWX2V+K7zu+HvhJGR2qU
hfVecRgpnAql4smi27qhpdhLM7142Rl3LdzAymb7MNgd4vBUQ3C60Zr0mEEDjUoY
G6J6hgKEi3tlUy4g6p27H+wQxzMMBL1Nkc5g/fnCk63x4+9IPjnsG4I+pa5QCKzW
Xiu9adJBACmxkeuz
MIIGPDCCBCSgAwIBAgIJAIdx973umC+mMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNp
c2NvMRIwEAYDVQQKDAlUcnVzdC1ETlMxGTAXBgNVBAMMEHJvb3QuZXhhbXBsZS5j
b20wHhcNMjIxMTI3MTE1OTM2WhcNMjMxMTI3MTE1OTM2WjBnMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzES
MBAGA1UECgwJVHJ1c3QtRE5TMRcwFQYDVQQDDA5ucy5leGFtcGxlLmNvbTCCAiIw
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL+AWpnpykxMS1JZ8+jjiHRQW712
6Sa4bGP8sLjdVnEfYmFsu9yX7/b1AF1gVBbUXIAPWZstAyfZ2xCyhTcVpBeSU8jk
El8MIMUQKzuC4II/HaUTogJ3qNgexORThUOJowLMZpH6AX9MPrJNot/rkZg+sl3c
T7UV08DOti62125Pacl2S9AybJFZAax1mNkTngkoLMKQAz4fctGrRBj2L9gDeDHA
clUKkNVeXu/vPZ0Vet5VHnzUkG7geCk90jNIiWet84e4s2CU1ojRJQfSTZiz01xg
oe8BKr8ubzeF11ftf6BF6mrjw8aIFukDpO8Y5Iy94cY0rZeRNfSkVOuIIFaLH1nz
XsgBAX0u4pvkUFcaaA2WX+oS+XhQD5GX8r+1n37XFMZ3Q5r7NiqdEAXXp9I6R031
UY7BFdv3Zx0eXHbPNIfjLKNokXPLDii275wUOESij4P92P5tAOijHB/Qrvao/rBy
zYJFwiXS8uUcFkvxLohC1BAJf/pJOgE8PG7XLqmWtzKK/ZIZuDZZPRQCdc+gVICm
Pp5LpPZSF0KY8tvKiJ7A8b7dVvCKo8QhZ6LJm2yDrJ/WM1sOoRsrMMYALt/GIu8H
5h0vzKLbyX/mx0En1TN+fiyRUD303RWSRVcgURcLwrypO8UTm2DuCv/GOBDgY53e
rzOAuutSzJoW/OsNAgMBAAGjgegwgeUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAw
GQYDVR0RBBIwEIIObnMuZXhhbXBsZS5jb20wHQYDVR0OBBYEFI+OX/cZzkcIT7hR
ffpqG/5IeM4WMIGQBgNVHSMEgYgwgYWhbaRrMGkxCzAJBgNVBAYTAlVTMRMwEQYD
VQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMRIwEAYDVQQK
DAlUcnVzdC1ETlMxGTAXBgNVBAMMEHJvb3QuZXhhbXBsZS5jb22CFCjit4xzVF45
CewzmKO5a3vtrQ9VMA0GCSqGSIb3DQEBCwUAA4ICAQBn6dzJpo1YpAinWX65D7IJ
sIKM5Gazyj33KUNXDKK0xhoS1fJWGiHG3Rg9x8R11MSASueva++h8Ve8eaFbZHrY
lnNHea9x4XGlhhM+XVis2tgk7NtucofZlOnmJq68vxTu3hpKkzX7kNRkytnBGoqD
nZVwKxDFAlAm1oCno1fn85/4h6UCxAe06dGq4yyqAREbv4xquZIsd8Wpyl2aLTLb
2ba2q4v8YZ1jTjpNuQuI/HiNbXJoQR6hswkh4sknP1iv1QFOlRa98KubJQdSJ57Z
e1pyCNvTSzC5G77ZfMzA6jeK4HZRe2yrz75CKRWgo76CSW9A7sCoDBPM3ylN5eqp
rpWnVsaWFTDvhxiXOCDY7rjnM0xLItNWNxnev+ItNmqQkGO9PYFtFzBEz7JV/6lb
ns7y2Q1OpFsIfluT4XTJsNjjzbCTEIrG4fWgZ6W6VDq7qSoTgQElu8gwAwwkj2eF
Jm7BT7+HXD0G+Me2nkezUhy1GVe1dASecTQ+omfI4ubp0+qqVDt1PMIb/0GT2bZo
bzSb+7RuzjIczlgaOFW+8GEY4V0xVKSEe5btMJHAprysnbfniV/Q4wrLa8LB+LbN
WgaUVvt2TuOYjJoJ12HWFc6YttecsvVD4ZXYfosqOt+vMBNhq55k20FTpxXseD8q
J8aHzxshGtoM32JkFwwO3w==
-----END CERTIFICATE-----