summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoritz Bunkus2023-01-02 19:48:30 +0100
committerMoritz Bunkus2023-01-02 19:48:30 +0100
commit234e41afd46f260f2ebf236eb330edac425bf49f (patch)
tree91e2b88a865b7cb58c4b4321217bfb24897380df
parent4a3ed211c54d910c1ef0bb7f36bca0f0a55ff0fd (diff)
downloadaur-234e41afd46f260f2ebf236eb330edac425bf49f.tar.gz
add patch for enabling legacy ciphers
See https://github.com/mtrojnar/osslsigncode/issues/178 The short is that certificates stored in PKCS12 containers use RC2-40-CBC, which is disabled by default in OpenSSL 3.0. There is a PR that enables the legacy ciphers for osslsigncode: https://github.com/mtrojnar/osslsigncode/pull/194 The first commit adding the functionality is applied against release 2.5 and works fine. The second commit which only adds further tests does not apply against 2.5, though, and is therefore not applied by the PKGBUILD.
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD14
-rw-r--r--legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch161
-rw-r--r--legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch1421
4 files changed, 1598 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index aaec006b6d35..24b3eb643ce0 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = osslsigncode
pkgdesc = OpenSSL based Authenticode signing for PE/MSI/Java CAB files
pkgver = 2.5
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/mtrojnar/osslsigncode
arch = i686
arch = x86_64
@@ -10,6 +10,10 @@ pkgbase = osslsigncode
depends = curl
depends = openssl
source = https://github.com/mtrojnar/osslsigncode/archive/2.5.tar.gz
+ source = legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch
+ source = legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch
sha512sums = b50a7c8a8fb6668e999d9e63a931e5888c31f202ca539b62a385be6bacb03c2d25ac5fabd660c779817f0ebea14e9dfe05cdcb180c1cd25f818c07c28ebd88ce
+ sha512sums = a3a27c5adc2fc5c04a109f6b8a7fd5e12128e786d82f782fcd529cabc88d709c19363c1d38cc3de7680557bd84a93371b85033c6c46f4e4ee82f0bfd61a33a7e
+ sha512sums = 62553cef66fe8ae31ba7252e23aed51b0ff6f562bc204f2039410e63285690676a96cf4a4ad5b6c12eacd68adef811bbfe1022c72a092ac7dc4b7427de7bef43
pkgname = osslsigncode
diff --git a/PKGBUILD b/PKGBUILD
index 7baa9d46a51a..dbd7eb0453e2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,17 +2,25 @@
pkgname="osslsigncode"
pkgver="2.5"
-pkgrel="1"
+pkgrel="2"
pkgdesc="OpenSSL based Authenticode signing for PE/MSI/Java CAB files"
arch=('i686' 'x86_64')
url="https://github.com/mtrojnar/osslsigncode"
license=('GPL')
depends=('curl' 'openssl')
makedepends=('cmake')
-source=("https://github.com/mtrojnar/${pkgname}/archive/${pkgver}.tar.gz")
-sha512sums=('b50a7c8a8fb6668e999d9e63a931e5888c31f202ca539b62a385be6bacb03c2d25ac5fabd660c779817f0ebea14e9dfe05cdcb180c1cd25f818c07c28ebd88ce')
+source=("https://github.com/mtrojnar/${pkgname}/archive/${pkgver}.tar.gz"
+ "legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch"
+ "legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch"
+ )
+sha512sums=('b50a7c8a8fb6668e999d9e63a931e5888c31f202ca539b62a385be6bacb03c2d25ac5fabd660c779817f0ebea14e9dfe05cdcb180c1cd25f818c07c28ebd88ce'
+ 'a3a27c5adc2fc5c04a109f6b8a7fd5e12128e786d82f782fcd529cabc88d709c19363c1d38cc3de7680557bd84a93371b85033c6c46f4e4ee82f0bfd61a33a7e'
+ '62553cef66fe8ae31ba7252e23aed51b0ff6f562bc204f2039410e63285690676a96cf4a4ad5b6c12eacd68adef811bbfe1022c72a092ac7dc4b7427de7bef43')
prepare() {
+ patch -d "osslsigncode-${pkgver}" -p1 < "${srcdir}/legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch"
+ # patch -d "osslsigncode-${pkgver}" -p1 < "${srcdir}/legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch"
+
cmake \
-B build -S "$srcdir/osslsigncode-${pkgver}" \
-DCMAKE_BUILD_TYPE=Release \
diff --git a/legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch b/legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch
new file mode 100644
index 000000000000..a1df2afddcfb
--- /dev/null
+++ b/legacy_pkcs12_ciphers_support_01_119b88bb3d572b2c5deacf466b5c1dce6acc13eb.patch
@@ -0,0 +1,161 @@
+From 119b88bb3d572b2c5deacf466b5c1dce6acc13eb Mon Sep 17 00:00:00 2001
+From: olszomal <Malgorzata.Olszowka@stunnel.org>
+Date: Tue, 29 Nov 2022 10:01:39 +0100
+Subject: [PATCH] Legacy pkcs12 ciphers support
+
+---
+ osslsigncode.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 78 insertions(+)
+
+diff --git a/osslsigncode.c b/osslsigncode.c
+index e4cbd52..d520ce7 100644
+--- a/osslsigncode.c
++++ b/osslsigncode.c
+@@ -113,6 +113,9 @@
+ #ifndef OPENSSL_NO_ENGINE
+ #include <openssl/engine.h>
+ #endif /* OPENSSL_NO_ENGINE */
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++#include <openssl/provider.h>
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+
+ #include "msi.h"
+
+@@ -248,6 +251,9 @@ typedef struct {
+ char *tsa_crlfile;
+ char *leafhash;
+ int jp;
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ int legacy;
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ } GLOBAL_OPTIONS;
+
+ typedef struct {
+@@ -1198,6 +1204,9 @@ static void usage(const char *argv0, const char *cmd)
+ printf("%1s[ sign ] ( -certs | -spc <certfile> -key <keyfile> | -pkcs12 <pkcs12file> |\n", "");
+ printf("%12s [ -pkcs11engine <engine> ] -pkcs11module <module> -pkcs11cert <pkcs11 cert id> |\n", "");
+ printf("%12s -certs <certfile> -key <pkcs11 key id>)\n", "");
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ printf("%12s[ -nolegacy ]\n", "");
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ printf("%12s[ -pass <password>", "");
+ #ifdef PROVIDE_ASKPASS
+ printf("%1s [ -askpass ]", "");
+@@ -1288,6 +1297,9 @@ static void help_for(const char *argv0, const char *cmd)
+ const char *cmds_in[] = {"add", "attach-signature", "extract-signature", "remove-signature", "sign", "verify", NULL};
+ const char *cmds_jp[] = {"sign", NULL};
+ const char *cmds_key[] = {"sign", NULL};
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ const char *cmds_nolegacy[] = {"sign", NULL};
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ const char *cmds_n[] = {"sign", NULL};
+ const char *cmds_nest[] = {"attach-signature", "sign", NULL};
+ #ifdef ENABLE_CURL
+@@ -1400,6 +1412,10 @@ static void help_for(const char *argv0, const char *cmd)
+ printf("%26slevels of permissions in Microsoft Internet Explorer 4.x for CAB files\n", "");
+ printf("%26sonly \"low\" level is now supported\n", "");
+ }
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ if (on_list(cmd, cmds_nolegacy))
++ printf("%-24s= disable legacy mode and don't automatically load the legacy provider\n", "-nolegacy");
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ if (on_list(cmd, cmds_key))
+ printf("%-24s= the private key to use or PKCS#11 URI identifies a key in the token\n", "-key");
+ if (on_list(cmd, cmds_n))
+@@ -5736,6 +5752,52 @@ static cmd_type_t get_command(char **argv)
+ return CMD_SIGN;
+ }
+
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++DEFINE_STACK_OF(OSSL_PROVIDER)
++static STACK_OF(OSSL_PROVIDER) *providers = NULL;
++
++static void provider_free(OSSL_PROVIDER *prov)
++{
++ OSSL_PROVIDER_unload(prov);
++}
++
++static void providers_cleanup(void)
++{
++ sk_OSSL_PROVIDER_pop_free(providers, provider_free);
++ providers = NULL;
++}
++
++static int provider_load(OSSL_LIB_CTX *libctx, const char *pname)
++{
++ OSSL_PROVIDER *prov= OSSL_PROVIDER_load(libctx, pname);
++ if (prov == NULL) {
++ printf("Unable to load provider: %s\n", pname);
++ return 0; /* FAILED */
++ }
++ if (providers == NULL) {
++ providers = sk_OSSL_PROVIDER_new_null();
++ }
++ if (providers == NULL || !sk_OSSL_PROVIDER_push(providers, prov)) {
++ providers_cleanup();
++ return 0; /* FAILED */
++ }
++ return 1; /* OK */
++}
++
++static int use_legacy(void)
++{
++ /* load the legacy provider if not loaded already */
++ if (!OSSL_PROVIDER_available(NULL, "legacy")) {
++ if (!provider_load(NULL, "legacy"))
++ return 0; /* FAILED */
++ /* load the default provider explicitly */
++ if (!provider_load(NULL, "default"))
++ return 0; /* FAILED */
++ }
++ return 1; /* OK */
++}
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
++
+ static int main_configure(int argc, char **argv, cmd_type_t *cmd, GLOBAL_OPTIONS *options)
+ {
+ int i;
+@@ -5751,6 +5813,10 @@ static int main_configure(int argc, char **argv, cmd_type_t *cmd, GLOBAL_OPTIONS
+ options->md = EVP_sha256();
+ options->time = INVALID_TIME;
+ options->jp = -1;
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++/* Use legacy PKCS#12 container with RC2-40-CBC private key and certificate encryption algorithm */
++ options->legacy = 1;
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+
+ if (*cmd == CMD_HELP) {
+ return 0; /* FAILED */
+@@ -5824,6 +5890,10 @@ static int main_configure(int argc, char **argv, cmd_type_t *cmd, GLOBAL_OPTIONS
+ }
+ options->p11module = *(++argv);
+ #endif /* OPENSSL_NO_ENGINE */
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ } else if ((*cmd == CMD_SIGN) && !strcmp(*argv, "-nolegacy")) {
++ options->legacy = 0;
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ } else if ((*cmd == CMD_SIGN) && !strcmp(*argv, "-pass")) {
+ if (options->askpass || options->readpass) {
+ usage(argv0, "all");
+@@ -6051,6 +6121,11 @@ static int main_configure(int argc, char **argv, cmd_type_t *cmd, GLOBAL_OPTIONS
+ return 0; /* FAILED */
+ }
+ #endif /* WIN32 */
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ if (*cmd == CMD_SIGN && options->legacy && !use_legacy()) {
++ printf("Warning: Legacy mode disabled\n");
++ }
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ return 1; /* OK */
+ }
+
+@@ -6313,6 +6388,9 @@ int main(int argc, char **argv)
+ free_msi_params(&msiparams);
+ free_crypto_params(&cparams);
+ free_options(&options);
++#if OPENSSL_VERSION_NUMBER>=0x30000000L
++ providers_cleanup();
++#endif /* OPENSSL_VERSION_NUMBER>=0x30000000L */
+ if (ret)
+ ERR_print_errors_fp(stdout);
+ if (cmd == CMD_HELP)
diff --git a/legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch b/legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch
new file mode 100644
index 000000000000..adb167bb9837
--- /dev/null
+++ b/legacy_pkcs12_ciphers_support_02_2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde.patch
@@ -0,0 +1,1421 @@
+From 2dcbc99f79ba9e2c1b88fac15f0017d4e859ccde Mon Sep 17 00:00:00 2001
+From: olszomal <Malgorzata.Olszowka@stunnel.org>
+Date: Tue, 29 Nov 2022 10:03:19 +0100
+Subject: [PATCH] Legacy pkcs12 ciphers tests Use legacy PKCS#12 container with
+ RC2-40-CBC private key and certificate encryption algorithm
+
+---
+ cmake/CMakeTest.cmake | 15 +++++++-
+ tests/certs/CACert.pem | 30 +++++++--------
+ tests/certs/CACertCRL.pem | 16 ++++----
+ tests/certs/TSA.key | 52 +++++++++++++-------------
+ tests/certs/TSA.pem | 30 +++++++--------
+ tests/certs/TSACA.pem | 30 +++++++--------
+ tests/certs/cert.der | Bin 1010 -> 1010 bytes
+ tests/certs/cert.p12 | Bin 3731 -> 3747 bytes
+ tests/certs/cert.pem | 62 +++++++++++++++----------------
+ tests/certs/cert.spc | Bin 2001 -> 2001 bytes
+ tests/certs/crosscert.pem | 32 ++++++++--------
+ tests/certs/expired.pem | 60 +++++++++++++++---------------
+ tests/certs/intermediate.pem | 30 +++++++--------
+ tests/certs/key.der | Bin 1190 -> 1216 bytes
+ tests/certs/key.pem | 55 +++++++++++++--------------
+ tests/certs/key.pvk | Bin 1196 -> 1196 bytes
+ tests/certs/keyp.pem | 60 +++++++++++++++---------------
+ tests/certs/legacy.p12 | Bin 0 -> 3715 bytes
+ tests/certs/revoked.pem | 62 +++++++++++++++----------------
+ tests/certs/revoked.spc | Bin 2463 -> 2463 bytes
+ tests/certs/tsa-chain.pem | 60 +++++++++++++++---------------
+ tests/certs/tsa-serial | 1 +
+ tests/{certs => conf}/.gitignore | 0
+ tests/conf/makecerts.sh | 29 ++++++++++++---
+ tests/conf/openssl_tsa_root.cnf | 1 +
+ 25 files changed, 329 insertions(+), 296 deletions(-)
+ create mode 100644 tests/certs/legacy.p12
+ create mode 100644 tests/certs/tsa-serial
+ rename tests/{certs => conf}/.gitignore (100%)
+
+diff --git a/cmake/CMakeTest.cmake b/cmake/CMakeTest.cmake
+index 140e247..44f1d30 100644
+--- a/cmake/CMakeTest.cmake
++++ b/cmake/CMakeTest.cmake
+@@ -20,6 +20,7 @@ file(COPY
+ DESTINATION "${CONF}"
+ )
+
++set(legacy_p12 "-pkcs12" "${CERTS}/legacy.p12" "-readpass" "${CERTS}/password.txt")
+ set(priv_p12 "-pkcs12" "${CERTS}/cert.p12" "-readpass" "${CERTS}/password.txt")
+ set(priv_spc "-certs" "${CERTS}/cert.spc" "-key" "${CERTS}/key.pvk" "-pass" "passme")
+ set(priv_der "-certs" "${CERTS}/cert.pem" "-key" "${CERTS}/key.der" "-pass" "passme")
+@@ -61,7 +62,7 @@ set(verify_opt "-CAfile" "${CERTS}/CACert.pem"
+ )
+ set(extensions_4 "exe" "ex_" "msi" "cat")
+ set(extensions_3 "exe" "ex_" "msi")
+-set(files_4 "signed" "nested" "added")
++set(files_4 "legacy" "signed" "nested" "added")
+ set(files_3 "removed" "attached_pem" "attached_der")
+ set(sign_formats "pem" "der")
+ set(pem_certs "cert" "expired" "revoked")
+@@ -74,7 +75,16 @@ add_test(
+
+ foreach(ext ${extensions_4})
+ # Signing time: May 1 00:00:00 2019 GMT
+- set(sign_${ext} )
++ add_test(
++ NAME legacy_${ext}
++ COMMAND osslsigncode "sign" ${sign_opt} ${legacy_p12}
++ "-in" "${FILES}/unsigned.${ext}" "-out" "${FILES}/legacy.${ext}"
++ )
++endforeach()
++
++foreach(ext ${extensions_4})
++ # Signing time: May 1 00:00:00 2019 GMT
++ set(sign_${ext})
+ add_test(
+ NAME signed_${ext}
+ COMMAND osslsigncode "sign" ${sign_opt} ${priv_p12}
+@@ -280,6 +290,7 @@ else()
+ endif()
+
+ foreach(ext ${extensions_4})
++ set(OUTPUT_FILES ${OUTPUT_FILES} "${FILES}/legacy.${ext}")
+ set(OUTPUT_FILES ${OUTPUT_FILES} "${FILES}/signed.${ext}")
+ set(OUTPUT_FILES ${OUTPUT_FILES} "${FILES}/nested.${ext}")
+ set(OUTPUT_FILES ${OUTPUT_FILES} "${FILES}/removed.${ext}")
+diff --git a/tests/certs/CACert.pem b/tests/certs/CACert.pem
+index e77f7fe..bfffc5d 100644
+--- a/tests/certs/CACert.pem
++++ b/tests/certs/CACert.pem
+@@ -1,22 +1,22 @@
+ -----BEGIN CERTIFICATE-----
+-MIIDoTCCAomgAwIBAgIUOK8lwJ8A1Oqw8jDAb3TF06ve+PcwDQYJKoZIhvcNAQEL
++MIIDoTCCAomgAwIBAgIUD5zM9oBx4OIRM05wnRjq2Ap2dlowDQYJKoZIhvcNAQEL
+ BQAwWDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEgMB4GA1UE
+ CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEDAOBgNVBAMMB1Jvb3QgQ0EwHhcN
+ MTcwMTAxMDAwMDAwWhcNMjYxMTEwMDAwMDAwWjBYMQswCQYDVQQGEwJQTDEVMBMG
+ A1UECgwMb3NzbHNpZ25jb2RlMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhv
+ cml0eTEQMA4GA1UEAwwHUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+-AQoCggEBAKzObJwYq4t9Y/OOQLqUNLU8RDXq284L8zQgRLkvApF87FNN7kozIgC9
+-/HAgJSho/Lup5lzkCWa3fjkYm1EBrL+JihesSaCxxe7LOg6tRaY+WxikwMUnlkNE
+-s3R+DogeGVsla4q0FEcICiz3FHTfSAUVmrN3Nj1ll7npJXrqmXxfCuO3slgjUkHq
+-tdZ5t1rSWwbiUhGIQKLzo3/uw2XoOI28qpoOw+0/y8AyjWs8My3u8GrYFr+qh5fx
+-Y0Zp0EhhAJo23Xd43XmeVKjuKIOaHu3JiM8sp9K1WFsTvFNAO27TBRn/X0mJCeDX
+-T117dQxhWOCcQ/uRGuXICT4ign8MLtUCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB
+-/zAdBgNVHQ4EFgQU6ewx3DIpbR8OptEmDFlYNELRqP4wHwYDVR0jBBgwFoAU6ewx
+-3DIpbR8OptEmDFlYNELRqP4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUA
+-A4IBAQAhRMun0IzPmHVFM+SOfSCPVAgogWpqR5XlBAFlS+Aen6v3ukQAQjEhfBbE
+-dZG6ye9i0ebf9qXYTvSq5wfaqP7FGb2/Z96uPXNMXPi796KjLW2CG578DitORPb7
+-x1eV3UGrQX2bMQ0JbGkBU+DIdIRBqDfad/kjLtm5eHyCbaodSWdaZO4LSUIy3MBx
+-2UeBj2qD4RTA0Dt7hG7RA5QdTxHlZyLIk8HX3krZ+il5RmSbOnQs/XqK5DJp4J5p
+-122sIO4Y9ki+Wewzx8f3/7mcVbcMo67GwRHo8bk3GjWE74pczyrzfP68vDQ4tn85
+-NcLPeLClfSziJD09z+Iyp94EQeKX
++AQoCggEBAKap6aiOWSWzu26AxjlHa4L8sTzYGxQZysvbys3FIxqsztIsWRB0jKq7
++V4x2why9Sgi6tGKWatk0xOckTDiyFFD7BRYf3qDxFivzTkKCvhbvbbxX/6VwcOfR
++XQ0JTQeWFD2o26WWO2MbM0ZXyfZBbiRgIqVi+fbmoEASfYz7eGYET/w7807ERDch
++E3o1XbCgc4mFO/pS3sMykW+2zCz09SGLGKmdkReWXhpiTZ1ZEk9GrqVqKKZ14UIA
++h6nCwoNQpjmQx8KDfjnTYRPYg0N03MjL9i3F11qpYgu6VdZ2l/xaun3NYFBrJ+44
++Pdc+QOqVZZB1YqWqQYPm/OoSlY5p2xECAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB
++/zAdBgNVHQ4EFgQUc2QE5V0j8b3ef6gx5kBosb0lE1IwHwYDVR0jBBgwFoAUc2QE
++5V0j8b3ef6gx5kBosb0lE1IwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUA
++A4IBAQA1jjltAjaXdGmNTLmbD/EvsqCtmX0gS0tXsncbxHEmBNq/gStZg4IhqApw
++LE8uVkjGVxRd3JPsqNL2furjzK1axMZsaNkJD1dWxcT8kfC3+cngTPiWOlCmbjJW
++CjuUWlAUnlFU9VfW0xKMToEC3yU16MSM6L3dIgkp7TC1AfhQLj5Iokn5Cc4r5kzT
++i/sQPlzPYVE+3Onq5VGMMkzK8gmS81Zqndfd0KQvKVdHZrsM88U3+1nKEsQ4dd/3
++8HV+C7LE+ydPV3ywJa6KTtmCMhUlLb2IpNbBgRkro69rkJWtSVDIHjoqwKokGDzx
++kolS+GurfGkHKTbY8HwyfBTQjZR1
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/CACertCRL.pem b/tests/certs/CACertCRL.pem
+index 30e30fa..305530a 100644
+--- a/tests/certs/CACertCRL.pem
++++ b/tests/certs/CACertCRL.pem
+@@ -2,12 +2,12 @@
+ MIIB9zCB4AIBATANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJQTDEVMBMGA1UE
+ CgwMb3NzbHNpZ25jb2RlMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+ eTEYMBYGA1UEAwwPSW50ZXJtZWRpYXRlIENBFw0xOTAxMDEwMDAwMDBaFw00MzAx
+-MDEwMDAwMDBaMCcwJQIUOpY5wp7DtqsdxII7sxculedk0PYXDTIyMDcyNjEzMDk1
+-NlqgIzAhMB8GA1UdIwQYMBaAFJ4FrAtb4UB/ag702URPiid97ziLMA0GCSqGSIb3
+-DQEBCwUAA4IBAQA4Kw0vEJrtjjMam16iN/stOMxJDgkp1IQzA3narxr9fEjX5Ynk
+-JztuEExtowPIDOLGWCySXNEMmxCzXNAMvlUq+UQvnWrwgHQ9R7TBYIcAY+VRmzKz
+-T4PXvDSL2WMuJ1dLWoIcL2D0wEdti7YMvAnCrOC8HAPGgke5QcOgSfMSAYSAtpiw
+-PZAFgcuo53AodlCw9J+CPcHPYw+C2QExOy8s8q6d8Xgjg+Ge7v3RxLWy74sNPl0u
+-uZ79vcLNEeqEXxKaw5abqDqIDcUKIT3b62KsSxkak9IGNMLcTASw1V+YaKVLSYNW
+-NTuc5WJblfZi/q7WUMKkmRERzvdg2rf0CSH1
++MDEwMDAwMDBaMCcwJQIUDNLHzkIApmatwuk4ju+Cl74nPlsXDTIyMTEyODE0MjIy
++NVqgIzAhMB8GA1UdIwQYMBaAFDOp0wp8AlPBt9gaqapVpq6gXOmcMA0GCSqGSIb3
++DQEBCwUAA4IBAQC2ThTTU7HzwKakJGaeAXsv57I9gQwZJh1sM0CW1bYhQCFQXx9n
++hNnpKu3CezoldjTYgZHphAwrZfLz/u8bKuxuOn/gBT6tRNU7YhFd605Qp6AzCQus
++bENda7LYc+cWbrxtndc54zmEMZ1LkpYE62APN/aCC29BlWQQw+/IvprI10MROlB2
++z3tUjiBNmabHyD2tVLPfuoK3Wdm0upWSYhDJNuFwdIhyZgkYo04YxHrmnfkIp6fD
++HuD341PRMTAItN4334HaJwgu2Oa8MdiiG+ZPlIUSFePgFLgFeNE3EgwTxIu8SQNo
++k5EM7M5+03i7C8p9bBS88n2LzHhoHDI8gfvQ
+ -----END X509 CRL-----
+diff --git a/tests/certs/TSA.key b/tests/certs/TSA.key
+index 5175610..1d46366 100644
+--- a/tests/certs/TSA.key
++++ b/tests/certs/TSA.key
+@@ -1,28 +1,28 @@
+ -----BEGIN PRIVATE KEY-----
+-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCivbbTCnbOqPoV
+-7VVP/KJzgslx8yfX9laGwTsvzqStQtG8j40ljR85WD/bgy3I5duebudg7JhOVH2f
+-aSqbh8SCzP4YNDFcseDIuHdoXi54POgW3S/wbe8l8P7g3btcBgnlXh/izhUlEMib
+-Q/8G8UZj0n/MgKMLzcXc4t2eQ4Pzw7xAPqoXBZ20Fg2rFBfUsDDLc5F7lpO5t1WQ
+-dXTYmF0oAL/HLmd+HKe5Xgp9jJ6XacesjWLnhRdZ06uUP9cgo+Jem4QZxeFhOtMe
+-KAf7JH3Juz2Gi0a+4dMSNzES4m8RAlf6pXh4kAh7EhMNb/Ir6ZpY8uKM7dtn38mh
+-1f59EKc9AgMBAAECggEAK5zB0P695hYcpyGqOjxO4LvM9m+eXt7SQ1ynWuF6+j+s
+-62ZhAg42rux6eH5IF82ZtHSuJyhgjKVR4RWS6IlS3WbINX5PODMnNUNSJLMQqwJP
+-hEkUXs9nRni2JVbmrfukTUaTLvnhasR7rjhjsN2Z6ohv3UMf7rrfapmVoKMhSoLd
+-jqvZ2ZoaT5mfTiK/5PDyWqrt/vmvE4VlipAsvudwozG5vQDEsCNDNUTg5OTGnPUU
+-i0xeQTioqzCcweIlEaWhj/eMHx/eAeZ6V0Evid/YwTDlbTqVDWZGLJ/phOnKJs3V
+-j+eOv7E2d1ga7149SPDIv5Y0YZ91v3M06ICk5o66gQKBgQDSM+YyR5YOJTSAuAcI
+-uKTc33wwCbPiJF/F1zLJDdPp2IamZQbuNIX/8fOG3Gho+OnfNAykMcr3rFrug2vi
+-9GhWDQqguYGh16xos+2zNan6P/s0/rQ4OfPIsTEGC8X3fJeMzZUNMvnyN/FXzzus
+-020o29gu59esEfGHEsvAupC3IQKBgQDGMqGLgrU4oW/5mmm4BZlwwkZJNMmFH49u
+-Qe4Ylj87SQduExJMmTfrmANqQXu7RXG0IxLcvhwMLVCCYAkvuBv1awsbg2yfP1Pn
+-Wb/K+5CaHaxnpwSpRiGaN6fnAPDl8PnALMVXtQGru2MMcISxOIFQ9slHth0lmaMo
+-odIPIL1YnQKBgAOSskUEhn5zD3NorWXujY7blabTY2VirOYWBFz6iTGeZpuJeBaw
+-ed6h5DvUn0m5gXAz2EsqNYMEQP9w6HKRKPzdd+LHhHaVze5xsIatUNhaIhECi1mx
+-Un2E1Yp+xLyyN3lDPVdeGHWPkeCmOyNy7JYXNpOFiVr5axuarC/4e+FBAoGAeuRR
+-/mshaufOwnnYK15tcdlEM4gjnAOhr7/5ng0rT9tMXBg/NHeckNxE4dGQouHASu2k
+-eHL4eSRv0ycxCwGhdF7XGEw5QdTGdaDUp0ussaLMj8ijv0HY/AKefUG8HRd6BIq+
+-Ik/9pTofhEsQO8LJjCY5T9m/4NyOqlcMJI0sWpECgYBvPLnutbBXYONVAE3jL05K
+-hWwenKpv5Aaa11ahqzhil2Tj+VOMtmvhsSc5loSG83qp5LtN4LxyR0Vn9AGN7Z+d
+-Ut6LHeZ/DMW3/RPT+1MIKm6WLNxgk5YvuCxprdpfE5tTmV9/t+t3Uao7TRsLPl2o
+-qAKz8Fvq0el5RW3EtAgd4A==
++MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDngzpJn/umy8rb
++AySHhXZ4jxljzZ/xDW/8txby3fg1LLP1zeP9g5Vwq70B5Z2V1QWevuiCzzEhMKxU
++6JvFUgJnCAqKLxcPxmplgLHIOftq6ly3XicmvwXzD8uE0mDNP50v4hABl66OlRF+
++3cGlwEHlr/A4VYcyEc70xBI2cUjmutr2O2+Ncpamw/iAl60zuKD9CGP7AMfcfUC1
++CdlomyMAk3ROvWoJXxV5jCg7LoTQWSzdzQLi2/mBjG0y9Hl4dlR27jsoeUNlkluS
++C8Dh3mPGQ/rfIEc/en1UO+sVZRo9iBJCw88zjv6uCf2nlevaAUptRuvQqEv4WMNa
++MDe0LqKFAgMBAAECggEADGeQHnTHf5Lozh5XfTlt9Ry5wAq6+Kf/KZvHy4CQNY0t
++IU0EW8eKoMxa5rieXnJZCD3zaFrgp4YbnbsO6Z4wycN5CRln020Os1yXagKNUZe4
++Gw0c7OsMTw84GOhKzoSLkA69S9CMRlB/bPxFzXNFNKDeLq6KfWjN3XiJ/0fHn7Em
++RnHB3C7/z+u70YbkN1T7edzn70NRhBNCVIXuXxrQ946BRJOGyHlarDHQPffGfYzs
++r4Ym7DRd2RyIH3xWdJfEdcQOgioYpQqMiXk+afMNRNbkSpi2ImPACIpX54Zxkjni
++/zjST+CBC/8PZfdmVCW/mRNs2IOmZWCK3yka7JKRgQKBgQD1S9VJbBLHpKAtnahr
++yqwAD82dnaw21BKJaPqeOq4it+EF8p2xmjDCuOXl8qw5t0+SgIalQwWzWVCLoav9
++58ajCJwuTcqnrrmhx0oX3eAYt6z/hnInWdLpDppg8BOxMmFzgPI2+6g3SyXDex29
++RslygQ8/xReUV//LOYayK4GPQQKBgQDxnWt8MnGiQGVaA1x7wM96C0Y8RfuaqfNX
++/eyuw9Z4AB+wg4G2d0NhsbSNdmZ72KuKXaa2Gl3MJ7ImUGbskgTNybQfIwftwcSZ
++Road4j3ZVfNN6QdOEu+c/8xyf4wEf1ygD7qp/geXRSOf1eAC3bg+qAPFRi4Ml9vZ
++WPtQHoeGRQKBgQC1ZeQPzPVCYHL36NxRAmsaDJXA1oYxcblXlqOnebum/xZQgK+v
++VFh016lj2IcWk4Ir1BI+iobfr9AJwoBfXxSdIlPlRi/0uxiaE7euWK1Neh9cQ7+N
++bDa1lNADmebmJly8vwHgOVCXu2Hs4tIGVB/LJrfxL76VPFJ0plD+13+TQQKBgQCu
++tXLMerlaZpAi930/axtbl51w5fXaT3vLq6wiby+80/IWM/FunGyXzuTMycmvUeww
++gCmVUhlzD10tgUP7Wlao62oYfb8098EOSEX9EmRArHrjYlZK6TxkXT9bp8j6U5IJ
++l3YVh7+7bV4mLIPv7p1UiS84zddseb6aOlJ3C6xZtQKBgQCSBAvt4wrMU62+0Zu/
++RAPl0QOR+4WtbVIuoROeYk3Vm5CFooZmE2PcCmatXw2LL9VPQ+wIsc8Ov/c6SNjW
++8FUj2ihdLEhA4pLl7hADAnNBwSnK2nODP1TDoIKG1Hw5yZoYIS4xFz/F96brkaLE
++IiONCCr/bs9tYZNfl92oXvIc/A==
+ -----END PRIVATE KEY-----
+diff --git a/tests/certs/TSA.pem b/tests/certs/TSA.pem
+index 8382d10..0425894 100644
+--- a/tests/certs/TSA.pem
++++ b/tests/certs/TSA.pem
+@@ -1,28 +1,28 @@
+ -----BEGIN CERTIFICATE-----
+-MIIEzTCCA7WgAwIBAgIUfRjXKciCGA4XbhbhxbAwfpcLGmowDQYJKoZIhvcNAQEL
++MIIEzTCCA7WgAwIBAgIUaDV4MOupysdYAfwy1BiaGDN6KWwwDQYJKoZIhvcNAQEL
+ BQAwYDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEkMCIGA1UE
+ CwwbVGltZXN0YW1wIEF1dGhvcml0eSBSb290IENBMRQwEgYDVQQDDAtUU0EgUm9v
+ dCBDQTAeFw0xODAxMDEwMDAwMDBaFw0yODAxMDEwMDAwMDBaMFUxCzAJBgNVBAYT
+ AlBMMRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxHDAaBgNVBAsME1RpbWVzdGFtcCBB
+ dXRob3JpdHkxETAPBgNVBAMMCFRlc3QgVFNBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+-AQ8AMIIBCgKCAQEAor220wp2zqj6Fe1VT/yic4LJcfMn1/ZWhsE7L86krULRvI+N
+-JY0fOVg/24MtyOXbnm7nYOyYTlR9n2kqm4fEgsz+GDQxXLHgyLh3aF4ueDzoFt0v
+-8G3vJfD+4N27XAYJ5V4f4s4VJRDIm0P/BvFGY9J/zICjC83F3OLdnkOD88O8QD6q
+-FwWdtBYNqxQX1LAwy3ORe5aTubdVkHV02JhdKAC/xy5nfhynuV4KfYyel2nHrI1i
+-54UXWdOrlD/XIKPiXpuEGcXhYTrTHigH+yR9ybs9hotGvuHTEjcxEuJvEQJX+qV4
+-eJAIexITDW/yK+maWPLijO3bZ9/JodX+fRCnPQIDAQABo4IBiDCCAYQwDAYDVR0T
+-AQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQUKWCqogni
+-6SseJ/P6LXo0M2cK++QwHwYDVR0jBBgwFoAU/5nNuG4Tm4v2y9uKf428/4fVQesw
++AQ8AMIIBCgKCAQEA54M6SZ/7psvK2wMkh4V2eI8ZY82f8Q1v/LcW8t34NSyz9c3j
++/YOVcKu9AeWdldUFnr7ogs8xITCsVOibxVICZwgKii8XD8ZqZYCxyDn7aupct14n
++Jr8F8w/LhNJgzT+dL+IQAZeujpURft3BpcBB5a/wOFWHMhHO9MQSNnFI5rra9jtv
++jXKWpsP4gJetM7ig/Qhj+wDH3H1AtQnZaJsjAJN0Tr1qCV8VeYwoOy6E0Fks3c0C
++4tv5gYxtMvR5eHZUdu47KHlDZZJbkgvA4d5jxkP63yBHP3p9VDvrFWUaPYgSQsPP
++M47+rgn9p5Xr2gFKbUbr0KhL+FjDWjA3tC6ihQIDAQABo4IBiDCCAYQwDAYDVR0T
++AQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQUVzwbd6xW
++ZJQxaV7Vq7t+rbzjtJQwHwYDVR0jBBgwFoAUZiXazafm/zg+I4wbylR/skX0dWow
+ gYQGCCsGAQUFBwEBBHgwdjA5BggrBgEFBQcwAoYtaHR0cDovL1RTQUNBLnRpbWVz
+ dGFtcGF1dGhvcml0eS5jb20vVFNBQ0EuY3J0MDkGCCsGAQUFBzABhi1odHRwOi8v
+ b2NzcC5UU0FDQS50aW1lc3RhbXBhdXRob3JpdHkuY29tOjkwODAwPgYDVR0fBDcw
+ NTAzoDGgL4YtaHR0cDovL1RTQUNBLnRpbWVzdGFtcGF1dGhvcml0eS5jb20vVFNB
+ Q0EuY3JsMFUGA1UdHgROMEygGDAKggh0ZXN0LmNvbTAKggh0ZXN0Lm9yZ6EwMAqH
+ CAAAAAAAAAAAMCKHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA0G
+-CSqGSIb3DQEBCwUAA4IBAQB4YXa5nVWUzWSsUDMfYFTEETOe8boUErwfrDNBuj6z
+-B5en20FhI49i6PCYEfNq3vrAtPOEFJj+KPomN3C46VLxbUEvqWLdq6EyzWvVVmXK
+-VLeC0qV0m6CFM8GplaWzZdfFTQaaLUhgY08ZU2gp4QsoS2YjAosxlZrNSm6pBbv3
+-q+Og1KeSK8gKS0V89k+6e3LOEF6KaNWKSkoz5xDniQY//mTjiDcNmYUh0KhHfhdU
+-eO92M82uJSaDqnRs5HsWPs6z6qdfpuvj++OtQ1VCM2p5SEH2sEomdeN3YYChuG4h
+-yzn0mYAdbTyGJHlFm17AH+SQRbVqCKYdHDaqsMb+fWzi
++CSqGSIb3DQEBCwUAA4IBAQBdZ/Zgc0e6F4H7J/rdAegE3MhZPLLAPGq/H5IPC4ij
++ksW6ujTejCJgtSWAfkUXjaCDQvT7bkq4AMo18ELc3I2kpTp1dvftc3aMoDBuGz/7
++K0sxlA1DFncmY6hhh3cg2Gjb1vlnuWnwwSrfy46UuNvsJi4DjBZXHt+gY8KM4Gas
++i3MIqlM/ZIlljc2LRGUKxftkM3odP1kA65yNlcMV9BESRGsAOH8nb6f7Qb4I6vjk
++Oijzs75JPWy9C+vMutH5LSfMAjrdRmNKnDoWVCe22QT1jReIRMNsRjdX0j+SkyyL
++HpqLVmczWLFHPspm8tRyAI7Vc0CpY9ixJyeidD4mg7iv
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/TSACA.pem b/tests/certs/TSACA.pem
+index 3f50672..22481a4 100644
+--- a/tests/certs/TSACA.pem
++++ b/tests/certs/TSACA.pem
+@@ -1,22 +1,22 @@
+ -----BEGIN CERTIFICATE-----
+-MIIDkDCCAnigAwIBAgIUJ0nfE+EVsIThltlY2LHVWMJVIq4wDQYJKoZIhvcNAQEL
++MIIDkDCCAnigAwIBAgIUWSzkBFwFSMGVBrF88OJwBUP9eNkwDQYJKoZIhvcNAQEL
+ BQAwYDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEkMCIGA1UE
+ CwwbVGltZXN0YW1wIEF1dGhvcml0eSBSb290IENBMRQwEgYDVQQDDAtUU0EgUm9v
+ dCBDQTAeFw0xNzAxMDEwMDAwMDBaFw0yNjExMTAwMDAwMDBaMGAxCzAJBgNVBAYT
+ AlBMMRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxJDAiBgNVBAsMG1RpbWVzdGFtcCBB
+ dXRob3JpdHkgUm9vdCBDQTEUMBIGA1UEAwwLVFNBIFJvb3QgQ0EwggEiMA0GCSqG
+-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGOTX1f9dmtUiyzlsUInRIGfRMya338SVx
+-vYGeOwdpTSSGlYUVwR9AuFewQF5+klelstCJe+SoUG0AdzS30mRWlQrhip4UdvdW
+-T2gkNKbSn6DQzlWoQej9izqRLxAsbuszgkvnLOBEmPaLimDsCgu0bAN95Hp0Hls9
+-O/fVmzh8VuV4iscxc7q13ZB7CylWgwd55CFEGd/jpJ6kMwSHbOLoBWp4GQ3KxR+c
+-ASAo0FapU2WSZB2EYWszRiyq91X+AvIYN4ypTv7RccgfUvnZ2qFykJAkf/wgkynu
+-Qg7rCUNfUEpDc7jlqtDWR7iLrtHBkA17C3IU8ymmKQYWfw3ZyBwvAgMBAAGjQjBA
+-MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP+ZzbhuE5uL9svbin+NvP+H1UHr
+-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAbj3aFwIUxvzwgywO
+-gj01JM8GNbw1E4MGdkaNI8rgeY8ay15ZXhR9NpRWWb6Y7IXPq5XhuEktVte5Z4Kf
+-XLBrr7Xe9VVqJL9zd1tMzOEM/zG77rZf/iXBTZLkCtQc/GOEY4TTWKNEl5hiWVE0
+-po97GX5XHoeyHlWQ75sd9z6MxFxmvdp9/uyYD700e9sd5gcD8LGvHw2DNy8vntYV
+-ia9h95N9i1umffxU460o8W5GoIcsD13B3YftvnWhGSXqovBRFgcPAQZ4eW9Qh/zA
+-4zQBQrRvmREPihXVdgtWVpbRchP99oSZBrYr7Hh/P69rycklquqxJl1ol1wbT6dK
+-S5Gmng==
++SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1iXUDwCHsyISjyimEvnvIPer4aqdpZ26y
++uKI2oURQQpAlL+PlbP5/wm63tyxCY/Oo6cadcXEk9TGEi/SpGMKJtfaZAFzygEQC
++dU995pfpLsQ9Aaf53ErE4L7RsB+noDnYd0UWklBHBmKmWSszfaS/qcsqexP+BBzy
++GgUK1/bVg2SjYESoQ7lWA0o/s9VTYBQ0k36EqykBjWhy87goKBvvDkafqbWRcG+8
++RMgbzvD4vBjOyZWhXH6cKj6Hg7QfDjuTQWV7tQ+zCq0pGMsftcH+N7z5oXyNUiwj
++ALPWxOvrViNRDG2I3GUXU3yWQIHNhmNkIrNE5GJRmx1dkYX0oEW3AgMBAAGjQjBA
++MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGYl2s2n5v84PiOMG8pUf7JF9HVq
++MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAmCnnUVQoKhbKLqyp
++qNdyT5FFEKyoCd9defa5bKzPhzdkkuxPjidsLsxvP58n6EB8i2inddBfdUxv/0lG
++kGHO+7Lz8qjMlJ9+VlLTmA96Q4SHBP9XKUmyYPx3PpEZcxiJZNXoUO1ZokTps0/Q
++BSoQ+9SPIIzxEzr0BNijtY/x6TJV5M9J1ePWuK1Vu0mhTs3FPE+/wXzxZG94ZQLg
++pX9hkkXmvRIe7dg3XZDUtKglH2p4c22vX7UP4qyqpPWFWKw1lCYt9K7QOVAdEfCI
++TlpZh6MQPZIk0FUAWOxDeRTAJk/Pe0I7wf+L1hwxi1y4JfgebNXynp46T6v/I5Wm
++UApdTw==
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/cert.der b/tests/certs/cert.der
+index 94bd47bedbe9c0d1c98b56c56de853a9cfa623ff..5a7b0f86e36411ff1435ea00bdb7cb0d3aa9cdc9 100644
+GIT binary patch
+delta 624
+zcmV-$0+0Rj2l59aFoFZ_FoFWspaTK{0s<6k)KQ^cz=!QH5eUwdtmQQ3nfM~HBT@l>
+zx0Tpk+(m_^8);$&9cnTLiEOU6fKLL(@5>vdk{1K6wqlZlkV!x}>5zB4cSf|DnzflV
+zrA@t<_|;*&att~@*U(2)gUEX|%T5fJTjsIcRRI9Am%Kud*yYMa+($l;F*upw#=YxG
+z%o^`Je<d-m$nbF#olWXl)WWRFh`h;vqoPR~00GI{XneUvr=fUDMje39S?WOg=809b
+zPsJ7$7?xq0`Dj+(uA<tR(s41wv{H7(>hg1jYFcGcKJ7xdy#@{QvmiCHWC8L}=59k}
+zXsE#fs)=<sJD~3LNCHF^ujZ*!vq6$|lA+@`g8GZaPqolcZ(=rxnE8a&Z*~R(qw$k<
+z0v|O4j{W7%#FR0$U<Zs6F7w8BdES;V9|i+e9U}x7FcyFmGpW-Gd;(L!x7Zq~s#T`0
+zpj_#klgR=pe=fBc5n}bKHCRg`Miw|Q4g-gi!14Q_!m(y^HiL*Q_^!2Mgdh_u!SZal
+zuaLK<%-+q#c#SED%L})mVsR~YPOmK`A%9R$#U}H&mX0}xECDgll%-f~`#pzm(IEo@
+zQ%p5rLYA;918XP!+Gj>;r!{XT18jY%u6zV0!?A**e+TwJULfc|_f)QefrjMzZuFj`
+z2zRc!GS?uuH%)*%#|d+QgPKG7WUsD9|F+LkcK#M-TUDQ5y<E(Cqu&@acOre2G~0E$
+zK{~S|qpbx{wW;aKYB|+`!meRxgI@R6?Yh<Ib(6ZKbNC%H+putplI8dda}P<n*O1sf
+KvN*(C0v?;gw=YWo
+
+delta 624
+zcmV-$0+0Rj2l59aFoFZ_FoFWspaTK{0s<6tvL_xn9=#Ppud+MxzJB|slC7PwBT@l>
+zvP&m*ZOdt3Cl9%z;1%JTq$3O8SoZ|)F!c%a2rq9m+BI$oB;+^O9~D*%C{Yh56c!``
+zs0%v(Qy(*8-$7jNXy4zn?&*svXF8?&*(a$6;%h51HgDge><J8?jYl;*(e-L0kP`Gz
+zV`@d({#|~gOsoor)I^XRC?HT6#Fc1&{h+~G$H?+KvT;v4t+eL)nh@rzJ}TPo3&D|x
+zlo}s^-~s1@CBKbv?a<-#n7@szm$`-}vNUiC;6R^VJ`Zfjn<K-=l^RfzOwQ=&Lb#4+
+zf|S|O(St2Mz24bwvh|S`HESG=L+HViwFjP7S=b<?gc=zj&YsVCV?PKha+ov%M%R;d
+z0v|O86U4JmR$M$rslS6+F<@~-9nb+V9|i+e9U}x7FcyFmo&~H6Tj4-|Y7X?-L{Ew*
+zeeXDnlgR=pf1<W~TQ#QT1#H;hmWpDSrg%O}HqE|^RY8X74i`gLR(oz}zTUizYx(GL
+zatOjTH{$%OPl~%|j(oG5OR*yqR8&|(7Y+!iuOQPKIu=CD{L%ZEq`%|s8+HE~h#h3b
+ziMRji0>7Q4SFlm{bVl3kFxEqwKzC<)(a?TQ6$Bxae-lC9{oA6hlbQrd^Yroc%wapC
+zU<7icZD5)!uf-2dm@-f3A@RtRe=Hs?Z$v<<a^zOU)dV@wVP{0XOQE8q?QRuwRkHV(
+z_k@{NGN&9}HQL9ePIH?PQi^?(++7o$<6KYU16Suzacq+q)-3(`=A+I_vL>V^EJnXt
+KvGDZl0`eg~P9~24
+
+diff --git a/tests/certs/cert.p12 b/tests/certs/cert.p12
+index 51ae5bf2c039c2152ef37f8c6977fcc48a571f78..9966a41bfa08c58031f43dadf2c295e605fc7f45 100644
+GIT binary patch
+delta 3544
+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
+S1q29x{~tno-%FVS0tf)1WYe|)
+
+delta 3528
+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
+Cf5$uk
+
+diff --git a/tests/certs/cert.pem b/tests/certs/cert.pem
+index 455188c..0627b67 100644
+--- a/tests/certs/cert.pem
++++ b/tests/certs/cert.pem
+@@ -1,46 +1,46 @@
+ -----BEGIN CERTIFICATE-----
+-MIID7jCCAtagAwIBAgIUdLInHjkevRVCr7I78r5++6eSrZ0wDQYJKoZIhvcNAQEL
++MIID7jCCAtagAwIBAgIUa9RRoV7Ah+0wEQjOlKzlNOaZ+CIwDQYJKoZIhvcNAQEL
+ BQAwYDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEgMB4GA1UE
+ CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGDAWBgNVBAMMD0ludGVybWVkaWF0
+ ZSBDQTAeFw0xODAxMDEwMDAwMDBaFw0yNDEyMzEwMDAwMDBaMIGdMQswCQYDVQQG
+ EwJQTDEZMBcGA1UECAwQTWF6b3ZpYSBQcm92aW5jZTEPMA0GA1UEBwwGV2Fyc2F3
+ MRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxDDAKBgNVBAsMA0NTUDEUMBIGA1UEAwwL
+ Q2VydGlmaWNhdGUxJzAlBgkqhkiG9w0BCQEWGG9zc2xzaWduY29kZUBleGFtcGxl
+-LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJLJ3Vty2lgJw+5
+-ouAV4ZqkIwvfWPcE7zD1CfQIL2802jVuCSTkN9cfFVYMKFEPJxQWJAKoCzr/Ux8z
+-Yt9BXO5o39+z7umLKmc6pfrZJ6kG4msrMjZv36LsCQyfjUc1O9H1aiOQEvRQY2pF
+-2v5dfqRMrAqH1ESQHCggUBjElWj9oMFax8jyO7JxTzuttOb6mhDmqz4q2u4LwZGH
+-lBofgOAB54Mlv41x7dDh85i/jayXuYYmsjRwCuBAn14+D2zImyPDx5UaUJJMzujo
+-QriOZ4KU2dHRgy0+vd7ZbrL1kRY1axyNQ+jBk7UHnlZZ2CCkhBoZIM6ez3ljPwgr
+-cpg0RtcCAwEAAaNiMGAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUBxPEs09WXDxGqb+D
+-WTFgcUQd0AEwHwYDVR0jBBgwFoAUngWsC1vhQH9qDvTZRE+KJ33vOIswEwYDVR0l
+-BAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQELBQADggEBAKK2e1s1puUFbNjglopi
+-mKZ4Pks2zb6LVUGG6Q4XQ1dWe25ovt68jWv56HFyCMI1N+L8q0+Ku2eOfLObS7Ej
+-FFRUWEIXDgipryDTGzoWRM380fuYpL/j7Rt1/xmIHWTFibf/6gK/naRXsFH3dEbb
+-7DDWQ5pAd2d60dB+ThUEIZQTQd/926Kuk5oESvP08fXMYTuiYARypG1gmiuvxQ9N
+-mDJP6CHxyJR/LB4tb0RAqnLkVsXVBDnRYWdEvkuhoqTtbhVzVbL3mPeEmVYypxxd
+-NdrHpU5zmxFSin2T3F0TneNcT+MDV+dQcWyTGNYs/fnmo85LsiakJixGv1qx8PTs
+-8iE=
++LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALeV2F3cRYWmG2li
++Bh1qMgaJbK62gE8Cxu/LG6WSFwOutmKSg5BJQDnpkHe8d0a0mpq1mTWlTb2Y+NVh
++vHIMOj/X0EdUg8h7NctODJdb5rHcVQEAs5e8QpDY5cpF3Ec+kDE4meHGvetKzBrv
++PH8lMa/I8HEUnU3qWdTCrMqIvMmjokkaAAHJ22h8uUWnoXhLRh2Az1nqQPrmiVW0
++T8UWFRiWYZr5aFbfrqLamdJxMcS0UnbF6vJzhmpaZVE+7UK4vQYN87MgNbJkAfJQ
++5m5DZWiowQGqiXU3O6Du9EgCRBWv5qlTs0GSdZKh4ziC+ovFT7XQUG9iNoiY+YTV
++b3YGo/ECAwEAAaNiMGAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUA4795c7ElDG1YAeM
++Ei7zxnd53pYwHwYDVR0jBBgwFoAUM6nTCnwCU8G32BqpqlWmrqBc6ZwwEwYDVR0l
++BAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQELBQADggEBAC61GBFi9ao1WEsiRhY4
++MA4Dh5PA8fugwrFmczaDiC34rrVjhCATK8HybLivkLemzN7NxXiNKYjLC7ehYnEt
++dk6vLSUhf1BPxSbzt5aOOYcsATHQlKVYbPs9h2/RIQMCU0w1YEKWsCoDayf92mdG
++aqc1byYDbH2prnwEJsOxgqIH9kBeIOhA91SugoGG5Ppu9J6jCHeuujLXILg3TYA8
++xwlzgIOaQ/pkr65G/7bPUnb+FmZbVZ9fvVzMeqPfGDN3In2VNNt1ukE6syOjrQVQ
++tanpymo51YHCrmFog1731u261eh1k7qlc/gdMtuwcIuS5fgLcw9JuteQ2D2yOMRc
++Hps=
+ -----END CERTIFICATE-----
+ -----BEGIN CERTIFICATE-----
+-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
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/cert.spc b/tests/certs/cert.spc
+index b5e464a07a00cfa4e7c14cf15f71c3301d1b510e..bfd237138f1c1269dffed132468efcf99f9df601 100644
+GIT binary patch
+delta 1259
+zcmV<H1Qh$x577^hJQQoxQK4SIhwU&C2+owO<uvA*_#&}TQUQOrmDpX}MTMptX<`N)
+zYBC0iY_7I|PXfm8%NwPV7Xz-gVv>W9NkBR2kaxUyMzormwV5@gO}&`-)nUAH3_3s8
+z&_`5*$a^)*P7Ie@=CRyW0RXd?yh4!J<;q3eM?R1-IGN$bz3WQM8t*)RB{8qa@NpEK
+zP3l?H!mP@Oyvcu~qDdM60m<8Fe7QxZp?FJ19e~eS>OlJDiB+^u#TFG9mSLLtXjb2@
+zqS~3#aWTZSQg+4a@^gl2T4hl_?LxS{1`YGGAT_dN0rF7hZbM~gsKEiMiFG$SpzicY
+z0z?(B=BZP&L6UWnq2oA$`isR+wa`#+Vm64F`GnPPb_Q0X@d5(@00E<7FkmnV1_M<c
+z69fV<05BZ}163Uk1QrAo1CIUW&cu{4wO|K~5-#(`cX{5HFdqg3RUIP)7%&!q6f>#Q
+z3VZ@n!ME5Nsj5|`uAp4$oRjtfDSs}t7!hLisx??kB1RTCFb)HUlfd!&pu(|cb2fvB
+zE%>grV}u|RE5Y(?xUZ16rp(^W#dwV=h|3GNp<;0@c22J?B_V%MPsJwlx0a4Mhb#dx
+z(3GWEZ2LWjZ_yzG0#i&iU_zF#Dg$dL{n}?nYNs`CCIf7JsjhqkCd09UqJIbWKwco|
+zK=)Lxf`NwQ`fl`|qX>7dx-!=wxHnCJJjV%hfP<Pt`ed)JM*p_YQg;3pW?NOCU%gz+
+zdZXVMGj}3=l{DLRx<NX#BcrVaP_?P)%4#{)fx@m~XoFt&*6q60=yj92rE~ZlGTX3l
+zi<0H|3v&-iy4R4{J+e5&TqPcxFoFZDFoFV<paTK{0s<5jdxXO-&n3An-gkFp@Eqk^
+z3nZtrLIex}f7F^e4ud~&Q%6Iti~Gtr$nCVWZQReCh$d(C=dtmo0YFm4&Q8fh87p+m
+z&q8e!ZYGs@d#q7G<;gZ`0Kq;7$xSZ}5jF2K=>kRgY?O@lN+WfKBag`~zU>3_x-RZr
+z(JzcLZm3v0hlMuq=FlbO0sRJIYmoY_==&)KG{84Me|M}VnXWQEUn#8B^tA#GI0p7o
+zalt0`i};h?6H{rg+7j?rq2OwAWLcUvLl1it9-%9Vkx|zDUe1IHY52;Ex0fD(bl7@w
+z*vY~(q}1|C-KI1lkPyA^#@SNNmNrM}eK?cr&G}Nx(OJUu5wGhSH@IU#Wm7;V0`s~5
+zxc(xb0{%6VP6jA7GpW-Gd;(L!x7Zq~s#T`0pj_#kFdqg3RUIP)7%&!q6mw(*<y|B3
+zz21MQG3G#MvArb|Qj@C&B!6BiW`I@oxM}_WItK=Za^+lOuBN(#=M=QyTeR#LIq@*7
+z7U%tfd5%6|>-{cxD`-o14X0ToTD}%tk<6%3i?Xs(W&q4;w|3E%nTU;mbw`6F^&Vad
+zj;}-#%E9uszO$d>`!#}+>r0=XcSP)4kFEQ6zx)I$yWJxJKQt;OT7RdyTZJg)n+_-f
+z8k>Z5zYQojrd0*uga2N8TW9aK?JbD__v1Z&Xy`aiKV4ixm4I|w=~VBp{V~(qf<-3}
+zk3ec%fd+`scPRcYpvK&}*o+WWdi$!NU8twUXKPUT`gK{~>=QpQ5%<65%`nxAP`^i@
+V;r0L=C|n^N`pWqqr36{%F#z%+TV((M
+
+delta 1259
+zcmV<H1Qh$x577^hJQQ@YCmuN-y%j>QvODs=e*34At(~z@QUQOmODA=0%V}UI54ob?
+z72%qsBMaYH_XO`S^$GL{FK;y3HEszc<TuwJ6;=!=Q4c2+79;|w3p)Q(A2VX#L0s-=
+z-`}(D>5D37I;HyAC#eSFYb!D~Z{MQq2@Ic&M>RXq^=c!K67*1GYDL=qU4EoYtO|$J
+zM35XPAW#^@m1uwcput+l$nra~aZfv~wC4Jn5az2sD%$P~!I6iQ8Xth*0q27yzm0M2
+z(Bbo#zm2SyxrQdPG;j*wK%ZVd4{XSrBg4m)8c>o<&gkeuxQ=Inl-beIgDpP2-q~)l
+z^^q1eYaES3=)se<2cA}0*dU~Y8W|wYp3iw>KL{&wm^4;K*8&3p00E<7FkmnV1_M<c
+z69fV<05BZ}163Uk1QrAo2NT4zPgYz!MybDpSutR7L><rpFdqg3RUIP)7%&!q6rKgF
+z3tQnpe`*f&*+fr@Cw=cYi<9;ODSx82ds{W8<ppfm;FgMFn5K9>OE%5Ei&a5}=?)h|
+zS5|v&XujUOjcfVnadHU4H8<k?t51r%XO4Wcn@h1H6jW4LLKhAQsjnc@8#)$5&HT~(
+zn54hs?HhIf8HgQZ#fi87>H@!=q*t&}_jE?v>@e0tnm~7FdeP8+P89?plz$UJ-~HR7
+zu9KPsO7ryb^~_;AqF@Aaq-|iDE3d^5O_(xI=ppgQlz%K9EpJ3Xs&eF3#nl8k(P3vq
+zzDuE^r0s4Mb5*kUnD>O4Rx+m?T{YUrrA~935mJhMliXbso#R|j;{#XcP;qRN7}hNP
+z`R1d}OR^@UCM-t3TCwo->?QIcFoFZDFoFV<paTK{0s<6J@Pij^VA{$`@1A=dl_9At
+zL6+0ALIex}f5^)<UVyYUMEPP2or$xn6O@(&sW}Ud!Rp)kfDSF+Hc7$g+KBlh`J~8G
+zb+F_!zZ#tM8tQ@^&|J)nJ=iDjzsWLNH8SI-(UOo!ELN}3mC^@%P-yu_S>@_6^*|cq
+zITIB43OLv(TPuNGP~S~0gdxF(`ut4yqzs4t=$_3>e?3prt*K%RseY>f@azg{2H-fq
+zZ{Y-H9*QNLK-|^RzZEVY-k)8TC*|%(5>#Xg(<rU&N!*`qbcw*RGZeQl;Wjn<sg*;L
+zH>i51g^d|YG1Ei44=-m@cT~WXX%+I9O<nIA*=7{8Xoiohv-_-{81aGyfpHs3hNpa-
+zWQkH-0_@Y1P6jA7o&~H6Tj4-|Y7X?-L{Ew*eeXDnFdqg3RUIP)7%&!q6zS|S+%hR`
+z9}cF`CJb3vG(yp+{*$W)B!54}1+FZ#k)8YpAlOZ;pp84!ALaBO#fqX4q#<rCP`K7^
+z(;>*>po&?q74Q>LAb-F;|DgYnrfphtrH#yOJP{lFU*HF=OyA8>A_@#c^WW`t_Q|Ov
+z>T4WQHquQW|1v#nVCy!otDa;Ubiy3P_H}OqjmGI?DSxHes%T|{`hOM5e63qjF4ZIG
+zuI=*i)&G{uq`aV-ld}M)SAlZn3B@jY4sx7V++YiRCf*N%60$d{!-?)!9}NDV4m`Ut
+z@N8rlnCpWo!cgOme*QjJsO!>Rbj&WSa^Wg>=F_mjKQ9;fNzjw6aU4j{wL2Yke2^Ih
+Vcgi}ll;L&)3jlv^dIY-QF#xhCP)q;-
+
+diff --git a/tests/certs/crosscert.pem b/tests/certs/crosscert.pem
+index 61b4565..0da5dad 100644
+--- a/tests/certs/crosscert.pem
++++ b/tests/certs/crosscert.pem
+@@ -1,23 +1,25 @@
+ -----BEGIN CERTIFICATE-----
+-MIIDzjCCAragAwIBAgIUGjZdQYlcAtlqZOsQ7eWRimQ9PIcwDQYJKoZIhvcNAQEL
++MIIESDCCAzCgAwIBAgIUFE1jkC6SiKP7a9zwHpiGCY4HBwMwDQYJKoZIhvcNAQEL
+ BQAwbzELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEMMAoGA1UE
+ CwwDQ1NQMRIwEAYDVQQDDAljcm9zc2NlcnQxJzAlBgkqhkiG9w0BCQEWGG9zc2xz
+ aWduY29kZUBleGFtcGxlLmNvbTAeFw0xODAxMDEwMDAwMDBaFw0yMDA2MTkwMDAw
+ MDBaMG8xCzAJBgNVBAYTAlBMMRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxDDAKBgNV
+ BAsMA0NTUDESMBAGA1UEAwwJY3Jvc3NjZXJ0MScwJQYJKoZIhvcNAQkBFhhvc3Ns
+ c2lnbmNvZGVAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+-AoIBAQDJU6WNMOEoErLYb5Qc7jsvVgruPM7DJTZ4vUpJNYAyprSDHciaKSa4SiYS
+-84Mxc6tzBoJvKOAwpxzzONOqPVWUd5J244urgvfHgSGWsbA8bakiIYlETopnecFk
+-B3ZELR33CPqIbpYYMYujhPGFa1xxZxFykJ1iBhZ8Gh3W4wHi/2kW6hTQkihMtUPP
+-Xxc2XWACj/tz22OSdgNZcIfhXiy2HOuPch+0UlDR4UmlJIR5aet1y832hHoeeevo
+-qfhfGOm9rRf9nyxKDwTyaN7JVOb7A1k6KJEJoe1zfIwT56mgoA433iUWFMLB6hKU
+-be3zV1vGjk77Kk7atcvEMTRq+rwHAgMBAAGjYjBgMAkGA1UdEwQCMAAwHQYDVR0O
+-BBYEFEXgglEcDh+8oCCvjlxrN/Y7C4YwMB8GA1UdIwQYMBaAFEXgglEcDh+8oCCv
+-jlxrN/Y7C4YwMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA0GCSqGSIb3DQEBCwUAA4IB
+-AQBo8UqUEjxGQCVU/IgphwKA8Rb/uAyBYm+AjqFDs82lA6ze0n08Bj+eciVkxscA
+-0deivOC1sDD88QkLzSQ9CPk4e7+m7nx5SFUnUWY+o3ln+cTbGSM0jW9hme0LtHXX
+-QxDSKDBhQonRQk7lQ+TwFR7ol+y5SdZy7YQ+v/25qO6MMQgSPykJIa4vF7lwrYhu
+-qL+1MJx/ryTbCUExcKNNkWHZJRc9ZvtdWEHYpBSZl5xmJdKMLnHAu5uv8N2pezzp
+-PfujldZky7bnERaTM+bf/LvKXS8RfQGrCLu9QjgPVa6ysZV6gXTsEtwYh64vucjS
+-s7IhdLxfiT0xYkK4JWrRLc38
++AoIBAQCr6fvjRqB3eVHQ9YO3r0rgjWCt9pFHpQyXzTgJxIr07aZtOLfJd8hwUHsn
++u8bq5YoSMHElNz7e8aJI2nadgH2JPeOEt+uuEgnBTP4S1Fmbj+ARs8tzpPI8Wjld
++Vp6qU8KXASyjwhWXRUf338xH4aBaxfWqxlKVYuOJX1R9o6KE8AkIhn3UzCf8tkwN
++2r3RqESiawT0XhcKItrXW0ql/Aae8y3N4KSfh0z3pabGz6amSWQIoN/MXM6GElEl
++eQf2PWco2Ik3vCUq8a4JHMpETayjb297AXjX23yMU5wnAunU9obV96st3TwE7Ja6
++GdEbd+ZbtI0uYHIaw9noptyecKd9AgMBAAGjgdswgdgwCQYDVR0TBAIwADAdBgNV
++HQ4EFgQU1wzCqEdaRKbmhVDVvm6N93L+aTEwgZYGA1UdIwSBjjCBi6FzpHEwbzEL
++MAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEMMAoGA1UECwwDQ1NQ
++MRIwEAYDVQQDDAljcm9zc2NlcnQxJzAlBgkqhkiG9w0BCQEWGG9zc2xzaWduY29k
++ZUBleGFtcGxlLmNvbYIUFE1jkC6SiKP7a9zwHpiGCY4HBwMwEwYDVR0lBAwwCgYI
++KwYBBQUHAwMwDQYJKoZIhvcNAQELBQADggEBAC7N6qRKLabyA4xrC/fp6AQOe+zr
++lFORWevFhSNmmM02wtl4XK22jx4nxFp136ZMw1z2Hm5ljJd6vjr5QMeT7tPvs8Zi
++ivWC6zl2z1oqbNiU+mGO366ZDJUL9dhZqPTFydocL1cj0IBlOQemQwQpnaeTBp8Y
++d8AJqlgZ0d0Eocnv2C4MFoig8Y8/nDIROQ7nhL6gPxTApYoRcZw//XbKnoGZGPsU
++V9MJjfL1QW28KCpZyIxdc5f985kHuxZ6EHSXI3hSHArILRCFLIgOcoOA/kh1u4sI
++QyFpcqOHwj+3pAwcdyZsfxGKGC1M5qyX3o3nb2VoeEF13MPGf5t6nX0iTJc=
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/expired.pem b/tests/certs/expired.pem
+index 630f099..3ebee92 100644
+--- a/tests/certs/expired.pem
++++ b/tests/certs/expired.pem
+@@ -1,45 +1,45 @@
+ -----BEGIN CERTIFICATE-----
+-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
+ -----END CERTIFICATE-----
+ -----BEGIN CERTIFICATE-----
+-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
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/intermediate.pem b/tests/certs/intermediate.pem
+index f2a77cd..6326abc 100644
+--- a/tests/certs/intermediate.pem
++++ b/tests/certs/intermediate.pem
+@@ -1,22 +1,22 @@
+ -----BEGIN CERTIFICATE-----
+-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
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/key.der b/tests/certs/key.der
+index 57b743625d1081c7b8a0b649f2047c06c827174f..8a674c921cebc59e4da2738d3b3ce5a8b278575e 100644
+GIT binary patch
+literal 1216
+zcmV;x1V8&Qf&{z*0RS)!1_>&LNQU<f0RaI800e>rrZ9p8q5=T`0)hbn0JoLcUED>5
+zrW<Ku1|4cL28nF0wt!Cp#_!7;rIHr|uC`*5gOEu;Iq8shymv;lnwqtlHKk3xnE2IU
+zymAaWKiAMlRD;NSHOo#6ms{qs+*JVpvzNR=kl5wQMchX|kTE!!;l{n|O3WJXJbxuI
+zugLIm6rD}#S=7R;%80zlqoPR~00GI{XneUvr=fUDMje39S?WOg=809bPsJ7$7?xq0
+z`Dj+(uA<tR(s41wv{H7(>hg1jYFcGcKJ7xdy#@{QvmiCHWC8L}=59k}XsE#fs)=<s
+zJD~3LNCHF^ujZ*!vq6$|lA+@`g8GZaPqolcZ(=rxnE8a&Z*~Tw@d5(@009Dm0RRRC
+z&T&=NnhDncU<}_*Dv|h9E^i`Abw=HL22UzE!w)Jzm6_*L-`$3S49koLFUp#vwtxZ(
+zNZbkC#x)Lb#6WNE4@m%l#W?_waP3Y&g*iJot1~$n9sTZqt6>{f;{c2N)nACqmO6j)
+zszHm=MvVi+kC7vf_|7$=rBsKb+2M>5p!vRJ&*40RS0=&9dDy+~&BmxfzPJW~`Z5`k
+z+>(e?JRnVTwd?ECK3`79n;USuEPFnri4YmK*|2j0I+<Vy3sb7dXYtK;87_PJ^)gh@
+zy`}|b!6Gq8CgY*G%N5_;vVbyO3ndshl<u3BH_Cs{H?ZJ%x<SUg?43C+$k_scfdIji
+z(B<!Bl(LtINi!n9w;nc-%A~2t$_Ljm;JE~p#6Ir>u?VsO32l}4fQyWc0I~8~QLLjt
+ztMW$e<JFv|;gj+CoF|4fER^eph9PG6X({_*xw6x4_H+etB=yv9J8my_Ct@pkvtkR#
+zP!MuWZEg3sAl6Z{x(FdB6_xc^MK1z@fdKN!Dj9CNLTeJa^zkbjHcgG~Zu@`4M}<FI
+zI<c^Ca2{S~pOdCw-L575zcI|Xi*gkPDW~YuC<fjFl4uHp)yG}C)S6mp`nBp{h2X%V
+z#31O3kvUKTBo`RAI)ZYz<i<Z72gYLFJQ>XDZK?G6m{kn6*s5*lq}0`^%LYs<px*+4
+zfK0eP)WVuXY`d-E1qec)TC^FGmds17_KA&E89x1w0lG})KOy~7H9>fUQ_6Cm(dN-{
+z2~hHKvt;!rl_Rd`JaBB2JpS!+wc6Uq5;*eNl`rx=T<CjK<_o$S0qh;&nfvL27GO}V
+zjj&0@p`Qz!(Kec$ITOr%aCc)oB;dvgH3ETvR=x(im2()q*01-{o|_j~xF@HoRjAYe
+z$aNUdS%60;qJ<S-lxHz)!U!4SdI?EU7BAp@EL0s0?+z|5+v?<7S)%<vw4?sMHX;mD
+z6QEPTiZsvE5kTUS8S^QQXWXS|D=s0O0KfC=C+cnq_6wsRXYGI$%ryOnNn2yRIYY5C
+z0)c=HbE<w8;|vbP-*H`ihy(#v*r;>7V%T|astV35iivCE`w0lxY+d}?UuSZWyDn)D
+zRsBQIBEPzDv)6O@WgQE?h6g&?77e}k_`bEjLKeeOLiQ0gtXIGMv`Q2yBXEN00n}l-
+eV`)5gq|^KjPN=~!r3hmDe#74SivPgow1iwHuT9ke
+
+literal 1190
+zcmV;X1X=qqf&`)h0RRGm0RaHAODA=0%V}UI54ob?72%qsBMaYH_XO`S^$GL{FK;y3
+zHEszc<TuwJ6;=!=Q4c2+79;|w3p)Q(A2VX#L0s-=-`}(D>5D37I;HyAC#eSFYb!D~
+zZ{MQq2@Ic&M>RXq^=c!K67*1GYDL=qU4EoYtO|$JM35XPAW#^@m1zB-!CJ@2@;kC|
+zPdlx&=K7it=Bqv`+U^U%k%yETAAsNi=Yu7`jdAVJ;q#ckjjWfsh9<H!a0=i+pI$x>
+zY{;7<!^f2xP?Ai}=;%VYj%R|D+0oI1Ek3>8*>1A+krp*;9F0Th!IQNIo>p1dAf$vE
+z86eJ{&v|1%2rF`!G)C6~0|5X50)hbmB!7+!Q}vh>zUomfE`dxn!}JKUC>$w1ZQnbx
+zVH%XdRSGKvWH9sHZP$oR<kIsmB*lY?r>x}O@4YKu$|NsI{@xXZSQ{q^|0mjFhoQdE
+zQTc9GQ67cCY+y~@JEou)CfojISx^WAjMi+1a2w;8?zt&WwEc7<&vXs(gbcCyA?7v4
+zJlyRI{|H<{eewVc#3n(76N(aco0f#^d+hJp1aT|dM3C5TDKo5{9(aa?z4Nh=VrQI@
+z>xLtZ&A%#wJ;N?0U0+(BqfjW7({T`QXWR^3=*=gEsPodM!&hBW@ra6i{d8RvA?F+W
+zm6*FSJL^XgQx%F*t$ZS3jD<FV0)c@5>50f<4QC<k>S&G3dsI+CF_D+UKXnH-ci#`s
+znV!$v&D}B<>TxVVj6d|^hSloaY(JQu=9T+cv$zKU-eYA*G+s{J$eao-CN#&@UDjf&
+z!A(^eNxqZjq=9`9!rTQ57V+L+mpQ_y9|v_kD6rpD7up_k9<C0Z0Baaz_)jvq0)c@5
+z!*L+w6jRN*hS6ok+nVxmH-`z#r7@IaBjnX^hP(i3jYuN69sm}n&sRK!cUi}ksqK+3
+zDfN!fHZlQ*aKJ+rQ<fL#eUESB+qQnEA{zu>O9HluxD$ry*Ryw>GUZD89IxMdnP-mi
+zB_W4%`4#@IY&<kq2vM|vd`{~cDZ{=G0)c=-$Ig|`$O#MaMae1n{eF>sUV%!K$5nxp
+zhV&xOwoN0!dm4w9A*8dNjt+Pfq)(R%|K&dMGsKX25XVoHJPPni>bO4ACZD-{=0d%N
+zkF0U07uUoPC^YKx0rnSwMzvf6o6T#t3wM~U@Xs+J_dCizW%>ejd=(e6Kw|?VB5_#)
+zfq*`zyVat$qZ5-j`WcQVgk{TFT}a>rp8t_}K>W-U<wZkz#<!!^e{9&vth-d<(Of5&
+z<DG3JE#8hHMc?JIolrpsvo3RDQi_M$UyBhT{3_UwOc|z&j0)F%&v5hV5;;(f31&oX
+zu%ntazliK-qPQeBz{t)2^N;09ACSqW*!=>5fKrfpobeLe+2im#8>DcjN)`;4`o+gQ
+zVA_&NqQ&#MFYUJAQ`k9E<>;7cmkZP}lBZyU;RV}P;Kx2h3_mqrXEK1eCS{`03`f@T
+zD~_6Ai4eK$rsJ2iJZ4XJGMSs_F&E{z<}hRg7**>8jx5wx2}U9yinm5=7LH0OHuR;z
+Ej(R9PM*si-
+
+diff --git a/tests/certs/key.pem b/tests/certs/key.pem
+index 0306c69..f204f7e 100644
+--- a/tests/certs/key.pem
++++ b/tests/certs/key.pem
+@@ -1,27 +1,28 @@
+------BEGIN RSA PRIVATE KEY-----
+-MIIEogIBAAKCAQEAsksndW3LaWAnD7mi4BXhmqQjC99Y9wTvMPUJ9AgvbzTaNW4J
+-JOQ31x8VVgwoUQ8nFBYkAqgLOv9THzNi30Fc7mjf37Pu6YsqZzql+tknqQbiaysy
+-Nm/fouwJDJ+NRzU70fVqI5AS9FBjakXa/l1+pEysCofURJAcKCBQGMSVaP2gwVrH
+-yPI7snFPO6205vqaEOarPira7gvBkYeUGh+A4AHngyW/jXHt0OHzmL+NrJe5hiay
+-NHAK4ECfXj4PbMibI8PHlRpQkkzO6OhCuI5ngpTZ0dGDLT693tlusvWRFjVrHI1D
+-6MGTtQeeVlnYIKSEGhkgzp7PeWM/CCtymDRG1wIDAQABAoIBACR/jgxT9ZgUvupR
+-Li6BTDXD9AiyKBwpPm3fO7JhGpTBVQorBGQw891t14hN5NLzLyTFg4mnrOTe770r
+-X8okL0n+3hWFWBsnCf8n2mKHob7QUfluVlEehcFsYE3dO6agFybb/mZZUAgDjNZs
+-hnAb45juuSlOtP10Is90DfGEDLH5IeY1xjzc7Qv/CFxCffIAC8QmQYUTihJ2m5aE
+-7Hvs79oEcSvbRJDYbykzrJ0eeIaEvfOxkWJnnJHrhiONzb8qgj3DLiZdX1qeo1Ao
+-ldNxEG9n3Axd6M0nhajz0qbDV11S8YiKfP10XRQh5xv7lZi7MjvrRxFTFYpSrXwi
+-YYyFNoECgYEA6YnIYg1nIe3qaI3Me1RQQTGRl8M/dQc2d98Pz5mez9vN3TIW6nEs
+-QYw/9OKG1ercbD+YnuaV+1izuAcA3mNlSDReTtzInAotJjTH1V3WYqvBTVUZSb6T
+-5qSBfRDC3AULFvHeX5c5wqgfB3U9KLDfVBfaHnMerg6dAGsYZPhPMrkCgYEAw3Eg
+-5BRTzbqG0WXF25rycTeHCcylMZRjI+TVcIa8AGqNSCK4HgAWp89XPIV3WceVqe2R
+-Lyn1jtA2MgGGcMBDFlOWF+h9j2/j27Z+pyIbBF9LAraJuBOG6dezd50y5Ur6HK/f
+-e5lnjvElIYdz+RX+rmw8NFcIUbSAfE7rGinDvg8CgYBDx86VzsgJC/FFySn4/X6R
+-fV6BSpTHVYGUhvQiz7ZNI8F7GoeWIaSznY4OeBSkT5cL/+U+8TPEkHkQx0+UPArw
+-Suq4PtImn7l85kK9hY+scacX18QQKDTq8wH2F4BGtVwDm81rtwt3mK3wzzEh9zvK
+-P2X6AnV8FReyQGMDIyJxWQKBgD6nu9WitqMTkzj6GY4nhGXLWV1I4ASe/5F4QPzM
+-FOVFQ3nGt6PWf2zYyay7VOHRXCeX451tJC3ejiFF3+WxnVBBB7Muc2JSiofbX4sR
+-Ifwq2I9MGaaLjArXfc9w8+oSOVCNCWZEbbCjmjW/iOxnorgkNsDIzf/zj+VKH5DJ
+-ptj9AoGAUpB6nPES3Nnj8DsbpHCnShYMl/rFxzxg2pJJosXzuS/ttuBT2DlT5eiY
+-aZcL1DGSp2CD4QXbVuDHPkQMPzVfZzKAuCZlotEMR9byK46aYIkQueym45e0PGZP
+-djKZm+cxF+W55jBkBBhV6wSOLNRWCUYiIIq3RmwWjkopNvSlwY4=
+------END RSA PRIVATE KEY-----
++-----BEGIN PRIVATE KEY-----
++MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3ldhd3EWFphtp
++YgYdajIGiWyutoBPAsbvyxulkhcDrrZikoOQSUA56ZB3vHdGtJqatZk1pU29mPjV
++YbxyDDo/19BHVIPIezXLTgyXW+ax3FUBALOXvEKQ2OXKRdxHPpAxOJnhxr3rSswa
++7zx/JTGvyPBxFJ1N6lnUwqzKiLzJo6JJGgABydtofLlFp6F4S0YdgM9Z6kD65olV
++tE/FFhUYlmGa+WhW366i2pnScTHEtFJ2xeryc4ZqWmVRPu1CuL0GDfOzIDWyZAHy
++UOZuQ2VoqMEBqol1Nzug7vRIAkQVr+apU7NBknWSoeM4gvqLxU+10FBvYjaImPmE
++1W92BqPxAgMBAAECggEABgXOcVXWmgnXAGAM304qkfhULm8iSnVG3XsGTyo5ww8q
++QJWZ51Pf3YaCDMuMBi/KmqS2gAIKSNwJ3cY1DnDEQG/uD0kAgcU5AJBw7U5AhTk7
++OKszORkd/e5/q2EbVuMAi/zVX4jLljp/86pBi9JGjQPEj5Ejj/jONaKlVIej2eGM
++EqD5vmTP4TyCVybByXnYve7NxqhBvrgGgfoyGZLckohUPCBNc7Xr69M+X07Hmxtw
++uyx7PqSJEBm22bBzAjqZYAgLU6rIZ/HNdhkue/r1MlTQvaYFZsEiMUgm46G5yxXf
++3LKAMl0LJRg4lO6bljfKf883sOB4ukHGvOydOS3I2QKBgQDBk9Dl72SUspeISTMi
++v7ceNpDKpKnIygfXMeC5BJTEPu8DsQiyAQltlfeAi4yNALHyWlGso0Cr8kbt49Wc
++puGT8fmcJ4Y0LJTrhoYhZvdpKfthubLTbvZ0BXEk9dRvO24vdidiK3mzYgvIUBBy
++TW1t97gg1lGzugghJxWV9VhFLwKBgQDyySoZbrpCaxK59PErGzZNje1u+3/ER4U/
++WzqxsG9wHl5nn5OmYN2uJf2/Mcy4i3IVBimn6NMoBt4CkmgKg9XHXbvUmlpp+rXq
++YIXgwKLEIOiKkTlQAiQXGLY6gnK45MY/HAfGYt48Gczqban0+ZhVDLbYqm3opNTV
++qcsGTCug3wKBgEy4PtTCmkRsu63iBQhCn1q0GZKWzEut9omNVRk+/Y8BukzmPyH9
++UzVBeIRTynKf0ebRcQlQ8nKzZPUnlSOu6DxwbJM8/u1ytdrayBI48tmVL/I9XOh7
++U+YLuhoB7B3hmfvpghZgUK2NsEnFoZ8LnNE2mp05E8x9cHdjPCTgxgk1AoGAVr4G
++u5VzGL3Wr/fSnpsXWLgnp6pVqNQAyHUY0FmARyeihRVflGcxbMIIGeJ6CUlRFi/g
++fCxUHQ3vDi4u2+rkW1mi/T+0o/6+NiIMUxOgU8CKNM/UEUDikhnzKY5n3KVoKy4h
++nQC/8+sn6m4J9gujIGftgBXMNP2HSVtjvTlDsTMCgYANc6p+FuMMDsXfcV19iAQB
++Vtioc7xi2HlvqgrOLIqJa+P7CQjYbF382l9ncpG7LmkPVf1D0CK/unCz13P4ZR0L
++voYHOtkWDb33+L61v0IWw1FC9hE1rFe//LRKFCkjcILpAdRhumNpPHak0/wNTqjB
++MKUIYvx+w976iv/A5rSEXA==
++-----END PRIVATE KEY-----
+diff --git a/tests/certs/key.pvk b/tests/certs/key.pvk
+index c39b68982c6a83d021a71ce2cb64089309188aaf..d931068eef98cab19404a4b5840bc8037b47d520 100644
+GIT binary patch
+delta 1168
+zcmV;B1aJGS39Jc_EPwH%26k`Ng!!0=Hezp3(6vv+i~52%<Drsul0mamsphX0L;^_k
+z?w~t2b&0A0!Ki3uLvH3!@&RPBH6XL|4F<iqLhU|LWm;;6bMorNc2cy&F>%tF+M=%C
+zR%rQ}VU`#b7R67rRf*>MK<Zh~fE`9lc%i37xqN8b$pHWwNq?fF$-Icltise;>P?*#
+zaq!5mF(rRI?;6ZX>%GR|nK&_!K1bX|%H`OQLcEu=00C9pvF2Ns3{J~6d&q-SN6^<l
+zIt+5WVb%DUy-lSxnYEglv_^NlcaZ5hKuM5;l47>50~eB|8_Vy;0#AUpu55`0GHM+L
+zVrd(ug+<(5*ngF`FGX1Ol@%u;2)eUT)*!g|ZEa0*5KzbqVzYTGVkdSlZaZ((^(1ix
+zboOr3vbkaVDQWj+A%=$Qlq@ucC!G25li{YE)#L3(@~c3jtWjF>u>g&Xi-7l)Z3zLg
+z2(bh2KE#v+x!^I^2g=B)q{@&s9=E?DGf9Y-vXo@+<$utV!QY@OOa{xT)zqZuZK~L|
+z3{{x<^r>y?%o#l1V#Ws?KgQ&^a)LUx7#Ac0P&tu`=pe+Rz~F^o>b3f5TAI|mUB}gf
+z3TTo7-UcYs=%*<L6>^KX%rU?HC9d6Irjws%ULJ67u(3K@KZQrcfBSCjjZHQiEAjNX
+z5^F-bZhsjn$?`P`#^5A8V|Q?U%o91Cnl{m#3!kCINwAHrP+%5<>HC@C9qa)bx(nu0
+zd+1y}@-LOy@;DO6+S;{p?fyKIY;Zj2t|OHv^<=Yh@=ytJ(dN;ga>`SLctJH&{UJZ*
+zOu7M&{XQ90jfwWHOU#y%8MIoTLI?%ot-EYQnt#I7KDbOXu|qk%V_Qjw{WQ!KfbC}>
+zqYL&4Zt5rN^S=O{AucOurQBzZDf1bU;y@A9&oqj_Q=k)53?eqZ{-d-%{i0c0<m%fl
+zE)MSv9aJoQ;4c<YNeO!583@8`F=v!t6@{WFM}S$-7<I@1)TmXerzf~r7n`2a_pjEy
+z7=Lq>y9T~iT!ggd!2gQ+-ot+UVhE)$!Kh9R{L`d%JZWRPVblTXf^Z`#6iT%GzgMg^
+z5%xk+!xlonwZ8cGy$u%GItPZn3ms+nbJw$Qy1ydOL;Y0`X)e2wa%W%K{9SC=2nqY+
+zYl(_1&I+n;dDvpSbEw!>0R)JBU2)&V4u1^e7JjO84cW*oIi2jh#zDGx;IKE(f66zO
+zo9>i27$pl`GJvw&-xbTbq2ne<F(Scc1*W~wR5JDYdoCGv&GBc*s#6OHV3|4sbFkUA
+z84!u2K6@;?a2uP)PG3IL>+7|1O&~l}h?3lr88Z5T2DrXKsK(9iz1Vrl!6sLNJb&TO
+zWWM>J5{%*5qlZ+bqBYL=k0X(f!~=~+(u+Z=^M5*)%ZOjq{EGnNRvTfffA0Mq896hn
+zI6FCoKu+y&kN`QwfdEMl?r%WEa1J%b-3i=C3Ic$(q?*bv28_!Lf`;ASQ|FnLKq?Qz
+iIVw*Ed)-ELN+NGARQQo9PTve*014L#n$}fu&IJaF=|_S9
+
+delta 1168
+zcmV;B1aJGS39Jc_EPvNVG?;QL2tQ+a&z{a885)G7AlO+}o(Hv)!RSMc9BVZek@d1}
+z+1|ZAErZd~*_483j<`bT=*~=%P#TrT!y}u>Y!5zOpFrRWa5S<ehPjuljlY=l;n3}I
+zjlU&>=K<h=9~zX0k--b@+A2P)<`A0t=CrLlPjRw4^2o<p!GECrXqChmP#`EAkVMpn
+z3am_|eqH|BMQUSE^b(LGYW2}OHAjt~3<>O_-)}ZDD{JBgsVCX`r8;LSi|OvO-`{BN
+zTtVMrGapm`It!=*Bo-7W4^b!#Ruv!DH{>J<ZZ+C8Z!ZY+3H31V1ov3q3nQeO;T7Pb
+zxeq5`Y0GVOCx1(_xiU}qWEg7zoer)Za~|3kRNt^DJ#_~ksKPmyU*7Q+3kBT55PgB9
+z=99ij8C6Zet76t&)yFg@Eef2-+)iFJNM&Q*00+3USo@Xco|r#u-0Iba;`Bd^K`e3V
+z7Bbz<+s~ev&kx^sHV1V-!<UgUK~PkC%#CR3?IC9kVt>eq=?}icDH`iee1No32v;;b
+zY_9$l`E!RMCGn1DnS0-_9QsP-GM#s`*Xf26xQVs`OJ4*VBBy?~+v9JKedrgKQx-$O
+zaE1XgHqegsDKC-jsg=iBcZEDx&!-ju9=IY%jcNeAhH%y7BV&{?rOXM3H*xZs+r?$k
+zhPusD6o2F(al=`0A|nH1K(ZGVe02i)Wk1S0_aQOQ@U5743%6^{n*&_6Mt~Rg0rToK
+zC=kTg7pHNokA=NL=6t!ICel8*>PqkmJd{tz5P6WqGx0v<{|lE-q!f4#j-9ilA(n?4
+zd%+`3w$CE;hLnL-$COHeUVV{%{rD-#Mez#>$bZh2&c{Rj*rv&lA4=tq^Z(7rz&0ef
+zqG#-gzcrepux&(U35`%W66*7C&wbYljEkljOpn+q{2>vGU)zU@Qety1vj;&?ow4QL
+zMInyfEhKH7<CiB~(cx6PtjXAHf7YY7#(6_U<rK{PKzNb=o&?}XU0KUzgeQ&}`Z$vl
+zqkp!d)w`!Yj=`n$HYrMu7HmehiXb9J30BlBjs)vf7zAW6=DFn;G3T3^GImd9JhYeN
+zrtG;8iC~(JEArMy4AG)xCb)nyXJ0ix3`9Q1;8xoO;e%kOk}=c^muZ;j<x@G>Q{cAk
+zFS+x@qDhk4U_8gg`j-qAN~dt78$0mh*?-&;@tk^)Qh_#wjA0^ttx}2=QxQk&J2JbN
+zmHQj#ArxJ7{d|gu@lst^!=}>nsD&rZ=v@rlXKxU3)0HStqn=t{T_!HWJ%TE~&5a|5
+z>yeyiVv(`)y@ZB%9-XW+DR0=2MB6KI1lsTHd+dakn|2b46NN!0#0voOeL`Fa|9=bZ
+z+&soL<{|m9421Cwbk8Dm{j^Rgx$c<b8*qkf){FxPP+4aF+a?#FraRqDU~IvK9#K|q
+z`BBimp@(AHC;tg28(4)E-u_81B+6eaz3<-Stfz^C#UwBD(&SBu*KOVNFk}QP3RS_B
+i8ey_K-)%lA94N8~^uskwfi5ml>IuFSnDtW(j(;SbWjt>H
+
+diff --git a/tests/certs/keyp.pem b/tests/certs/keyp.pem
+index d24650a..c1a36cf 100644
+--- a/tests/certs/keyp.pem
++++ b/tests/certs/keyp.pem
+@@ -1,30 +1,30 @@
+------BEGIN RSA PRIVATE KEY-----
+-Proc-Type: 4,ENCRYPTED
+-DEK-Info: DES-EDE3-CBC,6DB255395263EDD5
+-
+-A83CH4mv7u89RbT8Tpz4gxImKGBw69Zr3LstRXlliGYobby5YBx/YimkA9wFCZK/
+-B1eitWwy0F6axDZQYHKi+yvUJDPB9arXtClvYknMhwrHV1GHLSYeqb9oZJeqNyDZ
+-Qd3lxTbUtkMVJgJNrl2kOezm6/srnAw4uA7NyAvrs2vEzB48q4VlysrJq+f9mLXj
+-vCmrfUwY999lSifRmoxqeWlqNUQ2tgHHXYMNagpvxYXsfe1UvEH9aa6+UsO9S0py
+-7dyfSu95QpWyVNqkWi1VAtNbo2VpjJ6NJLAk+dy/rNqN3a4KnWeIzkYssWTsKB08
+-VyHrRLePPx5qdarsczZtf+M2PxhHHnl/09+Nrp5BUcMV31j3v3VSM0K+CHEucAk7
+-95rUtSUNywKUQeSgXrG1eLX7kXwRQ7PPCz3sPtvmJRIvQlGgLiTbKPsG52m3kAIw
+-zgXPcH2lYb3855occznl72jMUucxXq8gq0bC4xbEg/yJV8p1IuUEFhLGI9s9T4JV
+-cO9NKwmSjpHFo1ULhB7o6uMmV2rYDK+5GbQHxZgHj3ES+i53eFMWGubPEEOmqSh3
+-9K7gtW9y971tNfhp9ba8RnYXT6xW2nMTM4koO9b4ptdwRo5bMKFvWY8eecXfsDAG
+-OJ+aXkDr8jsn1Xauq1m4TM71wn2wUx95KaCpL55UNBEn7aH9qlNFfxdyzXMPYS36
+-zgWK44BV3PTSIGgW61NVwHwzi3bFfymortVxGpelzy2dggWVvI3uzKocLFQ8f4oe
+-Y0HWSmGVPF3uFHNCZtCB/Tpbz6YwP/YYStqAcryeS5Yo9Hdkh8pBVnYiKdTFEUW2
+-RbClgeB2MV+zttsqvmodfkviS4BjWgoIV5szxWOePnO8kQAHA/Ml3CyDPOX6rqI5
+-lDKiUojEMLgir/3YWWcmigEIgRsyF3CL1s+kTR3S8e9QRe8RiliRUKW5gXrLEa6j
+-eUjs4kgCrvmQvwyZYJjWl+r7ycmk+yB/EZs8P39KRR/pfeZDUCZIOx8vkJBt57hC
+-oTNJ5llFzRcmEraElXmDOAuvmj3Lx/4qzY545rtzll3mFHJEX4qITslIX1ksZz1p
+-DncuqgIECzmZIeHPbnw7Nkv6EkoPzTOlccqnCH/SumFr2fhctv9x13gGcO4kSsqO
+-63yZCFHjMz/mos3l51aIAizj5wQO3BOo+RyKoSQohvPzVtSgjhYMZsAPzXKxF0/H
+-9VH0DekEb1WwPSbGZw8kpx9ePlglGqOBinTL6QW8YmFPbjy9RDd1di+fxh4Qe024
+-8gERZpdSsMoZ+NP0nr/TSbDISFPqcLzzMpC+V8Fc/QkNvSkR1GLlNQrxLoyfK0VX
+-0evysXDxqIWK9+TH7hIS1lf3i2gMkLMppMso1v2Cqf0zRj1oM3MI743QE9XTXKRz
+-iAwaEDDPZWS/00T9fqNrHgtSPNpsbeYZQPYaC2lq1kTIEOlUfZZvMy5lxVPVZ8y2
+-foit+0DewZsqLDJwbjZ3wYMERVEY7KagoInQa3A1ZC9SkFiCb4fNEbRF13gfjrSz
+-muRbKAhEhkzJDFRocIaTKZPIWdvC73tAW66v1Zha74mxuckgnQPPqQ==
+------END RSA PRIVATE KEY-----
++-----BEGIN ENCRYPTED PRIVATE KEY-----
++MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIOTZv8WJMOWACAggA
++MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECJGTN+jUwUhuBIIEyJghDPvGvTtV
++0zIVbjh6xm5Uwp9KuhnKq87SW1C8cvL3sQFxcYalUkR5etejHDsrgw6r/jpijh+T
++mRW2GncLHUJjzS/nM3j8UbbY5ELAhcJSQSw5UdtUVJ3kQxL/f4GIlbhx711s4ARV
++YH4BZuOxC0eaobMSOzsYOAY2JPHdRWqhr63acsnn+1nJAhlH7Sz8B7Y5tVNl99O+
++QIsKi6K4s0ySZlU34DMTI78oM49fsi1sAGIR+klbyNvkyqsVmy8YlKLZPpCUzaJd
++a4KZl4rDJtLv4AMXJYJpxOAnP/WDWrnyfguJB9uHie6bgwp/cHUqNGeFBHNgxv5a
++e1/Hk7iNPS9CW23MrFWLOEwB6yv4QuQQg1MlbVsmAT+cc7dEI1h7g6aWzGrZoW+l
++xaElJ9j/0+/8BzXUYy1Uq5Gs2ZwpY6nRHBI4gPOLN8J1piIhPzURIQoPlmsr/47v
++O+duE9zqPZjqEEZMrE00XpJvPmnAOc5eSHCGkf7xiCaqxsVKgCHNGMF+EtYNbOh4
++e/riE7mhhV7SCmJNcnTFTjP6pWskb/HEOyAVbxuN4BQ6GIQTUcbOT9Yy/Azzzs03
++4s1+qYqlzM2RV9WbLd0U21K6emE5JvR80Gis6xol+BiTyjchhGjhuPjyDDPIqQKm
++JCh44UdI7dm4xGd473SbVDxkRRf5WB0VC2BsZMb+RLAaZWsxF1WbGAUsF3coo8Q1
++dnjCjerK6CD7SDSMRyQLvd0SyyDY13GKQkSjGsghl3rEB4FhuyhNPxGxSxrVSkCX
++FvsIiJhc80VBdkJmSg+l1UTisrrBgpGQ+pA8cOtSAwtm+notUvj84iRpAVxN/cuv
++jCL5BrCNuCtrhJEjs24gnMJHEk7FYCp4iPXKh1dveL+NyEDVVR8gJiKddWmdcJ/G
++Cez40UIxuTgHyCDRa2oN8JxSzVt5/QU34WIP+HnZ61rqmZ7nm8CJxp5Hp6Z4bX1J
++QujW3E3FHJ7BtM4wZR7MumKfZsxswvdXU6X1owXiZ4wiL7dqt5jA82LrL7cTq25l
++vg17mZf4Gtwhrbl+/RnTpzPg/qUI1bw2S+Cbtd39Gy6KH/CvVov+E1dQdsFXBATz
++9Cb8JtulYSz6mcfEQUGcz82lP9m6pd2bEYvnljkzd4D6AqtI9bqjuKnOfTlR+E8r
++5trNm3i/sexs3YNWcNJY7IbJ8Lg3LS3ByJG3g9nxueU0tAzzxcRC2VwcjIci1cyY
++lY71JWiEoBsjNR8AlbVvWDtRCo2bu8q3wFLKZMlMZlZG95CqcqXy3QWby1AN4sVv
++tfFldCNVCFLXBVo2lMvw2+J8D129t5bUchd96dGHkQ0aPSnVdMg1AK3g1XxLWc17
++yafjWcR/Pua8zMosN1YqZSDgav7lzEuFDs94cukduop+98T/TjlxejoOimppCtXs
++bKQ+tDUbCg6HRn6vMyWMonrVTaT+RFXtoTfwFEONfjaJ7Wgh2yG/xB6ZjOpMF5Mq
++SbbmF1fh+xJfb6J68RT9mhY9PwOZXKzfcQ4FWonvo14JbQIve8xlJ+gHBUEwBZli
++hkBmZAd0ZGoszPbArcgn3EoIoogG1LcHjWaq+Dw2HYBCtvxZf4e4npg59IG12WOP
++cpkk1XK/52QEeuTSf9x4OA==
++-----END ENCRYPTED PRIVATE KEY-----
+diff --git a/tests/certs/legacy.p12 b/tests/certs/legacy.p12
+new file mode 100644
+index 0000000000000000000000000000000000000000..df2f4aea06bffee7ede3e2c78d0db41b9968a918
+GIT binary patch
+literal 3715
+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
+JW%<ub{Vy9B+6w>x
+
+literal 0
+HcmV?d00001
+
+diff --git a/tests/certs/revoked.pem b/tests/certs/revoked.pem
+index 5707ecd..30be7c7 100644
+--- a/tests/certs/revoked.pem
++++ b/tests/certs/revoked.pem
+@@ -1,45 +1,45 @@
+ -----BEGIN CERTIFICATE-----
+-MIIDvTCCAqWgAwIBAgIUOpY5wp7DtqsdxII7sxculedk0PYwDQYJKoZIhvcNAQEL
++MIIDvTCCAqWgAwIBAgIUDNLHzkIApmatwuk4ju+Cl74nPlswDQYJKoZIhvcNAQEL
+ BQAwYDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEgMB4GA1UE
+ CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGDAWBgNVBAMMD0ludGVybWVkaWF0
+ ZSBDQTAeFw0xODAxMDEwMDAwMDBaFw0yNDEyMzEwMDAwMDBaMG0xCzAJBgNVBAYT
+ AlBMMRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxDDAKBgNVBAsMA0NTUDEQMA4GA1UE
+ AwwHUmV2b2tlZDEnMCUGCSqGSIb3DQEJARYYb3NzbHNpZ25jb2RlQGV4YW1wbGUu
+-Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsksndW3LaWAnD7mi
+-4BXhmqQjC99Y9wTvMPUJ9AgvbzTaNW4JJOQ31x8VVgwoUQ8nFBYkAqgLOv9THzNi
+-30Fc7mjf37Pu6YsqZzql+tknqQbiaysyNm/fouwJDJ+NRzU70fVqI5AS9FBjakXa
+-/l1+pEysCofURJAcKCBQGMSVaP2gwVrHyPI7snFPO6205vqaEOarPira7gvBkYeU
+-Gh+A4AHngyW/jXHt0OHzmL+NrJe5hiayNHAK4ECfXj4PbMibI8PHlRpQkkzO6OhC
+-uI5ngpTZ0dGDLT693tlusvWRFjVrHI1D6MGTtQeeVlnYIKSEGhkgzp7PeWM/CCty
+-mDRG1wIDAQABo2IwYDAJBgNVHRMEAjAAMB0GA1UdDgQWBBQHE8SzT1ZcPEapv4NZ
+-MWBxRB3QATAfBgNVHSMEGDAWgBSeBawLW+FAf2oO9NlET4onfe84izATBgNVHSUE
+-DDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQsFAAOCAQEAYVJiPrkACW/tK487fYS/
+-gYzU3fYVCTfHpAv3njarNzy8UBNqBYr0kDg0DLoOWqGV7ogTtlbQP4IIjAQI/kW6
+-cEreW8yU5VxO+kxDo+7oG9VEbR85i6kQW2ubJsXV6yBtf5aAbXEqImYrtjh7UObb
+-BbQiUI1ll2dXWqvZGxr3Fz1uz8nPMYlBpVjpCh6JF8otdWwABmxRnqUvoLO6BZbH
+-/gdUkouXfio9BlWkWaJXJGXMW8B7ozpjuCHSHyfvGKDA3YIfa7++A1BIKxW72jIF
+-jRJDw/rwnV59tiEcBWmp2T6vV+rD8yaS+LotRPYD/ck/jEj/mV+N077KLmuZpdJF
+-ag==
++Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt5XYXdxFhaYbaWIG
++HWoyBolsrraATwLG78sbpZIXA662YpKDkElAOemQd7x3RrSamrWZNaVNvZj41WG8
++cgw6P9fQR1SDyHs1y04Ml1vmsdxVAQCzl7xCkNjlykXcRz6QMTiZ4ca960rMGu88
++fyUxr8jwcRSdTepZ1MKsyoi8yaOiSRoAAcnbaHy5RaeheEtGHYDPWepA+uaJVbRP
++xRYVGJZhmvloVt+uotqZ0nExxLRSdsXq8nOGalplUT7tQri9Bg3zsyA1smQB8lDm
++bkNlaKjBAaqJdTc7oO70SAJEFa/mqVOzQZJ1kqHjOIL6i8VPtdBQb2I2iJj5hNVv
++dgaj8QIDAQABo2IwYDAJBgNVHRMEAjAAMB0GA1UdDgQWBBQDjv3lzsSUMbVgB4wS
++LvPGd3neljAfBgNVHSMEGDAWgBQzqdMKfAJTwbfYGqmqVaauoFzpnDATBgNVHSUE
++DDAKBggrBgEFBQcDAzANBgkqhkiG9w0BAQsFAAOCAQEAcB1h5O55YyIuLSPwBKy3
++L36Msm0EutKj07soEVzWyq1/2elOvIksS/O/25zzenR/0Sf1/CBBU1kSQlb0PnkR
++f0cgWKW3I9eqJevkyABE7CS5V8y9YYkrWl+XedRmPBuMYElTs79LQllFPhbga4lQ
++bPtyCM+BpnsK5dkVf0AOoXkMOg7Ib3yg5LAvU2caZ3l7MnX/aXJEeVnJ4tGF6nzI
++1e9X+ypOJ1GOpA/hXEHiDri5FVEMZamVFDRprdB2vA1Go7utNHZ/lvcoHRsU3rR9
++K/uN2Hw4XhFZoN+9F8N0wD8CXk/hjJwPTAcUfzgSjhymgHzZEJa4G40O4fN4jWTr
++Cg==
+ -----END CERTIFICATE-----
+ -----BEGIN CERTIFICATE-----
+-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
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/revoked.spc b/tests/certs/revoked.spc
+index 91857561c39b205b3de6b37454d42d3a5b171348..6123d8158ce8c3213129c9c1670a8b8d28c34c53 100644
+GIT binary patch
+delta 1588
+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
+P!Gtgk%)wOg2paM~gw^lW
+
+delta 1588
+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
+Po-I;`Z!2J!c|72MBzxYT
+
+diff --git a/tests/certs/tsa-chain.pem b/tests/certs/tsa-chain.pem
+index c8c6ef2..cd3d99f 100644
+--- a/tests/certs/tsa-chain.pem
++++ b/tests/certs/tsa-chain.pem
+@@ -1,50 +1,50 @@
+ -----BEGIN CERTIFICATE-----
+-MIIEzTCCA7WgAwIBAgIUfRjXKciCGA4XbhbhxbAwfpcLGmowDQYJKoZIhvcNAQEL
++MIIEzTCCA7WgAwIBAgIUaDV4MOupysdYAfwy1BiaGDN6KWwwDQYJKoZIhvcNAQEL
+ BQAwYDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEkMCIGA1UE
+ CwwbVGltZXN0YW1wIEF1dGhvcml0eSBSb290IENBMRQwEgYDVQQDDAtUU0EgUm9v
+ dCBDQTAeFw0xODAxMDEwMDAwMDBaFw0yODAxMDEwMDAwMDBaMFUxCzAJBgNVBAYT
+ AlBMMRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxHDAaBgNVBAsME1RpbWVzdGFtcCBB
+ dXRob3JpdHkxETAPBgNVBAMMCFRlc3QgVFNBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+-AQ8AMIIBCgKCAQEAor220wp2zqj6Fe1VT/yic4LJcfMn1/ZWhsE7L86krULRvI+N
+-JY0fOVg/24MtyOXbnm7nYOyYTlR9n2kqm4fEgsz+GDQxXLHgyLh3aF4ueDzoFt0v
+-8G3vJfD+4N27XAYJ5V4f4s4VJRDIm0P/BvFGY9J/zICjC83F3OLdnkOD88O8QD6q
+-FwWdtBYNqxQX1LAwy3ORe5aTubdVkHV02JhdKAC/xy5nfhynuV4KfYyel2nHrI1i
+-54UXWdOrlD/XIKPiXpuEGcXhYTrTHigH+yR9ybs9hotGvuHTEjcxEuJvEQJX+qV4
+-eJAIexITDW/yK+maWPLijO3bZ9/JodX+fRCnPQIDAQABo4IBiDCCAYQwDAYDVR0T
+-AQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQUKWCqogni
+-6SseJ/P6LXo0M2cK++QwHwYDVR0jBBgwFoAU/5nNuG4Tm4v2y9uKf428/4fVQesw
++AQ8AMIIBCgKCAQEA54M6SZ/7psvK2wMkh4V2eI8ZY82f8Q1v/LcW8t34NSyz9c3j
++/YOVcKu9AeWdldUFnr7ogs8xITCsVOibxVICZwgKii8XD8ZqZYCxyDn7aupct14n
++Jr8F8w/LhNJgzT+dL+IQAZeujpURft3BpcBB5a/wOFWHMhHO9MQSNnFI5rra9jtv
++jXKWpsP4gJetM7ig/Qhj+wDH3H1AtQnZaJsjAJN0Tr1qCV8VeYwoOy6E0Fks3c0C
++4tv5gYxtMvR5eHZUdu47KHlDZZJbkgvA4d5jxkP63yBHP3p9VDvrFWUaPYgSQsPP
++M47+rgn9p5Xr2gFKbUbr0KhL+FjDWjA3tC6ihQIDAQABo4IBiDCCAYQwDAYDVR0T
++AQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQUVzwbd6xW
++ZJQxaV7Vq7t+rbzjtJQwHwYDVR0jBBgwFoAUZiXazafm/zg+I4wbylR/skX0dWow
+ gYQGCCsGAQUFBwEBBHgwdjA5BggrBgEFBQcwAoYtaHR0cDovL1RTQUNBLnRpbWVz
+ dGFtcGF1dGhvcml0eS5jb20vVFNBQ0EuY3J0MDkGCCsGAQUFBzABhi1odHRwOi8v
+ b2NzcC5UU0FDQS50aW1lc3RhbXBhdXRob3JpdHkuY29tOjkwODAwPgYDVR0fBDcw
+ NTAzoDGgL4YtaHR0cDovL1RTQUNBLnRpbWVzdGFtcGF1dGhvcml0eS5jb20vVFNB
+ Q0EuY3JsMFUGA1UdHgROMEygGDAKggh0ZXN0LmNvbTAKggh0ZXN0Lm9yZ6EwMAqH
+ CAAAAAAAAAAAMCKHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA0G
+-CSqGSIb3DQEBCwUAA4IBAQB4YXa5nVWUzWSsUDMfYFTEETOe8boUErwfrDNBuj6z
+-B5en20FhI49i6PCYEfNq3vrAtPOEFJj+KPomN3C46VLxbUEvqWLdq6EyzWvVVmXK
+-VLeC0qV0m6CFM8GplaWzZdfFTQaaLUhgY08ZU2gp4QsoS2YjAosxlZrNSm6pBbv3
+-q+Og1KeSK8gKS0V89k+6e3LOEF6KaNWKSkoz5xDniQY//mTjiDcNmYUh0KhHfhdU
+-eO92M82uJSaDqnRs5HsWPs6z6qdfpuvj++OtQ1VCM2p5SEH2sEomdeN3YYChuG4h
+-yzn0mYAdbTyGJHlFm17AH+SQRbVqCKYdHDaqsMb+fWzi
++CSqGSIb3DQEBCwUAA4IBAQBdZ/Zgc0e6F4H7J/rdAegE3MhZPLLAPGq/H5IPC4ij
++ksW6ujTejCJgtSWAfkUXjaCDQvT7bkq4AMo18ELc3I2kpTp1dvftc3aMoDBuGz/7
++K0sxlA1DFncmY6hhh3cg2Gjb1vlnuWnwwSrfy46UuNvsJi4DjBZXHt+gY8KM4Gas
++i3MIqlM/ZIlljc2LRGUKxftkM3odP1kA65yNlcMV9BESRGsAOH8nb6f7Qb4I6vjk
++Oijzs75JPWy9C+vMutH5LSfMAjrdRmNKnDoWVCe22QT1jReIRMNsRjdX0j+SkyyL
++HpqLVmczWLFHPspm8tRyAI7Vc0CpY9ixJyeidD4mg7iv
+ -----END CERTIFICATE-----
+ -----BEGIN CERTIFICATE-----
+-MIIDkDCCAnigAwIBAgIUJ0nfE+EVsIThltlY2LHVWMJVIq4wDQYJKoZIhvcNAQEL
++MIIDkDCCAnigAwIBAgIUWSzkBFwFSMGVBrF88OJwBUP9eNkwDQYJKoZIhvcNAQEL
+ BQAwYDELMAkGA1UEBhMCUEwxFTATBgNVBAoMDG9zc2xzaWduY29kZTEkMCIGA1UE
+ CwwbVGltZXN0YW1wIEF1dGhvcml0eSBSb290IENBMRQwEgYDVQQDDAtUU0EgUm9v
+ dCBDQTAeFw0xNzAxMDEwMDAwMDBaFw0yNjExMTAwMDAwMDBaMGAxCzAJBgNVBAYT
+ AlBMMRUwEwYDVQQKDAxvc3Nsc2lnbmNvZGUxJDAiBgNVBAsMG1RpbWVzdGFtcCBB
+ dXRob3JpdHkgUm9vdCBDQTEUMBIGA1UEAwwLVFNBIFJvb3QgQ0EwggEiMA0GCSqG
+-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGOTX1f9dmtUiyzlsUInRIGfRMya338SVx
+-vYGeOwdpTSSGlYUVwR9AuFewQF5+klelstCJe+SoUG0AdzS30mRWlQrhip4UdvdW
+-T2gkNKbSn6DQzlWoQej9izqRLxAsbuszgkvnLOBEmPaLimDsCgu0bAN95Hp0Hls9
+-O/fVmzh8VuV4iscxc7q13ZB7CylWgwd55CFEGd/jpJ6kMwSHbOLoBWp4GQ3KxR+c
+-ASAo0FapU2WSZB2EYWszRiyq91X+AvIYN4ypTv7RccgfUvnZ2qFykJAkf/wgkynu
+-Qg7rCUNfUEpDc7jlqtDWR7iLrtHBkA17C3IU8ymmKQYWfw3ZyBwvAgMBAAGjQjBA
+-MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP+ZzbhuE5uL9svbin+NvP+H1UHr
+-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAbj3aFwIUxvzwgywO
+-gj01JM8GNbw1E4MGdkaNI8rgeY8ay15ZXhR9NpRWWb6Y7IXPq5XhuEktVte5Z4Kf
+-XLBrr7Xe9VVqJL9zd1tMzOEM/zG77rZf/iXBTZLkCtQc/GOEY4TTWKNEl5hiWVE0
+-po97GX5XHoeyHlWQ75sd9z6MxFxmvdp9/uyYD700e9sd5gcD8LGvHw2DNy8vntYV
+-ia9h95N9i1umffxU460o8W5GoIcsD13B3YftvnWhGSXqovBRFgcPAQZ4eW9Qh/zA
+-4zQBQrRvmREPihXVdgtWVpbRchP99oSZBrYr7Hh/P69rycklquqxJl1ol1wbT6dK
+-S5Gmng==
++SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1iXUDwCHsyISjyimEvnvIPer4aqdpZ26y
++uKI2oURQQpAlL+PlbP5/wm63tyxCY/Oo6cadcXEk9TGEi/SpGMKJtfaZAFzygEQC
++dU995pfpLsQ9Aaf53ErE4L7RsB+noDnYd0UWklBHBmKmWSszfaS/qcsqexP+BBzy
++GgUK1/bVg2SjYESoQ7lWA0o/s9VTYBQ0k36EqykBjWhy87goKBvvDkafqbWRcG+8
++RMgbzvD4vBjOyZWhXH6cKj6Hg7QfDjuTQWV7tQ+zCq0pGMsftcH+N7z5oXyNUiwj
++ALPWxOvrViNRDG2I3GUXU3yWQIHNhmNkIrNE5GJRmx1dkYX0oEW3AgMBAAGjQjBA
++MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFGYl2s2n5v84PiOMG8pUf7JF9HVq
++MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAmCnnUVQoKhbKLqyp
++qNdyT5FFEKyoCd9defa5bKzPhzdkkuxPjidsLsxvP58n6EB8i2inddBfdUxv/0lG
++kGHO+7Lz8qjMlJ9+VlLTmA96Q4SHBP9XKUmyYPx3PpEZcxiJZNXoUO1ZokTps0/Q
++BSoQ+9SPIIzxEzr0BNijtY/x6TJV5M9J1ePWuK1Vu0mhTs3FPE+/wXzxZG94ZQLg
++pX9hkkXmvRIe7dg3XZDUtKglH2p4c22vX7UP4qyqpPWFWKw1lCYt9K7QOVAdEfCI
++TlpZh6MQPZIk0FUAWOxDeRTAJk/Pe0I7wf+L1hwxi1y4JfgebNXynp46T6v/I5Wm
++UApdTw==
+ -----END CERTIFICATE-----
+diff --git a/tests/certs/tsa-serial b/tests/certs/tsa-serial
+new file mode 100644
+index 0000000..15afeb2
+--- /dev/null
++++ b/tests/certs/tsa-serial
+@@ -0,0 +1 @@
++ba458168626824fa059d68686df0f1eb
+diff --git a/tests/certs/.gitignore b/tests/conf/.gitignore
+similarity index 100%
+rename from tests/certs/.gitignore
+rename to tests/conf/.gitignore
+diff --git a/tests/conf/makecerts.sh b/tests/conf/makecerts.sh
+index abf51c2..b27ee83 100755
+--- a/tests/conf/makecerts.sh
++++ b/tests/conf/makecerts.sh
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+
+ result=0
+
+@@ -18,7 +18,6 @@ make_certs() {
+ script_path=$(pwd)
+ cd "${result_path}"
+ mkdir "tmp/"
+- rm -rf "../certs"
+
+ # OpenSSL settings
+ CONF="${script_path}/openssl_intermediate.cnf"
+@@ -34,7 +33,7 @@ make_certs() {
+ touch "CA/index.txt"
+ echo -n "unique_subject = no" > "CA/index.txt.attr"
+ $OPENSSL rand -hex 16 > "CA/serial"
+- $OPENSSL rand -hex 16 > "tsa-serial"
++ $OPENSSL rand -hex 16 > "tmp/tsa-serial"
+ echo 1001 > "CA/crlnumber"
+ date > "makecerts.log"
+ "$OPENSSL" version 2>> "makecerts.log" 1>&2
+@@ -175,7 +174,25 @@ make_certs() {
+ 2>> "makecerts.log" 1>&2
+ test_result $?
+
+- printf "\nConvert the certificate and the key into a PKCS#12 container\n" >> "makecerts.log"
++ ssl_version=$("$OPENSSL" version)
++ if test "${ssl_version:8:1}" -eq 3
++ then
++ printf "\nConvert the certificate and the key into legacy PKCS#12 container with\
++ RC2-40-CBC private key and certificate encryption algorithm\n" >> "makecerts.log"
++ "$OPENSSL" pkcs12 -export -in tmp/cert.pem -inkey tmp/key.pem -out tmp/legacy.p12 -passout pass:"$password" \
++ -keypbe rc2-40-cbc -certpbe rc2-40-cbc -legacy \
++ 2>> "makecerts.log" 1>&2
++ else
++ printf "\nConvert the certificate and the key into legacy PKCS#12 container with\
++ RC2-40-CBC private key and certificate encryption algorithm\n" >> "makecerts.log"
++ "$OPENSSL" pkcs12 -export -in tmp/cert.pem -inkey tmp/key.pem -out tmp/legacy.p12 -passout pass:"$password" \
++ -keypbe rc2-40-cbc -certpbe rc2-40-cbc \
++ 2>> "makecerts.log" 1>&2
++ fi
++ test_result $?
++
++ printf "\nConvert the certificate and the key into a PKCS#12 container with\
++ AES-256-CBC private key and certificate encryption algorithm\n" >> "makecerts.log"
+ "$OPENSSL" pkcs12 -export -in tmp/cert.pem -inkey tmp/key.pem -out tmp/cert.p12 -passout pass:"$password" \
+ -keypbe aes-256-cbc -certpbe aes-256-cbc \
+ 2>> "makecerts.log" 1>&2
+@@ -230,9 +247,9 @@ make_certs() {
+ -a -s tmp/key.pem -a -s tmp/keyp.pem -a -s tmp/key.der -a -s tmp/key.pvk \
+ -a -s tmp/cert.pem -a -s tmp/cert.p12 -a -s tmp/cert.der -a -s tmp/cert.spc \
+ -a -s tmp/crosscert.pem -a -s tmp/expired.pem -a -s tmp/revoked.pem -a -s tmp/revoked.spc \
+- -a -s tmp/TSA.pem -a -s tmp/TSA.key -a -s tmp/tsa-chain.pem
++ -a -s tmp/TSA.pem -a -s tmp/TSA.key -a -s tmp/tsa-chain.pem -a -s tmp/legacy.p12
+ then
+- mkdir "../certs"
++ mkdir -p "../certs"
+ cp tmp/* ../certs
+ printf "%s" "keys & certificates successfully generated"
+ else
+diff --git a/tests/conf/openssl_tsa_root.cnf b/tests/conf/openssl_tsa_root.cnf
+index e94c2ba..5c60373 100644
+--- a/tests/conf/openssl_tsa_root.cnf
++++ b/tests/conf/openssl_tsa_root.cnf
+@@ -27,6 +27,7 @@ policy = policy_match
+ default_startdate = 20180101000000Z
+ default_enddate = 20280101000000Z
+ unique_subject = no
++email_in_dn = no
+ x509_extensions = tsa_extensions
+
+ [ policy_match ]