[glib-networking/mcatanzaro/readable-private-key: 23/23] tls: make private-key and private-key-pem properties readable




commit d3b1a3e11bc67e4bea2052d813ddabab5512b9f9
Author: Michael Catanzaro <mcatanzaro redhat com>
Date:   Thu Jun 10 19:27:31 2021 -0500

    tls: make private-key and private-key-pem properties readable
    
    This implements glib!2087, allowing applications to read the private-key
    and private-key-pem properties, but only if the key is backed by memory
    and not something like a PKCS #11 smartcard.

 tls/gnutls/gtlscertificate-gnutls.c         |  86 +++++++++++++----
 tls/openssl/gtlscertificate-openssl.c       |  79 +++++++++++++++-
 tls/tests/certificate.c                     |  78 +++++++++++++++
 tls/tests/certificate.h                     |   4 +-
 tls/tests/connection.c                      |   2 +-
 tls/tests/files/ca-alternative.pem          |  34 +++----
 tls/tests/files/ca-key.pem                  |  50 +++++-----
 tls/tests/files/ca-roots-bad.pem            |  36 +++----
 tls/tests/files/ca-roots.pem                |  36 +++----
 tls/tests/files/ca.pem                      |  36 +++----
 tls/tests/files/chain.pem                   |  96 +++++++++----------
 tls/tests/files/client-and-key.pem          |  80 ++++++++--------
 tls/tests/files/client-csr.pem              |  24 ++---
 tls/tests/files/client-future.pem           |  26 ++---
 tls/tests/files/client-key.pem              |  50 +++++-----
 tls/tests/files/client-past.pem             |  26 ++---
 tls/tests/files/client.pem                  |  30 +++---
 tls/tests/files/client2-and-key.pem         |  80 ++++++++--------
 tls/tests/files/client2-csr.pem             |  24 ++---
 tls/tests/files/client2-key.pem             |  50 +++++-----
 tls/tests/files/client2.pem                 |  30 +++---
 tls/tests/files/create-files.sh             |   4 +
 tls/tests/files/intermediate-ca-csr.pem     |  28 +++---
 tls/tests/files/intermediate-ca-key.pem     |  50 +++++-----
 tls/tests/files/intermediate-ca.pem         |  34 +++----
 tls/tests/files/non-ca.pem                  | 142 ++++++++++++++--------------
 tls/tests/files/old-ca-key.pem              |  50 +++++-----
 tls/tests/files/old-ca.pem                  |  38 ++++----
 tls/tests/files/root-ca-csr.pem             |  28 +++---
 tls/tests/files/server-and-key.pem          |  80 ++++++++--------
 tls/tests/files/server-csr.pem              |  24 ++---
 tls/tests/files/server-intermediate-csr.pem |  24 ++---
 tls/tests/files/server-intermediate-key.pem |  50 +++++-----
 tls/tests/files/server-intermediate.pem     |  26 ++---
 tls/tests/files/server-key-pkcs8.der        | Bin 0 -> 1219 bytes
 tls/tests/files/server-key-pkcs8.pem        |  28 ++++++
 tls/tests/files/server-key.der              | Bin 1191 -> 1193 bytes
 tls/tests/files/server-key.pem              |  50 +++++-----
 tls/tests/files/server-self.pem             |  30 +++---
 tls/tests/files/server.der                  | Bin 920 -> 920 bytes
 tls/tests/files/server.pem                  |  30 +++---
 41 files changed, 956 insertions(+), 717 deletions(-)
---
diff --git a/tls/gnutls/gtlscertificate-gnutls.c b/tls/gnutls/gtlscertificate-gnutls.c
index 5de6eb5..ea8f593 100644
--- a/tls/gnutls/gtlscertificate-gnutls.c
+++ b/tls/gnutls/gtlscertificate-gnutls.c
@@ -146,6 +146,45 @@ get_subject_alt_names (GTlsCertificateGnutls          *cert,
   return data;
 }
 
+static void
+export_privkey (GTlsCertificateGnutls  *gnutls,
+                gnutls_x509_crt_fmt_t   format,
+                void                  **output_data,
+                size_t                 *output_size)
+{
+  gnutls_x509_privkey_t x509_privkey;
+  int status;
+
+  if (!gnutls->key)
+    goto err;
+
+  status = gnutls_privkey_export_x509 (gnutls->key, &x509_privkey);
+  if (status != 0)
+    goto err;
+
+  *output_size = 0;
+  status = gnutls_x509_privkey_export_pkcs8 (x509_privkey,
+                                             format,
+                                             NULL, GNUTLS_PKCS_PLAIN,
+                                             NULL, output_size);
+  if (status != GNUTLS_E_SHORT_MEMORY_BUFFER)
+    goto err;
+
+  *output_data = g_malloc (*output_size);
+  status = gnutls_x509_privkey_export_pkcs8 (x509_privkey,
+                                             format,
+                                             NULL, GNUTLS_PKCS_PLAIN,
+                                             *output_data, output_size);
+  if (status == 0)
+    return;
+
+  g_free (*output_data);
+
+err:
+  *output_data = NULL;
+  *output_size = 0;
+}
+
 static void
 g_tls_certificate_gnutls_get_property (GObject    *object,
                                        guint       prop_id,
@@ -153,8 +192,9 @@ g_tls_certificate_gnutls_get_property (GObject    *object,
                                        GParamSpec *pspec)
 {
   GTlsCertificateGnutls *gnutls = G_TLS_CERTIFICATE_GNUTLS (object);
-  GByteArray *certificate;
-  char *certificate_pem;
+  GByteArray *byte_array;
+  char *pem;
+  guint8 *der;
   int status;
   size_t size;
   gnutls_x509_dn_t dn;
@@ -169,21 +209,21 @@ g_tls_certificate_gnutls_get_property (GObject    *object,
                                        GNUTLS_X509_FMT_DER,
                                        NULL, &size);
       if (status != GNUTLS_E_SHORT_MEMORY_BUFFER)
-        certificate = NULL;
+        byte_array = NULL;
       else
         {
-          certificate = g_byte_array_sized_new (size);
-          certificate->len = size;
+          byte_array = g_byte_array_sized_new (size);
+          byte_array->len = size;
           status = gnutls_x509_crt_export (gnutls->cert,
                                            GNUTLS_X509_FMT_DER,
-                                           certificate->data, &size);
+                                           byte_array->data, &size);
           if (status != 0)
             {
-              g_byte_array_free (certificate, TRUE);
-              certificate = NULL;
+              g_byte_array_free (byte_array, TRUE);
+              byte_array = NULL;
             }
         }
-      g_value_take_boxed (value, certificate);
+      g_value_take_boxed (value, byte_array);
       break;
 
     case PROP_CERTIFICATE_PEM:
@@ -192,20 +232,32 @@ g_tls_certificate_gnutls_get_property (GObject    *object,
                                        GNUTLS_X509_FMT_PEM,
                                        NULL, &size);
       if (status != GNUTLS_E_SHORT_MEMORY_BUFFER)
-        certificate_pem = NULL;
+        pem = NULL;
       else
         {
-          certificate_pem = g_malloc (size);
+          pem = g_malloc (size);
           status = gnutls_x509_crt_export (gnutls->cert,
                                            GNUTLS_X509_FMT_PEM,
-                                           certificate_pem, &size);
+                                           pem, &size);
           if (status != 0)
-            {
-              g_free (certificate_pem);
-              certificate_pem = NULL;
-            }
+            g_clear_pointer (&pem, g_free);
         }
-      g_value_take_string (value, certificate_pem);
+      g_value_take_string (value, pem);
+      break;
+
+    case PROP_PRIVATE_KEY:
+      export_privkey (gnutls, GNUTLS_X509_FMT_DER, (void **)&der, &size);
+      if (size > 0 && size <= G_MAXUINT)
+        {
+          byte_array = g_byte_array_new_take (der, size);
+          g_value_take_boxed (value, byte_array);
+        }
+      break;
+
+    case PROP_PRIVATE_KEY_PEM:
+      export_privkey (gnutls, GNUTLS_X509_FMT_PEM, (void **)&pem, &size);
+      if (size > 0)
+        g_value_take_string (value, pem);
       break;
 
     case PROP_ISSUER:
diff --git a/tls/openssl/gtlscertificate-openssl.c b/tls/openssl/gtlscertificate-openssl.c
index 2ed753f..6777add 100644
--- a/tls/openssl/gtlscertificate-openssl.c
+++ b/tls/openssl/gtlscertificate-openssl.c
@@ -136,6 +136,69 @@ get_subject_alt_names (GTlsCertificateOpenssl *cert,
   return data;
 }
 
+static void
+export_privkey_to_der (GTlsCertificateOpenssl  *openssl,
+                       guint8                 **output_data,
+                       long                    *output_size)
+{
+  PKCS8_PRIV_KEY_INFO *pkcs8;
+  BIO *bio = NULL;
+  const guint8 *data;
+
+  if (!openssl->key)
+    goto err;
+
+  pkcs8 = EVP_PKEY2PKCS8 (openssl->key);
+  if (!pkcs8)
+    goto err;
+
+  bio = BIO_new (BIO_s_mem ());
+  if (i2d_PKCS8_PRIV_KEY_INFO_bio (bio, pkcs8) == 0)
+    goto err;
+
+  *output_size = BIO_get_mem_data (bio, (char **)&data);
+  if (*output_size <= 0)
+    goto err;
+
+  *output_data = g_malloc (*output_size);
+  memcpy (*output_data, data, *output_size);
+  return;
+
+err:
+  if (bio)
+    BIO_free_all (bio);
+  *output_data = NULL;
+  *output_size = 0;
+}
+
+static char *
+export_privkey_to_pem (GTlsCertificateOpenssl *openssl)
+{
+  int ret;
+  BIO *bio = NULL;
+  const char *data = NULL;
+  char *result = NULL;
+
+  if (!openssl->key)
+    return NULL;
+
+  bio = BIO_new (BIO_s_mem ());
+  ret = PEM_write_bio_PKCS8PrivateKey (bio, openssl->key, NULL, NULL, 0, NULL, NULL);
+  if (ret == 0)
+    goto out;
+
+  ret = BIO_write (bio, "\0", 1);
+  if (ret != 1)
+    goto out;
+
+  BIO_get_mem_data (bio, (char **)&data);
+  result = g_strdup (data);
+
+out:
+  BIO_free_all (bio);
+  return result;
+}
+
 static void
 g_tls_certificate_openssl_get_property (GObject    *object,
                                         guint       prop_id,
@@ -146,8 +209,9 @@ g_tls_certificate_openssl_get_property (GObject    *object,
   GByteArray *certificate;
   guint8 *data;
   BIO *bio;
+  GByteArray *byte_array;
   char *certificate_pem;
-  int size;
+  long size;
 
   const ASN1_TIME *time_asn1;
   struct tm time_tm;
@@ -192,6 +256,19 @@ g_tls_certificate_openssl_get_property (GObject    *object,
         }
       break;
 
+    case PROP_PRIVATE_KEY:
+      export_privkey_to_der (openssl, &data, &size);
+      if (size > 0 && (gint64)size <= G_MAXUINT)
+        {
+          byte_array = g_byte_array_new_take (data, size);
+          g_value_take_boxed (value, byte_array);
+        }
+      break;
+
+    case PROP_PRIVATE_KEY_PEM:
+      g_value_take_string (value, export_privkey_to_pem (openssl));
+      break;
+
     case PROP_ISSUER:
       g_value_set_object (value, openssl->issuer);
       break;
diff --git a/tls/tests/certificate.c b/tls/tests/certificate.c
index a6bd247..c0100d3 100644
--- a/tls/tests/certificate.c
+++ b/tls/tests/certificate.c
@@ -67,7 +67,10 @@ typedef struct {
   GByteArray *cert_der;
   gchar *key_pem;
   gsize key_pem_length;
+  gchar *key_pem_pkcs8;
+  gsize key_pem_pkcs8_length;
   GByteArray *key_der;
+  GByteArray *key_der_pkcs8;
 } TestCertificate;
 
 static void
@@ -96,6 +99,10 @@ setup_certificate (TestCertificate *test, gconstpointer data)
                        &test->key_pem_length, &error);
   g_assert_no_error (error);
 
+  g_file_get_contents (tls_test_file_path ("server-key-pkcs8.pem"), &test->key_pem_pkcs8,
+                       &test->key_pem_pkcs8_length, &error);
+  g_assert_no_error (error);
+
   g_file_get_contents (tls_test_file_path ("server-key.der"),
                        &contents, &length, &error);
   g_assert_no_error (error);
@@ -103,6 +110,14 @@ setup_certificate (TestCertificate *test, gconstpointer data)
   test->key_der = g_byte_array_new ();
   g_byte_array_append (test->key_der, (guint8 *)contents, length);
   g_free (contents);
+
+  g_file_get_contents (tls_test_file_path ("server-key-pkcs8.der"),
+                       &contents, &length, &error);
+  g_assert_no_error (error);
+
+  test->key_der_pkcs8 = g_byte_array_new ();
+  g_byte_array_append (test->key_der_pkcs8, (guint8 *)contents, length);
+  g_free (contents);
 }
 
 static void
@@ -113,7 +128,9 @@ teardown_certificate (TestCertificate *test,
   g_byte_array_free (test->cert_der, TRUE);
 
   g_free (test->key_pem);
+  g_free (test->key_pem_pkcs8);
   g_byte_array_free (test->key_der, TRUE);
+  g_byte_array_free (test->key_der_pkcs8, TRUE);
 }
 
 static void
@@ -269,6 +286,63 @@ test_create_certificate_pkcs11 (TestCertificate *test,
 #endif
 }
 
+static void
+test_private_key (TestCertificate *test,
+                  gconstpointer    data)
+{
+  GTlsCertificate *cert;
+  GByteArray *der;
+  char *pem;
+  GError *error = NULL;
+
+  cert = g_tls_certificate_new_from_file (tls_test_file_path ("server-and-key.pem"), &error);
+  g_assert_no_error (error);
+  g_assert_true (G_IS_TLS_CERTIFICATE (cert));
+
+  g_object_get (cert,
+                "private-key", &der,
+                "private-key-pem", &pem,
+                NULL);
+  g_assert_cmpmem (der->data, der->len, test->key_der_pkcs8->data, test->key_der_pkcs8->len);
+  g_assert_cmpstr (pem, ==, test->key_pem_pkcs8);
+
+  g_byte_array_unref (der);
+  g_free (pem);
+  g_object_unref (cert);
+}
+
+static void
+test_private_key_pkcs11 (TestCertificate *test,
+                         gconstpointer    data)
+{
+#if !defined (BACKEND_IS_GNUTLS)
+  g_test_skip ("This backend does not support PKCS #11");
+#else
+  GTlsCertificate *cert;
+  GByteArray *der;
+  char *pem;
+  GError *error = NULL;
+
+  cert = g_initable_new (test->cert_gtype, NULL, &error,
+                         "pkcs11-uri", 
"pkcs11:model=mock;token=Mock%20Certificate;object=Mock%20Certificate",
+                         NULL);
+  g_assert_no_error (error);
+  g_assert_true (G_IS_TLS_CERTIFICATE (cert));
+
+  /* Cannot access private key because the GTlsCertificate only knows its
+   * PKCS #11 handle. It doesn't actually have the private key in memory.
+   */
+  g_object_get (cert,
+                "private-key", &der,
+                "private-key-pem", &pem,
+                NULL);
+  g_assert_null (der);
+  g_assert_null (pem);
+
+  g_object_unref (cert);
+#endif
+}
+
 static void
 test_create_certificate_chain (void)
 {
@@ -737,6 +811,10 @@ main (int   argc,
               setup_certificate, test_create_certificate_with_garbage_input, teardown_certificate);
   g_test_add ("/tls/" BACKEND "/certificate/pkcs11", TestCertificate, NULL,
               setup_certificate, test_create_certificate_pkcs11, teardown_certificate);
+  g_test_add ("/tls/" BACKEND "/certificate/private-key", TestCertificate, NULL,
+              setup_certificate, test_private_key, teardown_certificate);
+  g_test_add ("/tls/" BACKEND "/certificate/private-key-pkcs11", TestCertificate, NULL,
+              setup_certificate, test_private_key_pkcs11, teardown_certificate);
 
   g_test_add_func ("/tls/" BACKEND "/certificate/create-chain", test_create_certificate_chain);
   g_test_add_func ("/tls/" BACKEND "/certificate/create-no-chain", test_create_certificate_no_chain);
diff --git a/tls/tests/certificate.h b/tls/tests/certificate.h
index faf83b5..c306e67 100644
--- a/tls/tests/certificate.h
+++ b/tls/tests/certificate.h
@@ -1,4 +1,4 @@
 /* This file is generated from update-certificate-test.py */
 
-#define EXPECTED_NOT_VALID_BEFORE "2021-06-23T20:12:50Z"
-#define EXPECTED_NOT_VALID_AFTER "2046-06-17T20:12:50Z"
+#define EXPECTED_NOT_VALID_BEFORE "2021-06-23T20:16:15Z"
+#define EXPECTED_NOT_VALID_AFTER "2046-06-17T20:16:15Z"
diff --git a/tls/tests/connection.c b/tls/tests/connection.c
index ec70768..540301b 100644
--- a/tls/tests/connection.c
+++ b/tls/tests/connection.c
@@ -2638,7 +2638,7 @@ test_connection_binding_match_tls_unique (TestConnection *test,
  * please make sure the string below matches the output of
  * openssl x509 -outform der -in files/server.pem | openssl sha256 -binary | base64
  **/
-#define SERVER_CERT_DIGEST_B64 "ZhZtuMO6/KgDz9JoeCncmfZeV7G1BnF/LrRM5yE1VW0="
+#define SERVER_CERT_DIGEST_B64 "eHKDtxoT/cw518SETTA2D1jJyBeADm+5kM9nCY5/ono="
 static void
 test_connection_binding_match_tls_server_end_point (TestConnection *test,
                                                     gconstpointer   data)
diff --git a/tls/tests/files/ca-alternative.pem b/tls/tests/files/ca-alternative.pem
index 0842edc..aa53dc0 100644
--- a/tls/tests/files/ca-alternative.pem
+++ b/tls/tests/files/ca-alternative.pem
@@ -3,27 +3,27 @@ MIIFAjCCA+qgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBnzETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxLDAqBgNVBAsMI09sZCBV
 bnRydXN0ZWQgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYDVQQDDBlvbmNlLndh
 cy5hLmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNv
-bTAgFw0yMTA2MjMyMDEyNDlaGA8yMDUxMDYxNjIwMTI0OVowgYYxEzARBgoJkiaJ
+bTAgFw0yMTA2MjMyMDE2MTVaGA8yMDUxMDYxNjIwMTYxNVowgYYxEzARBgoJkiaJ
 k/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVD
 ZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0w
 GwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBALVPwMAwe1XziYvKgnmFXlJSdPs10HHdSbNWmkOXdlp+Ev+y
-cWscf9U9TvKOzP+IFBv7ejZqrlaZiCdijIW6tM3en96tRkpnIXIGmZYhJdkBOH7X
-D0iaZopKnrlZcMhe9RQsZlm6Nbbe0lHljNufKIFf3RISBlfWFpPIjxlsSVE5U3sq
-yzZVk3B2cq0olHINMCXjcCl4Qo9xhmQ529MFy0kiAfX9Ftd9STxpGOvU65AM5qVT
-9fVrcGVrQmqlwOh0t1TV2dqtbCRg5n76zrpO75lBpmSF/nrMfyS2srs7U99YoZVg
-XDtlfVslScrNNdcq+qHkwbc7q70VLENZsi8eE+cCAwEAAaOCAVwwggFYMB0GA1Ud
-DgQWBBQFomBZpMKdE9Wi5wE0yOGG1ixIsTCB3wYDVR0jBIHXMIHUgBRw2U/H1A7n
-/zcgFpCbbBeb5omCeKGBpaSBojCBnzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUG
+ggEPADCCAQoCggEBAMDI1oGcdnQkf3rb6tSABVeqsuZzVpoA7NmcbGWZPOC5x7XT
+dBeSeU/Q+Fl6B048CwVlIxXgL3z44CFcDee5Q3oIk3AiQenl4VIofbm8i43wXaPe
+9cf4m3lF88RQZsF6e8oTnuLnaqFOJyOo17cuzY+m9RayaOzS5/04gEZj19J+EbIA
+Jh1uUnWYKtc+pAUKzvTtCMYygwHFq/5IlQ7Ns4O9j/wKaKnMNbC7PL90QUpgjZtW
+fyO5v1beEjAHigt00GUqOEhiVIEN9spFGqOf7sY0MOrluqC6fBnaKC4zKkEYLrib
+4X1ncCMffZ3pB1HoEp+RLq9NgF/PjWNLfVDr3gkCAwEAAaOCAVwwggFYMB0GA1Ud
+DgQWBBQldL0J5/KLcVa6ixbx//cNq2oo3jCB3wYDVR0jBIHXMIHUgBRwWfK4vV/U
+to+eNwpNbSELvacj3aGBpaSBojCBnzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUG
 CgmSJomT8ixkARkWB0VYQU1QTEUxLDAqBgNVBAsMI09sZCBVbnRydXN0ZWQgQ2Vy
 dGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYDVQQDDBlvbmNlLndhcy5hLmNhLmV4YW1w
-bGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbYIUF01M8olIzj+z
-4bVXhMWW4Ss4wxkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwGQYD
+bGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbYIUAT/Zj4jAA7sB
+3BGbnpmsaV1nSwkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwGQYD
 VR0RBBIwEIEOY2FAZXhhbXBsZS5jb20wGQYDVR0SBBIwEIEOY2FAZXhhbXBsZS5j
-b20wDQYJKoZIhvcNAQELBQADggEBAHLLTXVx//mZg0X22Q1qLbn9JNMnhj/I32I9
-D/gLJ0QXI3EiPWN6NmMmxZ8zqJwXKH/wYpAyo2DORel7oZ+DZ0zOSJYFu+j7dqB/
-jt4h8Q4RNktFstuwT8YidizTTE4wmY8Dy5jH6KkaHw/nb9qFFA3eiWg8I/Py89HJ
-d5jAnkL8RfzOGcblEZhXzbq1n0Z1Q3bmUlqEwzvsPaDKsEEg5XRGjCRw6hlCu3z2
-Fm5G1zbPZQDaC+WMR+57ZmiCY/KcVtgQX8rEQNAggkOdXyhsIS9ZqjJ+AGQdynB6
-qTs3MsBWkCnzODnBLEDhZpA4OHGVtWOzLjpxUrxH2bpsz0/Oyv8=
+b20wDQYJKoZIhvcNAQELBQADggEBAAWFZEgeQJ0QG9tn8IHZXOF/aNLow4jk1nQb
+bbO/SWSsRcDvJJlqkQ+w/HZVyULUVvvAe/WAev5WHR5shGSmVsTOxSGcjfppFEXs
+Qq26zBJtDbnIidrKNLsQ+01kufKLMmarQbBnDj+u/bnKv6lvmwZ3FkV1Rra3wW4z
+xG42bhV54YfUGCLgneqE/We78XJ9lZdqliFXHixMB9sh3JON0dOkxuu6ZEk4bq5c
+BxJVDtZvZr///ow4iiFpE9ynJodxbyKLIyqVaYXW5za1cLt7oRzIaYVDtga03pqH
+620f5zDR9iH4OLM1dZyvYgURDEwipyivLlm561iiH8WwMdT3R8s=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/ca-key.pem b/tls/tests/files/ca-key.pem
index 58f001c..9a8d99d 100644
--- a/tls/tests/files/ca-key.pem
+++ b/tls/tests/files/ca-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/ca-roots-bad.pem b/tls/tests/files/ca-roots-bad.pem
index d1e9552..e86d4fe 100644
--- a/tls/tests/files/ca-roots-bad.pem
+++ b/tls/tests/files/ca-roots-bad.pem
@@ -1,31 +1,31 @@
 -----BEGIN CERTIFICATE-----
-MIIE4zCCA8ugAwIBAgIUO9+EktHEXYrjjTv4785BBzpVrccwDQYJKoZIhvcNAQEL
+MIIE4zCCA8ugAwIBAgIUNrOjl4/NmcBhJj/8dI0IY1a33EEwDQYJKoZIhvcNAQEL
 BQAwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNh
 LmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbTAgFw0y
-MTA2MjMyMDEyNDlaGA8yMDUxMDYxNjIwMTI0OVowgYYxEzARBgoJkiaJk/IsZAEZ
+MTA2MjMyMDE2MTVaGA8yMDUxMDYxNjIwMTYxNVowgYYxEzARBgoJkiaJk/IsZAEZ
 FgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZp
 Y2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZI
 hvcNAQkBFg5jYUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALVPwMAwe1XziYvKgnmFXlJSdPs10HHdSbNWmkOXdlp+Ev+ycWscf9U9
-TvKOzP+IFBv7ejZqrlaZiCdijIW6tM3en96tRkpnIXIGmZYhJdkBOH7XD0iaZopK
-nrlZcMhe9RQsZlm6Nbbe0lHljNufKIFf3RISBlfWFpPIjxlsSVE5U3sqyzZVk3B2
-cq0olHINMCXjcCl4Qo9xhmQ529MFy0kiAfX9Ftd9STxpGOvU65AM5qVT9fVrcGVr
-QmqlwOh0t1TV2dqtbCRg5n76zrpO75lBpmSF/nrMfyS2srs7U99YoZVgXDtlfVsl
-ScrNNdcq+qHkwbc7q70VLENZsi8eE+cCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQF
-omBZpMKdE9Wi5wE0yOGG1ixIsTCBxgYDVR0jBIG+MIG7gBQFomBZpMKdE9Wi5wE0
-yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
+AQoCggEBAMDI1oGcdnQkf3rb6tSABVeqsuZzVpoA7NmcbGWZPOC5x7XTdBeSeU/Q
++Fl6B048CwVlIxXgL3z44CFcDee5Q3oIk3AiQenl4VIofbm8i43wXaPe9cf4m3lF
+88RQZsF6e8oTnuLnaqFOJyOo17cuzY+m9RayaOzS5/04gEZj19J+EbIAJh1uUnWY
+Ktc+pAUKzvTtCMYygwHFq/5IlQ7Ns4O9j/wKaKnMNbC7PL90QUpgjZtWfyO5v1be
+EjAHigt00GUqOEhiVIEN9spFGqOf7sY0MOrluqC6fBnaKC4zKkEYLrib4X1ncCMf
+fZ3pB1HoEp+RLq9NgF/PjWNLfVDr3gkCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQl
+dL0J5/KLcVa6ixbx//cNq2oo3jCBxgYDVR0jBIG+MIG7gBQldL0J5/KLcVa6ixbx
+//cNq2oo3qGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
 8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0eTEX
 MBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1w
-bGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAPBgNVHRMBAf8EBTADAQH/MA4G
+bGUuY29tghQ2s6OXj82ZwGEmP/x0jQhjVrfcQTAPBgNVHRMBAf8EBTADAQH/MA4G
 A1UdDwEB/wQEAwIBBjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIE
-EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
-ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
-2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
-Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
-EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
-uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
-mSwrYe5j/A==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEABtspW/RyKdcg
+TB53tLjtbNujTkarwjp+/EKJaHOMs1R6mFBY8sqTb+yib8ddwlSO9ySKbKmdzOx6
+pO/+bSi15Ruq906KyCPN4eWP42EMBHEBr4ls6QXgcWTf64lRT443SxmZZDBw+Nqr
+dtp5a/WywnCN6qY57qeSUkV/q3lU4BclFt7IavtO8v8rR0mpAC+TnKt7hNw0qhfk
+QUCy2LF0CAnZyX/8it/2VOS6SqtUgY48uWRibiOtZLs4XGCCRYBU+mXQEaOGMdnM
+jeVcrbmC0K0bl/Vms1bPOgYTwiw3FO5K9vFFAGB5Vx8H0GlCBHzUEprcQjckDRCs
+ixUo8KqSNQ==
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
diff --git a/tls/tests/files/ca-roots.pem b/tls/tests/files/ca-roots.pem
index b0b3b20..d905311 100644
--- a/tls/tests/files/ca-roots.pem
+++ b/tls/tests/files/ca-roots.pem
@@ -1,33 +1,33 @@
 These are some CA certificates
 
 -----BEGIN CERTIFICATE-----
-MIIE4zCCA8ugAwIBAgIUO9+EktHEXYrjjTv4785BBzpVrccwDQYJKoZIhvcNAQEL
+MIIE4zCCA8ugAwIBAgIUNrOjl4/NmcBhJj/8dI0IY1a33EEwDQYJKoZIhvcNAQEL
 BQAwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNh
 LmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbTAgFw0y
-MTA2MjMyMDEyNDlaGA8yMDUxMDYxNjIwMTI0OVowgYYxEzARBgoJkiaJk/IsZAEZ
+MTA2MjMyMDE2MTVaGA8yMDUxMDYxNjIwMTYxNVowgYYxEzARBgoJkiaJk/IsZAEZ
 FgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZp
 Y2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZI
 hvcNAQkBFg5jYUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALVPwMAwe1XziYvKgnmFXlJSdPs10HHdSbNWmkOXdlp+Ev+ycWscf9U9
-TvKOzP+IFBv7ejZqrlaZiCdijIW6tM3en96tRkpnIXIGmZYhJdkBOH7XD0iaZopK
-nrlZcMhe9RQsZlm6Nbbe0lHljNufKIFf3RISBlfWFpPIjxlsSVE5U3sqyzZVk3B2
-cq0olHINMCXjcCl4Qo9xhmQ529MFy0kiAfX9Ftd9STxpGOvU65AM5qVT9fVrcGVr
-QmqlwOh0t1TV2dqtbCRg5n76zrpO75lBpmSF/nrMfyS2srs7U99YoZVgXDtlfVsl
-ScrNNdcq+qHkwbc7q70VLENZsi8eE+cCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQF
-omBZpMKdE9Wi5wE0yOGG1ixIsTCBxgYDVR0jBIG+MIG7gBQFomBZpMKdE9Wi5wE0
-yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
+AQoCggEBAMDI1oGcdnQkf3rb6tSABVeqsuZzVpoA7NmcbGWZPOC5x7XTdBeSeU/Q
++Fl6B048CwVlIxXgL3z44CFcDee5Q3oIk3AiQenl4VIofbm8i43wXaPe9cf4m3lF
+88RQZsF6e8oTnuLnaqFOJyOo17cuzY+m9RayaOzS5/04gEZj19J+EbIAJh1uUnWY
+Ktc+pAUKzvTtCMYygwHFq/5IlQ7Ns4O9j/wKaKnMNbC7PL90QUpgjZtWfyO5v1be
+EjAHigt00GUqOEhiVIEN9spFGqOf7sY0MOrluqC6fBnaKC4zKkEYLrib4X1ncCMf
+fZ3pB1HoEp+RLq9NgF/PjWNLfVDr3gkCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQl
+dL0J5/KLcVa6ixbx//cNq2oo3jCBxgYDVR0jBIG+MIG7gBQldL0J5/KLcVa6ixbx
+//cNq2oo3qGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
 8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0eTEX
 MBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1w
-bGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAPBgNVHRMBAf8EBTADAQH/MA4G
+bGUuY29tghQ2s6OXj82ZwGEmP/x0jQhjVrfcQTAPBgNVHRMBAf8EBTADAQH/MA4G
 A1UdDwEB/wQEAwIBBjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIE
-EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
-ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
-2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
-Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
-EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
-uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
-mSwrYe5j/A==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEABtspW/RyKdcg
+TB53tLjtbNujTkarwjp+/EKJaHOMs1R6mFBY8sqTb+yib8ddwlSO9ySKbKmdzOx6
+pO/+bSi15Ruq906KyCPN4eWP42EMBHEBr4ls6QXgcWTf64lRT443SxmZZDBw+Nqr
+dtp5a/WywnCN6qY57qeSUkV/q3lU4BclFt7IavtO8v8rR0mpAC+TnKt7hNw0qhfk
+QUCy2LF0CAnZyX/8it/2VOS6SqtUgY48uWRibiOtZLs4XGCCRYBU+mXQEaOGMdnM
+jeVcrbmC0K0bl/Vms1bPOgYTwiw3FO5K9vFFAGB5Vx8H0GlCBHzUEprcQjckDRCs
+ixUo8KqSNQ==
 -----END CERTIFICATE-----
 
 GLib shouldn't care about this comment
diff --git a/tls/tests/files/ca.pem b/tls/tests/files/ca.pem
index 5ddfd71..e22a68c 100644
--- a/tls/tests/files/ca.pem
+++ b/tls/tests/files/ca.pem
@@ -1,29 +1,29 @@
 -----BEGIN CERTIFICATE-----
-MIIE4zCCA8ugAwIBAgIUO9+EktHEXYrjjTv4785BBzpVrccwDQYJKoZIhvcNAQEL
+MIIE4zCCA8ugAwIBAgIUNrOjl4/NmcBhJj/8dI0IY1a33EEwDQYJKoZIhvcNAQEL
 BQAwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNh
 LmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbTAgFw0y
-MTA2MjMyMDEyNDlaGA8yMDUxMDYxNjIwMTI0OVowgYYxEzARBgoJkiaJk/IsZAEZ
+MTA2MjMyMDE2MTVaGA8yMDUxMDYxNjIwMTYxNVowgYYxEzARBgoJkiaJk/IsZAEZ
 FgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZp
 Y2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZI
 hvcNAQkBFg5jYUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALVPwMAwe1XziYvKgnmFXlJSdPs10HHdSbNWmkOXdlp+Ev+ycWscf9U9
-TvKOzP+IFBv7ejZqrlaZiCdijIW6tM3en96tRkpnIXIGmZYhJdkBOH7XD0iaZopK
-nrlZcMhe9RQsZlm6Nbbe0lHljNufKIFf3RISBlfWFpPIjxlsSVE5U3sqyzZVk3B2
-cq0olHINMCXjcCl4Qo9xhmQ529MFy0kiAfX9Ftd9STxpGOvU65AM5qVT9fVrcGVr
-QmqlwOh0t1TV2dqtbCRg5n76zrpO75lBpmSF/nrMfyS2srs7U99YoZVgXDtlfVsl
-ScrNNdcq+qHkwbc7q70VLENZsi8eE+cCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQF
-omBZpMKdE9Wi5wE0yOGG1ixIsTCBxgYDVR0jBIG+MIG7gBQFomBZpMKdE9Wi5wE0
-yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
+AQoCggEBAMDI1oGcdnQkf3rb6tSABVeqsuZzVpoA7NmcbGWZPOC5x7XTdBeSeU/Q
++Fl6B048CwVlIxXgL3z44CFcDee5Q3oIk3AiQenl4VIofbm8i43wXaPe9cf4m3lF
+88RQZsF6e8oTnuLnaqFOJyOo17cuzY+m9RayaOzS5/04gEZj19J+EbIAJh1uUnWY
+Ktc+pAUKzvTtCMYygwHFq/5IlQ7Ns4O9j/wKaKnMNbC7PL90QUpgjZtWfyO5v1be
+EjAHigt00GUqOEhiVIEN9spFGqOf7sY0MOrluqC6fBnaKC4zKkEYLrib4X1ncCMf
+fZ3pB1HoEp+RLq9NgF/PjWNLfVDr3gkCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQl
+dL0J5/KLcVa6ixbx//cNq2oo3jCBxgYDVR0jBIG+MIG7gBQldL0J5/KLcVa6ixbx
+//cNq2oo3qGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
 8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0eTEX
 MBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1w
-bGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAPBgNVHRMBAf8EBTADAQH/MA4G
+bGUuY29tghQ2s6OXj82ZwGEmP/x0jQhjVrfcQTAPBgNVHRMBAf8EBTADAQH/MA4G
 A1UdDwEB/wQEAwIBBjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIE
-EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
-ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
-2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
-Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
-EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
-uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
-mSwrYe5j/A==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEABtspW/RyKdcg
+TB53tLjtbNujTkarwjp+/EKJaHOMs1R6mFBY8sqTb+yib8ddwlSO9ySKbKmdzOx6
+pO/+bSi15Ruq906KyCPN4eWP42EMBHEBr4ls6QXgcWTf64lRT443SxmZZDBw+Nqr
+dtp5a/WywnCN6qY57qeSUkV/q3lU4BclFt7IavtO8v8rR0mpAC+TnKt7hNw0qhfk
+QUCy2LF0CAnZyX/8it/2VOS6SqtUgY48uWRibiOtZLs4XGCCRYBU+mXQEaOGMdnM
+jeVcrbmC0K0bl/Vms1bPOgYTwiw3FO5K9vFFAGB5Vx8H0GlCBHzUEprcQjckDRCs
+ixUo8KqSNQ==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/chain.pem b/tls/tests/files/chain.pem
index 32ba346..b22a024 100644
--- a/tls/tests/files/chain.pem
+++ b/tls/tests/files/chain.pem
@@ -3,78 +3,78 @@ MIIDuzCCAqOgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBrTETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxKzApBgNVBAsMIkludGVy
 bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxJDAiBgNVBAMMG2ludGVybWVk
 aWF0ZS1jYS5leGFtcGxlLmNvbTEqMCgGCSqGSIb3DQEJARYbaW50ZXJtZWRpYXRl
-LWNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYxNzIwMTI1MFow
+LWNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNloXDTQ2MDYxNzIwMTYxNlow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBANZscJj8sc8XXM1BcVTs0E1SfQvPWptsWv66Mf7F6+ZAYrsA
-AyEi0NKsY7p0pmMSpUukbit883dIv/A6lQ4mWjHtCrwGRE3bEoRv94M4UW/U3t/m
-eOLK1b3NGq1bFhs6qOi0zyRWf2C2yFS4EPyyuKGbJ17gim8d/z+kMyYrflP5mBIb
-r2r1DAWBjzayxItTxqPNdpiwSTor2yvGtrDbbdX2WbZ7EqXoGCzsBwsqe46Sf5b+
-lLDcChpsuTBQABlAiwPJUJKlTcgugh1jMkq1z9RngOKGmcnMcokEThLxr2W+UNgr
-VVFMonjLg6OZimepQsJcd/Cp4zcg/z7VxKV/KDUCAwEAAaNHMEUwCQYDVR0TBAIw
+ggEPADCCAQoCggEBAON5fzcX7h1+XmmMFjpbUiJdqIXworEf6ToQru0zxoKxfVzj
+mo6O02jSkIduKZgycUgT5KDHlQx3OrKd2KnFe47NqIsSlzapQto9+VbbUFXFv31a
++qZlQr1AO5z8UtoPBCXamRoraV0PzlilGp9/TETVgUya2Gsz0C+1F8iJAaha7DEg
+FSnapuRvEstd6iOPh8q2gdAigoGryENr61YL5ke13HU9hU3vwdsUnt7ZuNlKFBjS
+1NneXYtkQpeDgrV0ee3yauS9p0PWKUuN+ExWlUsgCG92mDZ0HqBOEamfu+akxZV6
+/zKGZrd6V4HgeFfBm5LfxtaogVqYsQG5KB1RDmsCAwEAAaNHMEUwCQYDVR0TBAIw
 ADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEWghJzZXJ2ZXIu
-ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEnEtyKxpVbVL+IPyVv6TdYZ
-hmrQnbhI56Qdj7sONFuvgGMs9NjB86+BrBxKZHAbZaDfy6YS/MnIaS56WKJ63aGN
-pNtSlblKpKS8B2+tCDkKaoN2QxZjiE+FkE4EYE1J5zkUFjcfHGHP2SH4GmhJXncF
-S5A9wbtBz7VkKANBaMIzutmmeUSae2yPEUOPW1DFB/6gYF5/CFeKJVmEASg6WsjK
-lMZanFRLk/cmuOJTbmLZjK5gis4WNp16kNYCIf9/1J/TIYnFwbTyZtIn5/9NDqLd
-Ox/d1J2la61f9ZidzmJ+bXibibsvxJw2oTgRSFUbIGF51l4vmsKdhO8Rrn2Lrp4=
+ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAIX8YaD7oV+ULhX4yrXRjZwz
+Rn1IiktJVxdCo3s8wx3LVHtyywWud4N5H0FtAbM3LMBWp9A4k+NUvVTVdPgfLkzS
+jYRn6hHBafSbp0tevXFBer1QH1m1K72B7RDUfP7L8tGz94zY6j/9adSj9pygr4qC
+V5BO/6Qh7gG1UTaAXsFWHntY0UWAc92r8Th3MhpKwOFeNGwNYb/N+BlgtfvMKRgT
+/v8FYyIWqB/DNymhyVQg3GgeDEeDWxX4qgeZoNSZu9fVHLUfPh143njBqd1BG0AE
+Sinzts1+adYA2qFua6ZaWizf6UlJjDdhk89sCUhlsRjJbTMfaLnwT60aoFSESNM=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIFAjCCA+qgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
-NzIwMTI1MFowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNloXDTQ2MDYx
+NzIwMTYxNlowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
 FgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUgQXV0
 aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20xKjAo
 BgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEntLBoR5JY2+Fp6Wil2S9tyrRbw5gB
-6wm1fRGS0w9dm7DQqV8CwliiUjBhubK8k+RZj/WSMuDDPRgDsTrXt//3ppQQ+q12
-5B2gB/OzboKFAijaW/g7kmE7tnCaKnoOuSzfdBIE70zGTkGOsJ5urop5LPDUnyQJ
-na5s6vSnPFdmUgJk9OPFpvdXvjbs6ZySNWg1xt+lPMRXj9oVWFl0016sY+P6d8nj
-mXbF9782+nA0X1dHPFpnCWFPlmNJXCh6x06bUjoLuXpHFX4ufOg4j4yjnpuhRWy8
-iJA+3YV2jTg8G4MZs6OIta52mYxAWuVMAJ/CseM2A9oSe3KSojpiuz0CAwEAAaOC
-AVAwggFMMB0GA1UdDgQWBBR349zYU74MQUI4CP5iOJSe+GRu+DCBxgYDVR0jBIG+
-MIG7gBQFomBZpMKdE9Wi5wE0yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixk
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALY5OFxJqyqgUogBiy2MqYFv3Z4vy8pU
+syAKqCTdb6gJfbHxt3mVh4mLvXV+IUxAqDj2v+0zoEPDXepU7/+MZ+I/ETpp2U2W
+fJDZBp3poTMoaunia7b5+yVsVEZaIh29WY17yeNvUbY8daR7eCDkB5KT3iQX0fGo
+ilZISyKJHciDtRpo1xJJ+MoZnkRZW8NfPyWQ2/Nv1iPMHBG35CizRStdVOZIVGP5
+zcqqZSorcZG1k6k7jxoY0pd/MFqr69F5+oay+QrPRMe9U+5GK9OtyT/2FphzC9Kx
+wWXdg0XXewaoNqoDPqcWBN3PghR/uVBNG/FG4QqG/FaFvl6igZIB42kCAwEAAaOC
+AVAwggFMMB0GA1UdDgQWBBQXwmXb5SAK/5utoWBPlo77W+Av5DCBxgYDVR0jBIG+
+MIG7gBQldL0J5/KLcVa6ixbx//cNq2oo3qGBjKSBiTCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAP
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ2s6OXj82ZwGEmP/x0jQhjVrfcQTAP
 BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAmBgNVHREEHzAdgRtpbnRl
 cm1lZGlhdGUtY2FAZXhhbXBsZS5jb20wGQYDVR0SBBIwEIEOY2FAZXhhbXBsZS5j
-b20wDQYJKoZIhvcNAQELBQADggEBAHOSlg1N2O7TeLjOwLMd0oSi7+WW+ptgYERT
-JVENeNNUpG/7X7AFR8Ou5GbnpaoE/66O7QLsLAfDTCWpbxN8u7p2qbGuqKyCbaX6
-9f9NTuIdvPkVDUkPA8Mn4Uu+UNuntQYM/OQSaZPID0wcB8yW62a5AB5/6tIZ+8uQ
-U1gtucEMIwLyicpQuJMZd5HtfJOnNkEBLY+uZfs9BSrjfEekjg8l2EKapxa+EcYT
-EA2jxmxz8AbJcrFD4vnGJ2jypvvnllutwdHJaG4n24SFFV2TneI5IOIA3exAOhHR
-AzHbjaSGYoRJHh9UozgBjzAhwwZLexJ3SQOurSGZB8RPBK89Ysk=
+b20wDQYJKoZIhvcNAQELBQADggEBAF6HrnyG1z3U5XLiX8u9zzrX81mcSyrHWotm
+vaAEyi0D3EpyuXcxLEMmsriJROshPIb7Xg8jvf/heX96rgXOQ9AyTR0vGKiXeiax
+F8tpsFXRhKISlHFj6ejbUezx0Q5eXynfcqWob/mtMO/KRfueBjlvCcrgkOJRddY8
+827NOO4ileYp270GgLbEE78eUzf/XhqCyV+krrlz/kvJCAbDBP/ugjxFbZGtY/ti
+7zOpSV7B/zaUtpyVbVHClBMC7+XpqGYgwL0QPhoaSOOPv4NMQrpQTvciZM4UU155
+/BN62aYhtIdGtO7dJzoTrtsVssyvPN007cdO3muHL0uLe7DdkVA=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIE4zCCA8ugAwIBAgIUO9+EktHEXYrjjTv4785BBzpVrccwDQYJKoZIhvcNAQEL
+MIIE4zCCA8ugAwIBAgIUNrOjl4/NmcBhJj/8dI0IY1a33EEwDQYJKoZIhvcNAQEL
 BQAwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNh
 LmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbTAgFw0y
-MTA2MjMyMDEyNDlaGA8yMDUxMDYxNjIwMTI0OVowgYYxEzARBgoJkiaJk/IsZAEZ
+MTA2MjMyMDE2MTVaGA8yMDUxMDYxNjIwMTYxNVowgYYxEzARBgoJkiaJk/IsZAEZ
 FgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZp
 Y2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZI
 hvcNAQkBFg5jYUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALVPwMAwe1XziYvKgnmFXlJSdPs10HHdSbNWmkOXdlp+Ev+ycWscf9U9
-TvKOzP+IFBv7ejZqrlaZiCdijIW6tM3en96tRkpnIXIGmZYhJdkBOH7XD0iaZopK
-nrlZcMhe9RQsZlm6Nbbe0lHljNufKIFf3RISBlfWFpPIjxlsSVE5U3sqyzZVk3B2
-cq0olHINMCXjcCl4Qo9xhmQ529MFy0kiAfX9Ftd9STxpGOvU65AM5qVT9fVrcGVr
-QmqlwOh0t1TV2dqtbCRg5n76zrpO75lBpmSF/nrMfyS2srs7U99YoZVgXDtlfVsl
-ScrNNdcq+qHkwbc7q70VLENZsi8eE+cCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQF
-omBZpMKdE9Wi5wE0yOGG1ixIsTCBxgYDVR0jBIG+MIG7gBQFomBZpMKdE9Wi5wE0
-yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
+AQoCggEBAMDI1oGcdnQkf3rb6tSABVeqsuZzVpoA7NmcbGWZPOC5x7XTdBeSeU/Q
++Fl6B048CwVlIxXgL3z44CFcDee5Q3oIk3AiQenl4VIofbm8i43wXaPe9cf4m3lF
+88RQZsF6e8oTnuLnaqFOJyOo17cuzY+m9RayaOzS5/04gEZj19J+EbIAJh1uUnWY
+Ktc+pAUKzvTtCMYygwHFq/5IlQ7Ns4O9j/wKaKnMNbC7PL90QUpgjZtWfyO5v1be
+EjAHigt00GUqOEhiVIEN9spFGqOf7sY0MOrluqC6fBnaKC4zKkEYLrib4X1ncCMf
+fZ3pB1HoEp+RLq9NgF/PjWNLfVDr3gkCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBQl
+dL0J5/KLcVa6ixbx//cNq2oo3jCBxgYDVR0jBIG+MIG7gBQldL0J5/KLcVa6ixbx
+//cNq2oo3qGBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
 8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0eTEX
 MBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1w
-bGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAPBgNVHRMBAf8EBTADAQH/MA4G
+bGUuY29tghQ2s6OXj82ZwGEmP/x0jQhjVrfcQTAPBgNVHRMBAf8EBTADAQH/MA4G
 A1UdDwEB/wQEAwIBBjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIE
-EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
-ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
-2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
-Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
-EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
-uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
-mSwrYe5j/A==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEABtspW/RyKdcg
+TB53tLjtbNujTkarwjp+/EKJaHOMs1R6mFBY8sqTb+yib8ddwlSO9ySKbKmdzOx6
+pO/+bSi15Ruq906KyCPN4eWP42EMBHEBr4ls6QXgcWTf64lRT443SxmZZDBw+Nqr
+dtp5a/WywnCN6qY57qeSUkV/q3lU4BclFt7IavtO8v8rR0mpAC+TnKt7hNw0qhfk
+QUCy2LF0CAnZyX/8it/2VOS6SqtUgY48uWRibiOtZLs4XGCCRYBU+mXQEaOGMdnM
+jeVcrbmC0K0bl/Vms1bPOgYTwiw3FO5K9vFFAGB5Vx8H0GlCBHzUEprcQjckDRCs
+ixUo8KqSNQ==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client-and-key.pem b/tls/tests/files/client-and-key.pem
index f228a13..347ef15 100644
--- a/tls/tests/files/client-and-key.pem
+++ b/tls/tests/files/client-and-key.pem
@@ -2,47 +2,47 @@
 MIIDXTCCAkUCAQMwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
-NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDE2MTVaFw00NjA2MTcyMDE2
+MTVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbOVOqBO6OP
-sh6nTA6YLiua+asERNQCHfYg5dqQG+qZiySnf6eY3ds2YiQO81nKreBc8v3Hgm7z
-oJaMG42eYp5wsVKVoeeaByqUXPSFVaWumFgijiLJxAIPdS7nzNguTWHZsM1HurSM
-T1qXxVHkhEamzBxinO3OdFMryUk+5cqDnN5tmaiA7YOFxrdBwspvEIj/UiCcK2xt
-n/WntUVx06peha0evpoTNg5znvPvg0ruxQc1SpTiGd2rj5riGIlXh0J8gXSLkD6r
-9sjRT7UxyVzCBlZ/FoI7ljKuODIChwvoILRFdf88IFYin2Is6g0UhaFi0soa3rMy
-u4aPuxb5tfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOoNXdA5By9bUPN7WfsGH
-gegDo1OCaA2PqidYU93JbF0X5ZWmCr4N6AVxpLUbenrGS43qrgkPMlCgt0J/OIgQ
-jFtjhgBsZBaOxLAxVzOJl86TKX+ezuL8rY0lsMza0AaEFR0/WE3KhA8KvllJioBE
-XeyXl2Wdxj9pA94mNxazYSq5uFslbhZQgQZ76eBVGyrc7J4TdhOjRr4EEDN4W4E3
-uS+eZqZslEvC77+8cnXenINzwAXwX+HhJYZ8innUzwgPGVwhhvCSgSBG3w4OLRlP
-7ShnYq6B/olm+IBBjKO8A0VISu3iuFXuAAJBABMdU0D2xGURFUJnjEIxkDLOzdC2
-ZQ==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfxzQKwthl+
+nS2FR6C07d/WHpMBgM0INwlfP1X6lwrIWRDfSqLikgOfJaVHXiSOqljl95VZSh7f
+LyStULZJh37uUmdmf/RBShjMJ4Gby/TmaK/gmRTrAo1YjW9ZDH7FJa//Ea8CPURg
+4uQt3bW6nf/U1kDPIhGSQHM+6Yi+vQS9F9TOeduJcL9v+aqlRJ/rFDLaS2TmvhkK
+CDoXTzTBlVNed4wv68EnHS1BRmEDJ2PNWhoTXt0vzBxkaiaa4e7ZD1SJqGgE3dIV
+ktIRTvOg8WAr9Y7gfQzPOlb5jMIVuVzv4zuhew2LUNpv0MUR0qLpj6gk4rv7vqdf
+irx8whj7xz0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALjdAUd1Kz9aZbcBJhcu+
+M/WmfAenaHObivjNWNtezYXmk0kBXbfnf2bvrb5FT1mPF2bQ0P/yC2DiTCRguDKE
+aAPV95yVvk0SkMkXSdKIPoc3mv9v+0mRoQAtcYoRenyj6hZgPNub1DjxQJW0LLcO
+tSqe7Y4UYJNa7Q5zsWfz0oWeQdE2ctEWOKCUJhIzhSsZy+zvDDH9t15a5cVBE6+e
+PhTboNFByl+URVPjgdP/FlhE2IWtrZ/t8ZwSZ7KPTcnzh3gMWRZDXms8g+IG9ubF
+u7KPjRwL1yBtdqgIKhv/IBTbDyWC/U4VglLAQ93cHLIoOPXfptNtNnQLVmsaZzeL
+MQ==
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+MIIEowIBAAKCAQEAx/HNArC2GX6dLYVHoLTt39YekwGAzQg3CV8/VfqXCshZEN9K
+ouKSA58lpUdeJI6qWOX3lVlKHt8vJK1QtkmHfu5SZ2Z/9EFKGMwngZvL9OZor+CZ
+FOsCjViNb1kMfsUlr/8RrwI9RGDi5C3dtbqd/9TWQM8iEZJAcz7piL69BL0X1M55
+24lwv2/5qqVEn+sUMtpLZOa+GQoIOhdPNMGVU153jC/rwScdLUFGYQMnY81aGhNe
+3S/MHGRqJprh7tkPVImoaATd0hWS0hFO86DxYCv1juB9DM86VvmMwhW5XO/jO6F7
+DYtQ2m/QxRHSoumPqCTiu/u+p1+KvHzCGPvHPQIDAQABAoIBAQCtWBM3C+E0RTMb
+rfsldvbsIoSrSphSKZcdhvgwIGsmq/+bwxrAENIqVaWbnz4dT5qcK/P0BU9faHtE
+vwXEpAbWouPKRXEVYC1PRl/R3DJ9Be0o3f2Zxw2VYXptWLSei2lbJjY8liJrz9ul
+m6Yl0b79d5aw5WNR/Ivn3lk1drgFDCqmVav7JabpswpCeQgJMytBOyBqdwwwrDYb
+B1ugxRUcqtNa1tNli+ru44dW06qMrOwuy70aBWNOa/OIEP3FHwxL6WM3kubxY+Fk
+MH4mP0P0Z9019O12b4Nt/YUqw+szWQAG2joVT5BmZAgaJu0/eeW9rqvljG3/1e3u
+TjF3C7WBAoGBAOvImVszYoSIh/UWri6ieMz7kBWWt1Q/R8d5AKFDqJoTBDSQ7eU2
+mE4bFSl5RmniPsaIlYWZ7dSKqqsDKZStBsfzRdM4OOMg6eHdgv5VjNKrMWAXzB0G
+b37ZumybU6t7kpa7A4zA+AyUReUhVMHE+FowFaORUm5gmHCY1LixduDtAoGBANkW
+irvoedEVp7R2GuvX7V6ZKwq7y7OHFoW/ZZsZRoQGYjWejLEIMguM+/lResD7nc0y
+R4Cezz+GVrakChsePctfQcOcSE4LbGW4YSPdSTaURNaN12F15ssUtkjtCUUmRby/
+N375+txwGZ3vWN0dGMWNKXioRHZB8rMRWqGd0MWRAoGAL7lFmRkYerzrz+bMULIg
+A1Vzv3rnFo1MaQqL3xhDuxPYSQ+Ap2FaiIygxuk+IFZj4Glq4kTax6ddjgmw0+AF
+vFj4LB14HjjePhJI3lPQkh+Gee23KbTQwnstaagy0kXL0Oh/enDghCNK1mrdre7B
+WffbmWTjq2Wv1TKJ8+wvpK0CgYBCk7I6jMKHSA/lvW7mM5OdtnXH1e5UAbL7k8ZS
+eb7xkI+gCB730B6hAjzoqn9uHfy4SJo7LPk8bzO60bYzuOOUsoMVvaFDJie5ToGk
+ISJp9bDi6B9MyX7de12oIeH87g7nIvGfJIU2A78ne5cSQPEu7OryERDl/7WyCzlz
+ZVX4sQKBgBflSSvErhb8WloQ2TQ9t66LKSQDblmfkkcGuaEEmtEHSTyaW4kXfcvZ
+NRAn3X19/CJ9pFjle+V0hhUA1EujZnakrJ0AMJza4p8M/3sZglnRCVtOgNV/pKcK
++EbG84sjI8I1b/MYOR4SgXNWNtLDHx8Y1IH5PzLmWQ2Q71dMk65r
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/client-csr.pem b/tls/tests/files/client-csr.pem
index 9dc5ab3..54796dc 100644
--- a/tls/tests/files/client-csr.pem
+++ b/tls/tests/files/client-csr.pem
@@ -2,16 +2,16 @@
 MIICpzCCAY8CAQAwYjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
 ARkWB0VYQU1QTEUxDzANBgNVBAMMBkNsaWVudDEhMB8GCSqGSIb3DQEJARYSY2xp
 ZW50QGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-xs5U6oE7o4+yHqdMDpguK5r5qwRE1AId9iDl2pAb6pmLJKd/p5jd2zZiJA7zWcqt
-4Fzy/ceCbvOglowbjZ5innCxUpWh55oHKpRc9IVVpa6YWCKOIsnEAg91LufM2C5N
-YdmwzUe6tIxPWpfFUeSERqbMHGKc7c50UyvJST7lyoOc3m2ZqIDtg4XGt0HCym8Q
-iP9SIJwrbG2f9ae1RXHTql6FrR6+mhM2DnOe8++DSu7FBzVKlOIZ3auPmuIYiVeH
-QnyBdIuQPqv2yNFPtTHJXMIGVn8WgjuWMq44MgKHC+ggtEV1/zwgViKfYizqDRSF
-oWLSyhreszK7ho+7Fvm19wIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBABwJXe0m
-uKew7S9n29ZXgcbhTZ3gj4gey1CLCyIWbOQpcbx4wzc5x8GzVXTCt6zrC90bSDfn
-YjL2JUy07whBT+SR37k7P+27Jguplhg0iIJGaj7gWsgTayXLoTBRYA0oND6U3Iup
-XnpagJz5o2sQRotezMJKAhAUdEDzSkxqIZ6EQzXpVrH4gtuvQmkAJa8dlnBppeBp
-SnDfRmMZWv9GDqFlgp0O3uG1Ff32zHFMpNI1GCdTer4xTchBAUbeQZKY43qL9SpJ
-dAaOHtvpVk1vcq50uh6bXSIsVaICjD11U4tT2lxONPvC0Po0Ie9UZWG3wbOyEMR2
-hVE3DbaITb6L3Ug=
+x/HNArC2GX6dLYVHoLTt39YekwGAzQg3CV8/VfqXCshZEN9KouKSA58lpUdeJI6q
+WOX3lVlKHt8vJK1QtkmHfu5SZ2Z/9EFKGMwngZvL9OZor+CZFOsCjViNb1kMfsUl
+r/8RrwI9RGDi5C3dtbqd/9TWQM8iEZJAcz7piL69BL0X1M5524lwv2/5qqVEn+sU
+MtpLZOa+GQoIOhdPNMGVU153jC/rwScdLUFGYQMnY81aGhNe3S/MHGRqJprh7tkP
+VImoaATd0hWS0hFO86DxYCv1juB9DM86VvmMwhW5XO/jO6F7DYtQ2m/QxRHSoumP
+qCTiu/u+p1+KvHzCGPvHPQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAD6mEs60
+jns1fZqZLJHPQEq6tmLYdosbpqyLgC1Kx4BsUsz5g1xfiYBUWhxjXdGbbCBxb6Lb
+c+/mIszSwUI9uDIlKLfRZXdbZZBM7CVOeGuLq7Rp4nI4R1lLkkuxOQLCchlI/onW
+ZoYRFNRy1+as1FYJZOJAVDCdZX0q+YDOxh6MeKdg1nIMDW5bMHCCl/vXGS/SYfnT
+48QI2rpEJk8G1PkrDf3Hg1Ibf6VNALYZ70j3/P4j2zN/mufleZH0EHGodmxf0ldx
+G/jvfhK7nVeIQf7PHBtwIgdSfYaIj9kwGe1Bg1gdYmXDP7zVeTOw1mgPYRkDCGdS
+rpyHn9vaVt2YlLE=
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/client-future.pem b/tls/tests/files/client-future.pem
index c284324..72c055d 100644
--- a/tls/tests/files/client-future.pem
+++ b/tls/tests/files/client-future.pem
@@ -7,17 +7,17 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAiGA8yMDYwMDcxNzIzMDAwMFoYDzIwNjEwNzE3
 MjMwMDAwWjBiMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEPMA0GA1UEAwwGQ2xpZW50MSEwHwYJKoZIhvcNAQkBFhJjbGllbnRA
-ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzlTq
-gTujj7Iep0wOmC4rmvmrBETUAh32IOXakBvqmYskp3+nmN3bNmIkDvNZyq3gXPL9
-x4Ju86CWjBuNnmKecLFSlaHnmgcqlFz0hVWlrphYIo4iycQCD3Uu58zYLk1h2bDN
-R7q0jE9al8VR5IRGpswcYpztznRTK8lJPuXKg5zebZmogO2Dhca3QcLKbxCI/1Ig
-nCtsbZ/1p7VFcdOqXoWtHr6aEzYOc57z74NK7sUHNUqU4hndq4+a4hiJV4dCfIF0
-i5A+q/bI0U+1MclcwgZWfxaCO5YyrjgyAocL6CC0RXX/PCBWIp9iLOoNFIWhYtLK
-Gt6zMruGj7sW+bX3AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAB/FyybXWAbFyjIJ
-1CDEE3GBMq87UsBP2BkW5QgDLl1FT6aRweH5/YilPiKc1HKRrAV0EcX+mcni14qg
-vsFB9SRIWfCJQGwg3Of+u2kmj467O+ql5oqrRwu3Pjq4TG/itzIUMVxS9xX4yB3r
-m/yLP2ggAtLbOnjOiP2pg9ct3oBqhjW7Xx9IMk0R+iHF0AKpq9AeY5XGkj1/4gS6
-kdlZbFsvoZ2+sqBB6HoENhpfydvItuilaFGWHfaH8Goys6py7KwRu4MwhKBK5R5L
-12155N7Nd0Ue4bCxsX/bEc3U+y0Z+Y3SWdpRPN/QTWdB+yfLF5O9dSpHvbkKAR14
-UyxgkPk=
+ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDH8c0C
+sLYZfp0thUegtO3f1h6TAYDNCDcJXz9V+pcKyFkQ30qi4pIDnyWlR14kjqpY5feV
+WUoe3y8krVC2SYd+7lJnZn/0QUoYzCeBm8v05miv4JkU6wKNWI1vWQx+xSWv/xGv
+Aj1EYOLkLd21up3/1NZAzyIRkkBzPumIvr0EvRfUznnbiXC/b/mqpUSf6xQy2ktk
+5r4ZCgg6F080wZVTXneML+vBJx0tQUZhAydjzVoaE17dL8wcZGommuHu2Q9Uiaho
+BN3SFZLSEU7zoPFgK/WO4H0MzzpW+YzCFblc7+M7oXsNi1Dab9DFEdKi6Y+oJOK7
++76nX4q8fMIY+8c9AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAHi091Bd7K41SLdT
+0D+aFJztRwA8EOLuhIqyx6DMAoT50xMSovR9aSob2A/jA+TslmWpIz4/gJxmDLbW
+wQuRs1tRcwpq6wedJqlhYyNyQnBE6v9Yc+tM+DsulsdC3R80AuudIVi3wACiRCqI
+BTtPYzUj56YV4YqIo+CTRBhpxcB2C2GtQMHX44q5o3Od7l/sV5f/dIR7LKCKTHnT
+lvAVEKgBIuHNJljTpiqI6oK7X5F9RFGIA0/0drfrrrI9s7v9sxQZ+lXetgY6oI18
+nBI/4XlgNtf+YNtat2Oruih35F7CDvoUdTACdUptPAJFB00Yy1IUY9/xi8T13+O6
+W6Hsy1A=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client-key.pem b/tls/tests/files/client-key.pem
index 286fcfb..390abe9 100644
--- a/tls/tests/files/client-key.pem
+++ b/tls/tests/files/client-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/client-past.pem b/tls/tests/files/client-past.pem
index 91afbf3..5d00b0d 100644
--- a/tls/tests/files/client-past.pem
+++ b/tls/tests/files/client-past.pem
@@ -7,17 +7,17 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDA3MTcyMzAwMDBaFw0wMTA3MTcyMzAw
 MDBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbOVOqBO6OP
-sh6nTA6YLiua+asERNQCHfYg5dqQG+qZiySnf6eY3ds2YiQO81nKreBc8v3Hgm7z
-oJaMG42eYp5wsVKVoeeaByqUXPSFVaWumFgijiLJxAIPdS7nzNguTWHZsM1HurSM
-T1qXxVHkhEamzBxinO3OdFMryUk+5cqDnN5tmaiA7YOFxrdBwspvEIj/UiCcK2xt
-n/WntUVx06peha0evpoTNg5znvPvg0ruxQc1SpTiGd2rj5riGIlXh0J8gXSLkD6r
-9sjRT7UxyVzCBlZ/FoI7ljKuODIChwvoILRFdf88IFYin2Is6g0UhaFi0soa3rMy
-u4aPuxb5tfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD+N5QqZT/IkPsG115+45
-jJrsQpqw5QG+SbzuSKj6AzsKL+H6y6uxL6hr/QCifAC0URsjTcR5Ehs78dwVDxth
-zjTlC7l1Fz/tLwsi8W1xlp8yFmwCSsCIgjYjCQjMbI1tNmFnYTG3Ip22brm//3+b
-/acFVQs/CtWEUbjHUyYjqj55hu1ME6emdLy09afkmHa6FYDYs9UPJqyfWIbJ6S1f
-2k3cVqtGttZswtKp8tGtAS3zfBVvwhd0d16K5OH4GiG+JKClTu+hQuBhckIZdYd0
-JdE0ZV0koMuOwDVKTbZwOBZC+weC2pxjYJrO5EvsKonjb0lwtqHHD/QJY2k2j+lN
-eg==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfxzQKwthl+
+nS2FR6C07d/WHpMBgM0INwlfP1X6lwrIWRDfSqLikgOfJaVHXiSOqljl95VZSh7f
+LyStULZJh37uUmdmf/RBShjMJ4Gby/TmaK/gmRTrAo1YjW9ZDH7FJa//Ea8CPURg
+4uQt3bW6nf/U1kDPIhGSQHM+6Yi+vQS9F9TOeduJcL9v+aqlRJ/rFDLaS2TmvhkK
+CDoXTzTBlVNed4wv68EnHS1BRmEDJ2PNWhoTXt0vzBxkaiaa4e7ZD1SJqGgE3dIV
+ktIRTvOg8WAr9Y7gfQzPOlb5jMIVuVzv4zuhew2LUNpv0MUR0qLpj6gk4rv7vqdf
+irx8whj7xz0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALL01K6kftU/U7vt9Nf/G
+UsnSi8A8IupTS+dfm3Fa75sQC3AUP4Zs+UQMf0dfKvnVMyT6dVAYQRQ91Pklhp4b
+wnIV0U2a+RuhnxvsrBgYT52LD5ZjC2+MsW7Rd2LZsipLSS28Era6OD2RgOHuSgZP
+hTKNxAGBSQs+M9Oe9Z06sqBiO3sRP10r+vNkPfy5ZEl6X1HtBtzhAxFcDHm4otSE
+ypmuMhMXxQlDOAPdNlCEkYxJYtLcY2buxYz6PAIPU2+k8R1jujXBWIzzoS0MnE1l
+c1UtQwk9lY7FHv5Y7M5r62GVVJbIiqH9FlePXpEKmCBVYCh2b5rJ6x0BHxCCeyta
+6A==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client.pem b/tls/tests/files/client.pem
index bd3d86c..0979b99 100644
--- a/tls/tests/files/client.pem
+++ b/tls/tests/files/client.pem
@@ -2,20 +2,20 @@
 MIIDXTCCAkUCAQMwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
-NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDE2MTVaFw00NjA2MTcyMDE2
+MTVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbOVOqBO6OP
-sh6nTA6YLiua+asERNQCHfYg5dqQG+qZiySnf6eY3ds2YiQO81nKreBc8v3Hgm7z
-oJaMG42eYp5wsVKVoeeaByqUXPSFVaWumFgijiLJxAIPdS7nzNguTWHZsM1HurSM
-T1qXxVHkhEamzBxinO3OdFMryUk+5cqDnN5tmaiA7YOFxrdBwspvEIj/UiCcK2xt
-n/WntUVx06peha0evpoTNg5znvPvg0ruxQc1SpTiGd2rj5riGIlXh0J8gXSLkD6r
-9sjRT7UxyVzCBlZ/FoI7ljKuODIChwvoILRFdf88IFYin2Is6g0UhaFi0soa3rMy
-u4aPuxb5tfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOoNXdA5By9bUPN7WfsGH
-gegDo1OCaA2PqidYU93JbF0X5ZWmCr4N6AVxpLUbenrGS43qrgkPMlCgt0J/OIgQ
-jFtjhgBsZBaOxLAxVzOJl86TKX+ezuL8rY0lsMza0AaEFR0/WE3KhA8KvllJioBE
-XeyXl2Wdxj9pA94mNxazYSq5uFslbhZQgQZ76eBVGyrc7J4TdhOjRr4EEDN4W4E3
-uS+eZqZslEvC77+8cnXenINzwAXwX+HhJYZ8innUzwgPGVwhhvCSgSBG3w4OLRlP
-7ShnYq6B/olm+IBBjKO8A0VISu3iuFXuAAJBABMdU0D2xGURFUJnjEIxkDLOzdC2
-ZQ==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfxzQKwthl+
+nS2FR6C07d/WHpMBgM0INwlfP1X6lwrIWRDfSqLikgOfJaVHXiSOqljl95VZSh7f
+LyStULZJh37uUmdmf/RBShjMJ4Gby/TmaK/gmRTrAo1YjW9ZDH7FJa//Ea8CPURg
+4uQt3bW6nf/U1kDPIhGSQHM+6Yi+vQS9F9TOeduJcL9v+aqlRJ/rFDLaS2TmvhkK
+CDoXTzTBlVNed4wv68EnHS1BRmEDJ2PNWhoTXt0vzBxkaiaa4e7ZD1SJqGgE3dIV
+ktIRTvOg8WAr9Y7gfQzPOlb5jMIVuVzv4zuhew2LUNpv0MUR0qLpj6gk4rv7vqdf
+irx8whj7xz0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALjdAUd1Kz9aZbcBJhcu+
+M/WmfAenaHObivjNWNtezYXmk0kBXbfnf2bvrb5FT1mPF2bQ0P/yC2DiTCRguDKE
+aAPV95yVvk0SkMkXSdKIPoc3mv9v+0mRoQAtcYoRenyj6hZgPNub1DjxQJW0LLcO
+tSqe7Y4UYJNa7Q5zsWfz0oWeQdE2ctEWOKCUJhIzhSsZy+zvDDH9t15a5cVBE6+e
+PhTboNFByl+URVPjgdP/FlhE2IWtrZ/t8ZwSZ7KPTcnzh3gMWRZDXms8g+IG9ubF
+u7KPjRwL1yBtdqgIKhv/IBTbDyWC/U4VglLAQ93cHLIoOPXfptNtNnQLVmsaZzeL
+MQ==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client2-and-key.pem b/tls/tests/files/client2-and-key.pem
index 3d118f1..bccff20 100644
--- a/tls/tests/files/client2-and-key.pem
+++ b/tls/tests/files/client2-and-key.pem
@@ -2,47 +2,47 @@
 MIIDXTCCAkUCAQYwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
-NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDE2MTVaFw00NjA2MTcyMDE2
+MTVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALrPZFr+XOhQ
-Q0VjJh7TNmFmld+NJVapSsOjFWUPfxukhyND1x71ttUXcVPe6Q8Yzovpkk6CniwD
-vc2QUs8pSD+8Qt5OHdgXqmR+XQrUgokncZZeevOPSUdV0rRNsPDX0xGkRI94wSKH
-OKq/CKnUeaUTGu/Z+H8iU2f7LFjP79jwMyY6YkqAUSEkKFgxXLwI2udQL2RjojgS
-3RPdIeF1eP1vggAjGJs6uQhWG1belOMEnRHfgl0BLSsKjY3Px7iUI0meREGt0Wgm
-3yoPUBC0TsRtbnkYSEyaShrLcXBtYDlGbpofnrhctXqlut3aVnhux/HZBIzoLmr1
-s3q+kH5etZUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAZ/lKvj6BdgZKjPyLXkAp
-K8wmh+nQB161SUBeK9h62F+ZL/NmEDx6ZNjynkAPMGtnD67yZBfrKTKFWCqrRuN9
-09X+oj+/NC7ckUnILL0j3BAuTO54hynO5LwBenZo8+CGhqGKg6umw66EvNuKhZ91
-Mk/3zbgTtkUtptZSwroMnQuHrO924GI5leF9hmDlZWAW17RQWzrVuoHflPXp4Zau
-j7BAqmg112zAdQ8W2hDRKTgFKK3W1q+LYjZItewP2+Rk6xUFJ+5FNecP564Y+HZI
-pcEDVj5NISHhIGT+oBSyx09XKa3bohpRLvZ3fmCqIDOWZxY3KLhFi92rdSH/Xm9l
-aw==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJHfgdQQgDX9
+YQbrh64p1NSlS03pSmogec3aW+g/jR71e5aTJB0vlUCkbgzhrRG8ZfB2uuAv+l/o
+uUNWYV4k7Mz6b5IT23tRlbYA1CxGvF29xRsYSAfGBSo06u+jlJhMv4AhjRNo8pH/
+8DdveA2P2U6ugZk8Az88IxrJt/l5d7ae1sct3DtC4aCiiCQYCPvSTJoGB9i/BDlb
+qfEP9UCJ/oDlSl+PQ6LNS6cJO9q41aMJ2wdnazoHPxebyMMO7gsqFOsZjxgmrvRY
+o0kaEf274rrAVhJF22Kna8SYqRRUecxrpVPKlLCEqzEJblorrKdOOmR8rvfxPqXf
+oIg25IlIf+cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAH88Nh7A3/sriAgQgrUw0
+fAb6WY9Oh76TeWFOFPpOGKeUNYNRW1tPSCuAK51yiBBx1V/kwzcuGLxPG1ATWPd/
+2IkXgwqHdddWT9ZP5BZUb07xCrMZLH2R8GFWsdQgkFFQ+VKFxg4AZGJTWVgm5zPC
+EGj7tlHebQuCbEsGcGx4FihEmTf9fuI1QXpPwuAOTzNSCGEFZrDSys7CsGUEzPtZ
+3v3RHj9L+DFUdoiuPjXD2SvPH+tQOXBCEIglkFjaLo8AONgLRMYROmCNHQwAdM3g
+AJC065fTtbTMZbMVwhghHg5FFz6WHfo54/gHLkyy6FbQZN3adgVHoqKDFQpGiNF0
+1A==
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/client2-csr.pem b/tls/tests/files/client2-csr.pem
index a276281..25e181a 100644
--- a/tls/tests/files/client2-csr.pem
+++ b/tls/tests/files/client2-csr.pem
@@ -2,16 +2,16 @@
 MIICpzCCAY8CAQAwYjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
 ARkWB0VYQU1QTEUxDzANBgNVBAMMBkNsaWVudDEhMB8GCSqGSIb3DQEJARYSY2xp
 ZW50QGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-us9kWv5c6FBDRWMmHtM2YWaV340lVqlKw6MVZQ9/G6SHI0PXHvW21RdxU97pDxjO
-i+mSToKeLAO9zZBSzylIP7xC3k4d2BeqZH5dCtSCiSdxll56849JR1XStE2w8NfT
-EaREj3jBIoc4qr8IqdR5pRMa79n4fyJTZ/ssWM/v2PAzJjpiSoBRISQoWDFcvAja
-51AvZGOiOBLdE90h4XV4/W+CACMYmzq5CFYbVt6U4wSdEd+CXQEtKwqNjc/HuJQj
-SZ5EQa3RaCbfKg9QELROxG1ueRhITJpKGstxcG1gOUZumh+euFy1eqW63dpWeG7H
-8dkEjOguavWzer6Qfl61lQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAEGVMMe/
-fnydhdKs7S7QyFiOhboJvSU3QZ7f08GOwRQ7YihBk8ylgLYGjAsEqkVz9COyuNWP
-+GZby3YDbECg/7K+FRsD1i+PFjhVziqBMMHGzUrj5+ugiDBGlhbu3ewx5D/U4aCp
-wRWqN3nBTGbyYYwCHh9lUAZ92pvF8b78G2qCq9Uei1ZCY6D7r6TAKwH+adeIc8iG
-MJ1Hj32+gnQ3JLFPwGYs7o4/lWhYviEfGmmtuVNY0VYZI9XnZxSBb91qv77DJt7Z
-c89r9HLbjZyuiJjGz1iy/ppFGAOQCs6xVtstU34hvFaUz40itSGISG7po0L7c/Ls
-GXA/7J7TlHeShKA=
+kd+B1BCANf1hBuuHrinU1KVLTelKaiB5zdpb6D+NHvV7lpMkHS+VQKRuDOGtEbxl
+8Ha64C/6X+i5Q1ZhXiTszPpvkhPbe1GVtgDULEa8Xb3FGxhIB8YFKjTq76OUmEy/
+gCGNE2jykf/wN294DY/ZTq6BmTwDPzwjGsm3+Xl3tp7Wxy3cO0LhoKKIJBgI+9JM
+mgYH2L8EOVup8Q/1QIn+gOVKX49Dos1Lpwk72rjVownbB2drOgc/F5vIww7uCyoU
+6xmPGCau9FijSRoR/bviusBWEkXbYqdrxJipFFR5zGulU8qUsISrMQluWiusp046
+ZHyu9/E+pd+giDbkiUh/5wIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBACIWBoO5
+4muX0hMZMe6TpzCaWJa2+6O2E5j1VgZgQOJmYbMsu+eqa1EXXrPXq3m1nq2oGQFf
+vI8B9SnH4KKBk1yJj18qNIjQxrt3VTpIhRZPtrAZCy/L4o20qi+xvqw//cwMrR5k
+atUwo0/siYeXDyvYNsRB5kg/xevugSSwWneAOAOM3jAxKppWOKwNP2C+Q5J8wfWg
+z1eXB76maEuJK/Xnsi++75qWtsaHVPjDhyCk0XCXAXRKieY8nybtOXW42wM56ODL
+8LS3GWI877NjHahyR5Gg1FlCFkorUbDTCaWxJTVt/sXGuGccoBkPK5LJTrCaBi0b
+mwbfpxg7oMgrbk0=
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/client2-key.pem b/tls/tests/files/client2-key.pem
index 52bbfd6..69481f5 100644
--- a/tls/tests/files/client2-key.pem
+++ b/tls/tests/files/client2-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/client2.pem b/tls/tests/files/client2.pem
index 9c4295a..2c4a24a 100644
--- a/tls/tests/files/client2.pem
+++ b/tls/tests/files/client2.pem
@@ -2,20 +2,20 @@
 MIIDXTCCAkUCAQYwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
-NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDE2MTVaFw00NjA2MTcyMDE2
+MTVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALrPZFr+XOhQ
-Q0VjJh7TNmFmld+NJVapSsOjFWUPfxukhyND1x71ttUXcVPe6Q8Yzovpkk6CniwD
-vc2QUs8pSD+8Qt5OHdgXqmR+XQrUgokncZZeevOPSUdV0rRNsPDX0xGkRI94wSKH
-OKq/CKnUeaUTGu/Z+H8iU2f7LFjP79jwMyY6YkqAUSEkKFgxXLwI2udQL2RjojgS
-3RPdIeF1eP1vggAjGJs6uQhWG1belOMEnRHfgl0BLSsKjY3Px7iUI0meREGt0Wgm
-3yoPUBC0TsRtbnkYSEyaShrLcXBtYDlGbpofnrhctXqlut3aVnhux/HZBIzoLmr1
-s3q+kH5etZUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAZ/lKvj6BdgZKjPyLXkAp
-K8wmh+nQB161SUBeK9h62F+ZL/NmEDx6ZNjynkAPMGtnD67yZBfrKTKFWCqrRuN9
-09X+oj+/NC7ckUnILL0j3BAuTO54hynO5LwBenZo8+CGhqGKg6umw66EvNuKhZ91
-Mk/3zbgTtkUtptZSwroMnQuHrO924GI5leF9hmDlZWAW17RQWzrVuoHflPXp4Zau
-j7BAqmg112zAdQ8W2hDRKTgFKK3W1q+LYjZItewP2+Rk6xUFJ+5FNecP564Y+HZI
-pcEDVj5NISHhIGT+oBSyx09XKa3bohpRLvZ3fmCqIDOWZxY3KLhFi92rdSH/Xm9l
-aw==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJHfgdQQgDX9
+YQbrh64p1NSlS03pSmogec3aW+g/jR71e5aTJB0vlUCkbgzhrRG8ZfB2uuAv+l/o
+uUNWYV4k7Mz6b5IT23tRlbYA1CxGvF29xRsYSAfGBSo06u+jlJhMv4AhjRNo8pH/
+8DdveA2P2U6ugZk8Az88IxrJt/l5d7ae1sct3DtC4aCiiCQYCPvSTJoGB9i/BDlb
+qfEP9UCJ/oDlSl+PQ6LNS6cJO9q41aMJ2wdnazoHPxebyMMO7gsqFOsZjxgmrvRY
+o0kaEf274rrAVhJF22Kna8SYqRRUecxrpVPKlLCEqzEJblorrKdOOmR8rvfxPqXf
+oIg25IlIf+cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAH88Nh7A3/sriAgQgrUw0
+fAb6WY9Oh76TeWFOFPpOGKeUNYNRW1tPSCuAK51yiBBx1V/kwzcuGLxPG1ATWPd/
+2IkXgwqHdddWT9ZP5BZUb07xCrMZLH2R8GFWsdQgkFFQ+VKFxg4AZGJTWVgm5zPC
+EGj7tlHebQuCbEsGcGx4FihEmTf9fuI1QXpPwuAOTzNSCGEFZrDSys7CsGUEzPtZ
+3v3RHj9L+DFUdoiuPjXD2SvPH+tQOXBCEIglkFjaLo8AONgLRMYROmCNHQwAdM3g
+AJC065fTtbTMZbMVwhghHg5FFz6WHfo54/gHLkyy6FbQZN3adgVHoqKDFQpGiNF0
+1A==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/create-files.sh b/tls/tests/files/create-files.sh
index a24aabc..4724ace 100755
--- a/tls/tests/files/create-files.sh
+++ b/tls/tests/files/create-files.sh
@@ -76,6 +76,10 @@ openssl x509 -in server.pem -outform DER -out server.der
 msg "Converting server private key from PEM to DER"
 openssl rsa -in server-key.pem -outform DER -out server-key.der
 
+msg "Converting server private key to PKCS #8"
+openssl pkcs8 -topk8 -in server-key.pem -outform PEM -nocrypt -out server-key-pkcs8.pem
+openssl pkcs8 -topk8 -in server-key.pem -outform DER -nocrypt -out server-key-pkcs8.der
+
 #######################################################################
 ### Server (self-signed)
 #######################################################################
diff --git a/tls/tests/files/intermediate-ca-csr.pem b/tls/tests/files/intermediate-ca-csr.pem
index 6798ee7..ffb1316 100644
--- a/tls/tests/files/intermediate-ca-csr.pem
+++ b/tls/tests/files/intermediate-ca-csr.pem
@@ -3,18 +3,18 @@ MIIDRDCCAiwCAQAwga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/Is
 ZAEZFgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUg
 QXV0aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20x
 KjAoBgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEntLBoR5JY2+Fp6Wil2S9tyrRb
-w5gB6wm1fRGS0w9dm7DQqV8CwliiUjBhubK8k+RZj/WSMuDDPRgDsTrXt//3ppQQ
-+q125B2gB/OzboKFAijaW/g7kmE7tnCaKnoOuSzfdBIE70zGTkGOsJ5urop5LPDU
-nyQJna5s6vSnPFdmUgJk9OPFpvdXvjbs6ZySNWg1xt+lPMRXj9oVWFl0016sY+P6
-d8njmXbF9782+nA0X1dHPFpnCWFPlmNJXCh6x06bUjoLuXpHFX4ufOg4j4yjnpuh
-RWy8iJA+3YV2jTg8G4MZs6OIta52mYxAWuVMAJ/CseM2A9oSe3KSojpiuz0CAwEA
-AaBRME8GCSqGSIb3DQEJDjFCMEAwHQYDVR0OBBYEFHfj3NhTvgxBQjgI/mI4lJ74
-ZG74MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQCi6ubZXJE1NaWBd7xSnb+yNBfHzv6yOkuTXvMYjMkznx3MlXNMfpxI
-gSKywlUjPH+IgSBpUQ1FVS9AvZfkOPQnlb6R42FSREVVmONgkXf//mqwQ5gaO67P
-fcbfr56NRlnZroT3iCwNBsq+ozCTR+ec9iC+JTJDBmFdbL6ax/SwQG56orQ4HKq1
-5nzF01ctTARTHeF7srMOlZPmmR0dC+6cnLsPKQAjjwLhem8vhPJs85GMFT5FVyOU
-6ejb79WFVgsMptlIy7ly0YXfNNfYDfAA38vKXzvAiqkK4LQ+kyAVpm2d/v1v2TqI
-VAwUYGeG4ckoTFehbiFYJSHpahtOtxVQ
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALY5OFxJqyqgUogBiy2MqYFv3Z4v
+y8pUsyAKqCTdb6gJfbHxt3mVh4mLvXV+IUxAqDj2v+0zoEPDXepU7/+MZ+I/ETpp
+2U2WfJDZBp3poTMoaunia7b5+yVsVEZaIh29WY17yeNvUbY8daR7eCDkB5KT3iQX
+0fGoilZISyKJHciDtRpo1xJJ+MoZnkRZW8NfPyWQ2/Nv1iPMHBG35CizRStdVOZI
+VGP5zcqqZSorcZG1k6k7jxoY0pd/MFqr69F5+oay+QrPRMe9U+5GK9OtyT/2Fphz
+C9KxwWXdg0XXewaoNqoDPqcWBN3PghR/uVBNG/FG4QqG/FaFvl6igZIB42kCAwEA
+AaBRME8GCSqGSIb3DQEJDjFCMEAwHQYDVR0OBBYEFBfCZdvlIAr/m62hYE+Wjvtb
+4C/kMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+CwUAA4IBAQCZ4onlC/c69LY0JzdLFt6P2K3kTVbUPWrfm21RoCD+VC3EpMU1zbbu
+sxhYXzlQo43aG1y+gUFACc/1fVGo8n3/N5lGJ2mOcX6SY/UbmMFuTfoo379SwKRR
+Q5hHtThamKD6BxT7ON7wRAHyX7iHckjNHLkZr1Z4MYYY6dlZ75MbbFibQcwUY8BP
+RZnB9dYpGswm3ZoYahtjNJQq8ZURFFLDvTzOpJs3q9w3t0OAZCaBIm1yhaFMfGcf
+QVjLHTAp62+ZCtOEKYR6WXAk3hQWisIt9ENIKOgoYpjwjl917cvpzw6oG+DNre0i
+j9rzDx04mKQhF/ur7tEl1cNFe2ZWqG1A
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/intermediate-ca-key.pem b/tls/tests/files/intermediate-ca-key.pem
index 0ba6862..2f1fcb2 100644
--- a/tls/tests/files/intermediate-ca-key.pem
+++ b/tls/tests/files/intermediate-ca-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/intermediate-ca.pem b/tls/tests/files/intermediate-ca.pem
index 8f65c4f..8caddfb 100644
--- a/tls/tests/files/intermediate-ca.pem
+++ b/tls/tests/files/intermediate-ca.pem
@@ -2,28 +2,28 @@
 MIIFAjCCA+qgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
-NzIwMTI1MFowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNloXDTQ2MDYx
+NzIwMTYxNlowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
 FgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUgQXV0
 aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20xKjAo
 BgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEntLBoR5JY2+Fp6Wil2S9tyrRbw5gB
-6wm1fRGS0w9dm7DQqV8CwliiUjBhubK8k+RZj/WSMuDDPRgDsTrXt//3ppQQ+q12
-5B2gB/OzboKFAijaW/g7kmE7tnCaKnoOuSzfdBIE70zGTkGOsJ5urop5LPDUnyQJ
-na5s6vSnPFdmUgJk9OPFpvdXvjbs6ZySNWg1xt+lPMRXj9oVWFl0016sY+P6d8nj
-mXbF9782+nA0X1dHPFpnCWFPlmNJXCh6x06bUjoLuXpHFX4ufOg4j4yjnpuhRWy8
-iJA+3YV2jTg8G4MZs6OIta52mYxAWuVMAJ/CseM2A9oSe3KSojpiuz0CAwEAAaOC
-AVAwggFMMB0GA1UdDgQWBBR349zYU74MQUI4CP5iOJSe+GRu+DCBxgYDVR0jBIG+
-MIG7gBQFomBZpMKdE9Wi5wE0yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixk
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALY5OFxJqyqgUogBiy2MqYFv3Z4vy8pU
+syAKqCTdb6gJfbHxt3mVh4mLvXV+IUxAqDj2v+0zoEPDXepU7/+MZ+I/ETpp2U2W
+fJDZBp3poTMoaunia7b5+yVsVEZaIh29WY17yeNvUbY8daR7eCDkB5KT3iQX0fGo
+ilZISyKJHciDtRpo1xJJ+MoZnkRZW8NfPyWQ2/Nv1iPMHBG35CizRStdVOZIVGP5
+zcqqZSorcZG1k6k7jxoY0pd/MFqr69F5+oay+QrPRMe9U+5GK9OtyT/2FphzC9Kx
+wWXdg0XXewaoNqoDPqcWBN3PghR/uVBNG/FG4QqG/FaFvl6igZIB42kCAwEAAaOC
+AVAwggFMMB0GA1UdDgQWBBQXwmXb5SAK/5utoWBPlo77W+Av5DCBxgYDVR0jBIG+
+MIG7gBQldL0J5/KLcVa6ixbx//cNq2oo3qGBjKSBiTCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAP
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ2s6OXj82ZwGEmP/x0jQhjVrfcQTAP
 BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAmBgNVHREEHzAdgRtpbnRl
 cm1lZGlhdGUtY2FAZXhhbXBsZS5jb20wGQYDVR0SBBIwEIEOY2FAZXhhbXBsZS5j
-b20wDQYJKoZIhvcNAQELBQADggEBAHOSlg1N2O7TeLjOwLMd0oSi7+WW+ptgYERT
-JVENeNNUpG/7X7AFR8Ou5GbnpaoE/66O7QLsLAfDTCWpbxN8u7p2qbGuqKyCbaX6
-9f9NTuIdvPkVDUkPA8Mn4Uu+UNuntQYM/OQSaZPID0wcB8yW62a5AB5/6tIZ+8uQ
-U1gtucEMIwLyicpQuJMZd5HtfJOnNkEBLY+uZfs9BSrjfEekjg8l2EKapxa+EcYT
-EA2jxmxz8AbJcrFD4vnGJ2jypvvnllutwdHJaG4n24SFFV2TneI5IOIA3exAOhHR
-AzHbjaSGYoRJHh9UozgBjzAhwwZLexJ3SQOurSGZB8RPBK89Ysk=
+b20wDQYJKoZIhvcNAQELBQADggEBAF6HrnyG1z3U5XLiX8u9zzrX81mcSyrHWotm
+vaAEyi0D3EpyuXcxLEMmsriJROshPIb7Xg8jvf/heX96rgXOQ9AyTR0vGKiXeiax
+F8tpsFXRhKISlHFj6ejbUezx0Q5eXynfcqWob/mtMO/KRfueBjlvCcrgkOJRddY8
+827NOO4ileYp270GgLbEE78eUzf/XhqCyV+krrlz/kvJCAbDBP/ugjxFbZGtY/ti
+7zOpSV7B/zaUtpyVbVHClBMC7+XpqGYgwL0QPhoaSOOPv4NMQrpQTvciZM4UU155
+/BN62aYhtIdGtO7dJzoTrtsVssyvPN007cdO3muHL0uLe7DdkVA=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/non-ca.pem b/tls/tests/files/non-ca.pem
index a590181..e2d3b33 100644
--- a/tls/tests/files/non-ca.pem
+++ b/tls/tests/files/non-ca.pem
@@ -3,22 +3,22 @@ client.pem:
 MIIDXTCCAkUCAQMwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
-NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDE2MTVaFw00NjA2MTcyMDE2
+MTVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbOVOqBO6OP
-sh6nTA6YLiua+asERNQCHfYg5dqQG+qZiySnf6eY3ds2YiQO81nKreBc8v3Hgm7z
-oJaMG42eYp5wsVKVoeeaByqUXPSFVaWumFgijiLJxAIPdS7nzNguTWHZsM1HurSM
-T1qXxVHkhEamzBxinO3OdFMryUk+5cqDnN5tmaiA7YOFxrdBwspvEIj/UiCcK2xt
-n/WntUVx06peha0evpoTNg5znvPvg0ruxQc1SpTiGd2rj5riGIlXh0J8gXSLkD6r
-9sjRT7UxyVzCBlZ/FoI7ljKuODIChwvoILRFdf88IFYin2Is6g0UhaFi0soa3rMy
-u4aPuxb5tfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOoNXdA5By9bUPN7WfsGH
-gegDo1OCaA2PqidYU93JbF0X5ZWmCr4N6AVxpLUbenrGS43qrgkPMlCgt0J/OIgQ
-jFtjhgBsZBaOxLAxVzOJl86TKX+ezuL8rY0lsMza0AaEFR0/WE3KhA8KvllJioBE
-XeyXl2Wdxj9pA94mNxazYSq5uFslbhZQgQZ76eBVGyrc7J4TdhOjRr4EEDN4W4E3
-uS+eZqZslEvC77+8cnXenINzwAXwX+HhJYZ8innUzwgPGVwhhvCSgSBG3w4OLRlP
-7ShnYq6B/olm+IBBjKO8A0VISu3iuFXuAAJBABMdU0D2xGURFUJnjEIxkDLOzdC2
-ZQ==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfxzQKwthl+
+nS2FR6C07d/WHpMBgM0INwlfP1X6lwrIWRDfSqLikgOfJaVHXiSOqljl95VZSh7f
+LyStULZJh37uUmdmf/RBShjMJ4Gby/TmaK/gmRTrAo1YjW9ZDH7FJa//Ea8CPURg
+4uQt3bW6nf/U1kDPIhGSQHM+6Yi+vQS9F9TOeduJcL9v+aqlRJ/rFDLaS2TmvhkK
+CDoXTzTBlVNed4wv68EnHS1BRmEDJ2PNWhoTXt0vzBxkaiaa4e7ZD1SJqGgE3dIV
+ktIRTvOg8WAr9Y7gfQzPOlb5jMIVuVzv4zuhew2LUNpv0MUR0qLpj6gk4rv7vqdf
+irx8whj7xz0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALjdAUd1Kz9aZbcBJhcu+
+M/WmfAenaHObivjNWNtezYXmk0kBXbfnf2bvrb5FT1mPF2bQ0P/yC2DiTCRguDKE
+aAPV95yVvk0SkMkXSdKIPoc3mv9v+0mRoQAtcYoRenyj6hZgPNub1DjxQJW0LLcO
+tSqe7Y4UYJNa7Q5zsWfz0oWeQdE2ctEWOKCUJhIzhSsZy+zvDDH9t15a5cVBE6+e
+PhTboNFByl+URVPjgdP/FlhE2IWtrZ/t8ZwSZ7KPTcnzh3gMWRZDXms8g+IG9ubF
+u7KPjRwL1yBtdqgIKhv/IBTbDyWC/U4VglLAQ93cHLIoOPXfptNtNnQLVmsaZzeL
+MQ==
 -----END CERTIFICATE-----
 
 client-future.pem:
@@ -31,19 +31,19 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAiGA8yMDYwMDcxNzIzMDAwMFoYDzIwNjEwNzE3
 MjMwMDAwWjBiMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEPMA0GA1UEAwwGQ2xpZW50MSEwHwYJKoZIhvcNAQkBFhJjbGllbnRA
-ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzlTq
-gTujj7Iep0wOmC4rmvmrBETUAh32IOXakBvqmYskp3+nmN3bNmIkDvNZyq3gXPL9
-x4Ju86CWjBuNnmKecLFSlaHnmgcqlFz0hVWlrphYIo4iycQCD3Uu58zYLk1h2bDN
-R7q0jE9al8VR5IRGpswcYpztznRTK8lJPuXKg5zebZmogO2Dhca3QcLKbxCI/1Ig
-nCtsbZ/1p7VFcdOqXoWtHr6aEzYOc57z74NK7sUHNUqU4hndq4+a4hiJV4dCfIF0
-i5A+q/bI0U+1MclcwgZWfxaCO5YyrjgyAocL6CC0RXX/PCBWIp9iLOoNFIWhYtLK
-Gt6zMruGj7sW+bX3AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAB/FyybXWAbFyjIJ
-1CDEE3GBMq87UsBP2BkW5QgDLl1FT6aRweH5/YilPiKc1HKRrAV0EcX+mcni14qg
-vsFB9SRIWfCJQGwg3Of+u2kmj467O+ql5oqrRwu3Pjq4TG/itzIUMVxS9xX4yB3r
-m/yLP2ggAtLbOnjOiP2pg9ct3oBqhjW7Xx9IMk0R+iHF0AKpq9AeY5XGkj1/4gS6
-kdlZbFsvoZ2+sqBB6HoENhpfydvItuilaFGWHfaH8Goys6py7KwRu4MwhKBK5R5L
-12155N7Nd0Ue4bCxsX/bEc3U+y0Z+Y3SWdpRPN/QTWdB+yfLF5O9dSpHvbkKAR14
-UyxgkPk=
+ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDH8c0C
+sLYZfp0thUegtO3f1h6TAYDNCDcJXz9V+pcKyFkQ30qi4pIDnyWlR14kjqpY5feV
+WUoe3y8krVC2SYd+7lJnZn/0QUoYzCeBm8v05miv4JkU6wKNWI1vWQx+xSWv/xGv
+Aj1EYOLkLd21up3/1NZAzyIRkkBzPumIvr0EvRfUznnbiXC/b/mqpUSf6xQy2ktk
+5r4ZCgg6F080wZVTXneML+vBJx0tQUZhAydjzVoaE17dL8wcZGommuHu2Q9Uiaho
+BN3SFZLSEU7zoPFgK/WO4H0MzzpW+YzCFblc7+M7oXsNi1Dab9DFEdKi6Y+oJOK7
++76nX4q8fMIY+8c9AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAHi091Bd7K41SLdT
+0D+aFJztRwA8EOLuhIqyx6DMAoT50xMSovR9aSob2A/jA+TslmWpIz4/gJxmDLbW
+wQuRs1tRcwpq6wedJqlhYyNyQnBE6v9Yc+tM+DsulsdC3R80AuudIVi3wACiRCqI
+BTtPYzUj56YV4YqIo+CTRBhpxcB2C2GtQMHX44q5o3Od7l/sV5f/dIR7LKCKTHnT
+lvAVEKgBIuHNJljTpiqI6oK7X5F9RFGIA0/0drfrrrI9s7v9sxQZ+lXetgY6oI18
+nBI/4XlgNtf+YNtat2Oruih35F7CDvoUdTACdUptPAJFB00Yy1IUY9/xi8T13+O6
+W6Hsy1A=
 -----END CERTIFICATE-----
 
 client-past.pem:
@@ -56,19 +56,19 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDA3MTcyMzAwMDBaFw0wMTA3MTcyMzAw
 MDBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbOVOqBO6OP
-sh6nTA6YLiua+asERNQCHfYg5dqQG+qZiySnf6eY3ds2YiQO81nKreBc8v3Hgm7z
-oJaMG42eYp5wsVKVoeeaByqUXPSFVaWumFgijiLJxAIPdS7nzNguTWHZsM1HurSM
-T1qXxVHkhEamzBxinO3OdFMryUk+5cqDnN5tmaiA7YOFxrdBwspvEIj/UiCcK2xt
-n/WntUVx06peha0evpoTNg5znvPvg0ruxQc1SpTiGd2rj5riGIlXh0J8gXSLkD6r
-9sjRT7UxyVzCBlZ/FoI7ljKuODIChwvoILRFdf88IFYin2Is6g0UhaFi0soa3rMy
-u4aPuxb5tfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAD+N5QqZT/IkPsG115+45
-jJrsQpqw5QG+SbzuSKj6AzsKL+H6y6uxL6hr/QCifAC0URsjTcR5Ehs78dwVDxth
-zjTlC7l1Fz/tLwsi8W1xlp8yFmwCSsCIgjYjCQjMbI1tNmFnYTG3Ip22brm//3+b
-/acFVQs/CtWEUbjHUyYjqj55hu1ME6emdLy09afkmHa6FYDYs9UPJqyfWIbJ6S1f
-2k3cVqtGttZswtKp8tGtAS3zfBVvwhd0d16K5OH4GiG+JKClTu+hQuBhckIZdYd0
-JdE0ZV0koMuOwDVKTbZwOBZC+weC2pxjYJrO5EvsKonjb0lwtqHHD/QJY2k2j+lN
-eg==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfxzQKwthl+
+nS2FR6C07d/WHpMBgM0INwlfP1X6lwrIWRDfSqLikgOfJaVHXiSOqljl95VZSh7f
+LyStULZJh37uUmdmf/RBShjMJ4Gby/TmaK/gmRTrAo1YjW9ZDH7FJa//Ea8CPURg
+4uQt3bW6nf/U1kDPIhGSQHM+6Yi+vQS9F9TOeduJcL9v+aqlRJ/rFDLaS2TmvhkK
+CDoXTzTBlVNed4wv68EnHS1BRmEDJ2PNWhoTXt0vzBxkaiaa4e7ZD1SJqGgE3dIV
+ktIRTvOg8WAr9Y7gfQzPOlb5jMIVuVzv4zuhew2LUNpv0MUR0qLpj6gk4rv7vqdf
+irx8whj7xz0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALL01K6kftU/U7vt9Nf/G
+UsnSi8A8IupTS+dfm3Fa75sQC3AUP4Zs+UQMf0dfKvnVMyT6dVAYQRQ91Pklhp4b
+wnIV0U2a+RuhnxvsrBgYT52LD5ZjC2+MsW7Rd2LZsipLSS28Era6OD2RgOHuSgZP
+hTKNxAGBSQs+M9Oe9Z06sqBiO3sRP10r+vNkPfy5ZEl6X1HtBtzhAxFcDHm4otSE
+ypmuMhMXxQlDOAPdNlCEkYxJYtLcY2buxYz6PAIPU2+k8R1jujXBWIzzoS0MnE1l
+c1UtQwk9lY7FHv5Y7M5r62GVVJbIiqH9FlePXpEKmCBVYCh2b5rJ6x0BHxCCeyta
+6A==
 -----END CERTIFICATE-----
 
 server.pem:
@@ -76,42 +76,42 @@ server.pem:
 MIIDlDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
-NzIwMTI1MFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNVoXDTQ2MDYx
+NzIwMTYxNVowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JLwhOf
-VJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSAO5Mr
-UaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSNFaro
-KMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4QLoy
-NHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAmKHiN
-bkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaNHMEUw
+hvcNAQEBBQADggEPADCCAQoCggEBAMPZbX+Z0KiSwdnp5t2KXMK7Gv9TbkVdsuE4
+C1qfBKDzuEVeqFd5KO5QoCu7txSBxq8Rhrc1sHH4PfVMwXubFCzRaPAn4xb0ncVl
+IvwKB7+jvPxzKqlK6q1Q7Gxc7eG/oUOnEfaZJhpYluTSRd8lk251SMkngY3jfqsf
+avzxbgOAZRvINtg+mnTtj8mE5siG1iNiRemqtjNYP4XIjRdrhMW9C0Qp9axaXGgX
+SljAHqE2AQXmRxypW+Ok2TdrSxQBEK8fnUngj2JONQM6jvZKRwodrqpSvH5RfOrw
+xHu2yUrKgnqOWsAdAPf10rSRmgr0eWVenniv34BQGDPxIgP72vkCAwEAAaNHMEUw
 CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEK
-ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJyMWPA0PXmv
-yhgaxwHOi3AstCHxCQ/VMC+9fDWdwb3GkjBPgTJ4Trf41kfJAMutS++RNUulChxJ
-v3mOcWumeqcf7UA7SKSwQ4USUfPjr2xUwWpT3qH+rpaBhgoDUcniY1pVT13OFpBq
-50TsfjZgasULy0G2OI0VKI338/mGnNcM+Bq99NNIgFgtief1wHWA2XtPEPMIKiI7
-7dusrHy5LukgmL8/9v++FwdsoEHM8zFop9sHSclsoagc2tW9TTA1eGRSIOmYNoUL
-7zs+rBbCAD0fTQtLAzreF1+NORTuqZvCt2MNouAvRRcs9gxQnlwL5wdqHsljDhV3
-nThN3nY0pVs=
+ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEOMZcqWdZw+
+DjI8kcdXoOXS3YlGboq+ulu2qzQic6EzR4tgFe/aEFSsV2K1rGxbl/bhvAd22/lR
+0LmrvgQgEdgtpQQGT/n0QmbXzahKksPxLKt0Bpi1H2a1BO+9gywVIGXpKxKm9XAH
+zhBb3de31311XlQRC5p665TFoc6Aguq5QVlki+LXAW4Kdi1L2r8CDdYneK/yg7qW
+0/I4WhT4Sl0JMHvHiIkEUKD61BIoLF8u0jBgzr9og2acmIacBICy5pOfmiR4lcQf
+mJ3NlbLXwZ96nfQKuStTgAFmONgU1ElQ5tlsF+tIjDCwPOrc1q5U1q0iFkz9hHV1
+ZYegUzlFqbo=
 -----END CERTIFICATE-----
 
 server-self.pem:
 -----BEGIN CERTIFICATE-----
-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
+MIIDHTCCAgUCFE+ZwxqnmDmtWeblAQEVRDFQaipnMA0GCSqGSIb3DQEBCwUAMEsx
 EzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMRsw
-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
+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
-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
+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
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/old-ca-key.pem b/tls/tests/files/old-ca-key.pem
index 51287ad..2362c78 100644
--- a/tls/tests/files/old-ca-key.pem
+++ b/tls/tests/files/old-ca-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/old-ca.pem b/tls/tests/files/old-ca.pem
index 8fd06e5..5980d04 100644
--- a/tls/tests/files/old-ca.pem
+++ b/tls/tests/files/old-ca.pem
@@ -1,30 +1,30 @@
 -----BEGIN CERTIFICATE-----
-MIIFLjCCBBagAwIBAgIUF01M8olIzj+z4bVXhMWW4Ss4wxkwDQYJKoZIhvcNAQEL
+MIIFLjCCBBagAwIBAgIUAT/Zj4jAA7sB3BGbnpmsaV1nSwkwDQYJKoZIhvcNAQEL
 BQAwgZ8xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMSwwKgYDVQQLDCNPbGQgVW50cnVzdGVkIENlcnRpZmljYXRlIEF1dGhvcml0
 eTEiMCAGA1UEAwwZb25jZS53YXMuYS5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3
-DQEJARYOY2FAZXhhbXBsZS5jb20wIBcNMjEwNjIzMjAxMjQ5WhgPMjA1MTA2MTYy
-MDEyNDlaMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
+DQEJARYOY2FAZXhhbXBsZS5jb20wIBcNMjEwNjIzMjAxNjE1WhgPMjA1MTA2MTYy
+MDE2MTVaMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEsMCoGA1UECwwjT2xkIFVudHJ1c3RlZCBDZXJ0aWZpY2F0ZSBBdXRo
 b3JpdHkxIjAgBgNVBAMMGW9uY2Uud2FzLmEuY2EuZXhhbXBsZS5jb20xHTAbBgkq
 hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsoCJMYbhriWcDlSDFBRQ4TP+HgoX3bZkFC/EAfN3OvsJ3b6o6tPG
-G71E7seeGEqA2tdOoQK1Pel0eBkpXo+xmFFTV21Eo0nTNpNbYEhw0zqNxYLPU18i
-uRS9ouZ3SarAlRU8OykxBRud/yMhcvnJ+84Tvykh8PaVU1DM84XLj1JnrZc4hZmK
-8+YQL8HYX94YDOM/53OisfQWn80tXbsSGbn0Ori/pE50/dKat/hl8qTvzxJ7FWF7
-PLIWtd+hBhj1+qHwfziJW1a0LSHvdV16jWRfmXCyNBe/3JNCN1CJgjwVPvYT9pO+
-gf3gvQ95+gJ3BH3rAvFD2uMDyshkZgc07wIDAQABo4IBXDCCAVgwHQYDVR0OBBYE
-FHDZT8fUDuf/NyAWkJtsF5vmiYJ4MIHfBgNVHSMEgdcwgdSAFHDZT8fUDuf/NyAW
-kJtsF5vmiYJ4oYGlpIGiMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZIm
+MIIBCgKCAQEA1zBOnsRyQg9OvkIYeiRfak7yJDI+84QSu81mgFl32vjzfwj1Dio7
+4/G7cM3KPkAAamjlE9PrZMWaukJrFUBGtKoY/MlA607ORWOqop9kWjYjQJRLiU6r
+m1eQ8Kgb8Aymmmij810u9MmSB+RbM6IrWYnuWu8iO+hWJXoGMZRD29IF/YEproHI
+C1Kx0RGvc+ITF6PWSHnMrKs6vgLnFQ+nNEy9DP3xHy1hmEyEKk5UEvDiL5b/FBFD
+pFqrkoNPljUeNoujBg0xrfyBRGbGJjZaix6KA7o18RrlRNlmpCXtnX8yW5Jj0wJa
+SxjMzEigzF4wcrSq4IuhsCZrLFn6WwTdRQIDAQABo4IBXDCCAVgwHQYDVR0OBBYE
+FHBZ8ri9X9S2j543Ck1tIQu9pyPdMIHfBgNVHSMEgdcwgdSAFHBZ8ri9X9S2j543
+Ck1tIQu9pyPdoYGlpIGiMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZIm
 iZPyLGQBGRYHRVhBTVBMRTEsMCoGA1UECwwjT2xkIFVudHJ1c3RlZCBDZXJ0aWZp
 Y2F0ZSBBdXRob3JpdHkxIjAgBgNVBAMMGW9uY2Uud2FzLmEuY2EuZXhhbXBsZS5j
-b20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQXTUzyiUjOP7PhtVeE
-xZbhKzjDGTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAZBgNVHREE
+b20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQBP9mPiMADuwHcEZue
+maxpXWdLCTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAZBgNVHREE
 EjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFtcGxlLmNvbTAN
-BgkqhkiG9w0BAQsFAAOCAQEAqIthoyw9bbJI4h/uXrQN2IIqsqBHDy6H8z3BCiVM
-J6lBZMZ7+nkY4HheARFmevg7w1KwA45qEVHkPx6UN5iAXzSeO+57dMsXkmylBW9N
-tw3GfVDkqCSnApRJJUl9XeLpz73O0Lin7FF/So+EDbPGCpiSxvcrWshUfQHK19M9
-Nvydg505o+WQVRh0I8YkreEtcFmEaeCEiQbk8f5KVX8wkaHJJEjDUgd2QkW7QGQV
-O5RB91jpHnOdXgbaXEhvr7tk/T426YH8aFlmR/OCvVZjXwBt4FqacfTD7MBdumnu
-eYLVkDMbc5IlPBvvSLDOzt2FksLpbR44xK8D5xQ+iY0A3A==
+BgkqhkiG9w0BAQsFAAOCAQEAfPYTCU0/pcPGbz2dWZNBduK41o1rGrQLxQFenq11
+HT/s9udS8cCOZyB1XryUtP2eP3Lj3LDuNVXjaEr8pvD258XUnh0Tus9oGaW9t33A
+eWrLQyM1FhZ3A+gqG1hQttLAbXGKwK4eGIO9QKqwuDkJZ9sW9qQWACHKT+ulALfp
+l39oBGIOSTVRPxLWZw6NyYNlhEpqm/aBAlusj/DtXxCz1X7eNF5gjdLsWYpGzM/q
+0bsjGglWAfjWOTu9lzj9//9jx+CTREk66bIPFU5Bc2tITqdBihwKFckn77e84FqF
+wRLqkcjuzS3qOQ5LRk/v5Yvvdc8DsdK8UpLR87KOeF601Q==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/root-ca-csr.pem b/tls/tests/files/root-ca-csr.pem
index 4c33bab..0f2833d 100644
--- a/tls/tests/files/root-ca-csr.pem
+++ b/tls/tests/files/root-ca-csr.pem
@@ -2,18 +2,18 @@
 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
-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
+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
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-and-key.pem b/tls/tests/files/server-and-key.pem
index 73b9c21..5a724e4 100644
--- a/tls/tests/files/server-and-key.pem
+++ b/tls/tests/files/server-and-key.pem
@@ -2,48 +2,48 @@
 MIIDlDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
-NzIwMTI1MFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNVoXDTQ2MDYx
+NzIwMTYxNVowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JLwhOf
-VJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSAO5Mr
-UaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSNFaro
-KMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4QLoy
-NHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAmKHiN
-bkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaNHMEUw
+hvcNAQEBBQADggEPADCCAQoCggEBAMPZbX+Z0KiSwdnp5t2KXMK7Gv9TbkVdsuE4
+C1qfBKDzuEVeqFd5KO5QoCu7txSBxq8Rhrc1sHH4PfVMwXubFCzRaPAn4xb0ncVl
+IvwKB7+jvPxzKqlK6q1Q7Gxc7eG/oUOnEfaZJhpYluTSRd8lk251SMkngY3jfqsf
+avzxbgOAZRvINtg+mnTtj8mE5siG1iNiRemqtjNYP4XIjRdrhMW9C0Qp9axaXGgX
+SljAHqE2AQXmRxypW+Ok2TdrSxQBEK8fnUngj2JONQM6jvZKRwodrqpSvH5RfOrw
+xHu2yUrKgnqOWsAdAPf10rSRmgr0eWVenniv34BQGDPxIgP72vkCAwEAAaNHMEUw
 CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEK
-ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJyMWPA0PXmv
-yhgaxwHOi3AstCHxCQ/VMC+9fDWdwb3GkjBPgTJ4Trf41kfJAMutS++RNUulChxJ
-v3mOcWumeqcf7UA7SKSwQ4USUfPjr2xUwWpT3qH+rpaBhgoDUcniY1pVT13OFpBq
-50TsfjZgasULy0G2OI0VKI338/mGnNcM+Bq99NNIgFgtief1wHWA2XtPEPMIKiI7
-7dusrHy5LukgmL8/9v++FwdsoEHM8zFop9sHSclsoagc2tW9TTA1eGRSIOmYNoUL
-7zs+rBbCAD0fTQtLAzreF1+NORTuqZvCt2MNouAvRRcs9gxQnlwL5wdqHsljDhV3
-nThN3nY0pVs=
+ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEOMZcqWdZw+
+DjI8kcdXoOXS3YlGboq+ulu2qzQic6EzR4tgFe/aEFSsV2K1rGxbl/bhvAd22/lR
+0LmrvgQgEdgtpQQGT/n0QmbXzahKksPxLKt0Bpi1H2a1BO+9gywVIGXpKxKm9XAH
+zhBb3de31311XlQRC5p665TFoc6Aguq5QVlki+LXAW4Kdi1L2r8CDdYneK/yg7qW
+0/I4WhT4Sl0JMHvHiIkEUKD61BIoLF8u0jBgzr9og2acmIacBICy5pOfmiR4lcQf
+mJ3NlbLXwZ96nfQKuStTgAFmONgU1ElQ5tlsF+tIjDCwPOrc1q5U1q0iFkz9hHV1
+ZYegUzlFqbo=
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-csr.pem b/tls/tests/files/server-csr.pem
index d4e2e68..6af87ea 100644
--- a/tls/tests/files/server-csr.pem
+++ b/tls/tests/files/server-csr.pem
@@ -1,17 +1,17 @@
 -----BEGIN CERTIFICATE REQUEST-----
 MIICwTCCAakCAQAwSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
 ARkWB0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JL
-whOfVJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSA
-O5MrUaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSN
-FaroKMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4
-QLoyNHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAm
-KHiNbkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaAx
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPZbX+Z0KiSwdnp5t2KXMK7Gv9TbkVd
+suE4C1qfBKDzuEVeqFd5KO5QoCu7txSBxq8Rhrc1sHH4PfVMwXubFCzRaPAn4xb0
+ncVlIvwKB7+jvPxzKqlK6q1Q7Gxc7eG/oUOnEfaZJhpYluTSRd8lk251SMkngY3j
+fqsfavzxbgOAZRvINtg+mnTtj8mE5siG1iNiRemqtjNYP4XIjRdrhMW9C0Qp9axa
+XGgXSljAHqE2AQXmRxypW+Ok2TdrSxQBEK8fnUngj2JONQM6jvZKRwodrqpSvH5R
+fOrwxHu2yUrKgnqOWsAdAPf10rSRmgr0eWVenniv34BQGDPxIgP72vkCAwEAAaAx
 MC8GCSqGSIb3DQEJDjEiMCAwCQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcD
-ATANBgkqhkiG9w0BAQsFAAOCAQEAjbG/H3QSWnsJKRIOR7EFM7frj6D0/uyvIXks
-CXVA+NlKoueuzRgupaSBzT6Crl9G0M+PWAEHjEw8tVPnNpIWntCalvjgmPATEy37
-Xa/N4ycQAc0+r/Uu8//cA+1b60Hei995APZhX4mJxsQAP5Cgto+krBbmmi/RmW62
-4s+YRfWqEpq10pjK0Qpacyi99pq2PDDzi4eEgneYCPAWjJvjPz/q/P/vSNgNxw87
-1Gssb8lZqSO1TffCNc6TKkQPzJlZDK0RtGQz8LCf7jpuV/uJHSnEcqyX2o7/2AjG
-JxtiSUVR6bywUvEG/Gj5aDjYhTSjuqJO+6Q8S8/ctaZT8ZaKqQ==
+ATANBgkqhkiG9w0BAQsFAAOCAQEArWOneHWE80agGbu8Dof4Zj7gh83t6T+9C6rp
+KJkNyTFU0avZo7iSiYy2lh2KezXVWAK8ScBkdVVXMOt3vT/KIph1WHtZCZ1MBt2z
+q7RJRcudD+GyaaWA39uawfchfixRijxrBPSSS23yXcw+yMqlVudgrg0OvX7JAIkz
+z4XJa55xEYUvYoX05EQkr5URc76xWO0zYir+UXzLGH9FWpfj/5ewPO0PjoRGkOWB
+c+ZZlQAWdvJmHLBF18IdeSv4sPHCaUV+ELcKyDx5iE8D3OrcJ7R6rjVvTCdRvLY/
+hhKjAdWjXg4qXDj13XaRpT13UIqE2eeStVXnUfQorVvS8Kicjw==
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-intermediate-csr.pem b/tls/tests/files/server-intermediate-csr.pem
index 3acbdea..4ab8f0e 100644
--- a/tls/tests/files/server-intermediate-csr.pem
+++ b/tls/tests/files/server-intermediate-csr.pem
@@ -1,17 +1,17 @@
 -----BEGIN CERTIFICATE REQUEST-----
 MIICwTCCAakCAQAwSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
 ARkWB0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBANZscJj8sc8XXM1BcVTs0E1SfQvPWpts
-Wv66Mf7F6+ZAYrsAAyEi0NKsY7p0pmMSpUukbit883dIv/A6lQ4mWjHtCrwGRE3b
-EoRv94M4UW/U3t/meOLK1b3NGq1bFhs6qOi0zyRWf2C2yFS4EPyyuKGbJ17gim8d
-/z+kMyYrflP5mBIbr2r1DAWBjzayxItTxqPNdpiwSTor2yvGtrDbbdX2WbZ7EqXo
-GCzsBwsqe46Sf5b+lLDcChpsuTBQABlAiwPJUJKlTcgugh1jMkq1z9RngOKGmcnM
-cokEThLxr2W+UNgrVVFMonjLg6OZimepQsJcd/Cp4zcg/z7VxKV/KDUCAwEAAaAx
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAON5fzcX7h1+XmmMFjpbUiJdqIXworEf
+6ToQru0zxoKxfVzjmo6O02jSkIduKZgycUgT5KDHlQx3OrKd2KnFe47NqIsSlzap
+Qto9+VbbUFXFv31a+qZlQr1AO5z8UtoPBCXamRoraV0PzlilGp9/TETVgUya2Gsz
+0C+1F8iJAaha7DEgFSnapuRvEstd6iOPh8q2gdAigoGryENr61YL5ke13HU9hU3v
+wdsUnt7ZuNlKFBjS1NneXYtkQpeDgrV0ee3yauS9p0PWKUuN+ExWlUsgCG92mDZ0
+HqBOEamfu+akxZV6/zKGZrd6V4HgeFfBm5LfxtaogVqYsQG5KB1RDmsCAwEAAaAx
 MC8GCSqGSIb3DQEJDjEiMCAwCQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcD
-ATANBgkqhkiG9w0BAQsFAAOCAQEAjkE6lfN9MjucGqnY1TJ6hwB4ubzudyKIc+ip
-I1/JUQMRwXg9ZWIzAuTj4wQwQLNkipPIVNpwtTWzqENE+HhVOVbZtwf7nuh3q1K8
-HHMTuSqOQqmtVVmCi39L3qOvStImSfEo1p9cF6m455Wff9daJURUENCHcygFfhv/
-LHyYANmQB3+zho6asgOuxmCb64+Da+3aEyqNO00AFwv2odZ4yh2PN762ERVV5ZJs
-J1uKxDMvB2m9o7L+XMCZZEYq9DIUDm8FhsORNCoThLNTG0Lm+VSnJIV5XC90rHDV
-ceRMIgDfwir+FVFizrxwX4zQA5vX3TBfdRZq0TPUx2DULVXHow==
+ATANBgkqhkiG9w0BAQsFAAOCAQEAPU29YEyZdXn2RsIwAnsDsbXblMsmLmVXVeKD
+BsgSTJQ4d+Aq6qLsZ4xfQWa8Hngb1zOPeOV/0gx5zrO0YXr2QmIdP27K0RWK1iWz
+RdQIFcXcFW/sn8kVHsWiPNVYKi9fNhj7INi5YK6RTIsa3Ej2jTuRwWsNpDcfn8L/
+XLa+k5hFrG0dnO16hOwOs9fURNxjgKF64runye/CYcSwak38Uz10e38AG9MoEksw
+L9JCAD7IrRJk5BtN+RTPZYXc/RSyUHDZzJZecD8t2rsdvdQ3twGX+cXq0U3siglr
+SUz9T3W8ZTvoxP5Vvud4WeRwZSw3OemvBoH6xlgOdWobEs9w6A==
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-intermediate-key.pem b/tls/tests/files/server-intermediate-key.pem
index 653affb..44d4806 100644
--- a/tls/tests/files/server-intermediate-key.pem
+++ b/tls/tests/files/server-intermediate-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-intermediate.pem b/tls/tests/files/server-intermediate.pem
index 4a52817..c498bed 100644
--- a/tls/tests/files/server-intermediate.pem
+++ b/tls/tests/files/server-intermediate.pem
@@ -3,20 +3,20 @@ MIIDuzCCAqOgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBrTETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxKzApBgNVBAsMIkludGVy
 bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxJDAiBgNVBAMMG2ludGVybWVk
 aWF0ZS1jYS5leGFtcGxlLmNvbTEqMCgGCSqGSIb3DQEJARYbaW50ZXJtZWRpYXRl
-LWNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYxNzIwMTI1MFow
+LWNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNloXDTQ2MDYxNzIwMTYxNlow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBANZscJj8sc8XXM1BcVTs0E1SfQvPWptsWv66Mf7F6+ZAYrsA
-AyEi0NKsY7p0pmMSpUukbit883dIv/A6lQ4mWjHtCrwGRE3bEoRv94M4UW/U3t/m
-eOLK1b3NGq1bFhs6qOi0zyRWf2C2yFS4EPyyuKGbJ17gim8d/z+kMyYrflP5mBIb
-r2r1DAWBjzayxItTxqPNdpiwSTor2yvGtrDbbdX2WbZ7EqXoGCzsBwsqe46Sf5b+
-lLDcChpsuTBQABlAiwPJUJKlTcgugh1jMkq1z9RngOKGmcnMcokEThLxr2W+UNgr
-VVFMonjLg6OZimepQsJcd/Cp4zcg/z7VxKV/KDUCAwEAAaNHMEUwCQYDVR0TBAIw
+ggEPADCCAQoCggEBAON5fzcX7h1+XmmMFjpbUiJdqIXworEf6ToQru0zxoKxfVzj
+mo6O02jSkIduKZgycUgT5KDHlQx3OrKd2KnFe47NqIsSlzapQto9+VbbUFXFv31a
++qZlQr1AO5z8UtoPBCXamRoraV0PzlilGp9/TETVgUya2Gsz0C+1F8iJAaha7DEg
+FSnapuRvEstd6iOPh8q2gdAigoGryENr61YL5ke13HU9hU3vwdsUnt7ZuNlKFBjS
+1NneXYtkQpeDgrV0ee3yauS9p0PWKUuN+ExWlUsgCG92mDZ0HqBOEamfu+akxZV6
+/zKGZrd6V4HgeFfBm5LfxtaogVqYsQG5KB1RDmsCAwEAAaNHMEUwCQYDVR0TBAIw
 ADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEWghJzZXJ2ZXIu
-ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEnEtyKxpVbVL+IPyVv6TdYZ
-hmrQnbhI56Qdj7sONFuvgGMs9NjB86+BrBxKZHAbZaDfy6YS/MnIaS56WKJ63aGN
-pNtSlblKpKS8B2+tCDkKaoN2QxZjiE+FkE4EYE1J5zkUFjcfHGHP2SH4GmhJXncF
-S5A9wbtBz7VkKANBaMIzutmmeUSae2yPEUOPW1DFB/6gYF5/CFeKJVmEASg6WsjK
-lMZanFRLk/cmuOJTbmLZjK5gis4WNp16kNYCIf9/1J/TIYnFwbTyZtIn5/9NDqLd
-Ox/d1J2la61f9ZidzmJ+bXibibsvxJw2oTgRSFUbIGF51l4vmsKdhO8Rrn2Lrp4=
+ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAIX8YaD7oV+ULhX4yrXRjZwz
+Rn1IiktJVxdCo3s8wx3LVHtyywWud4N5H0FtAbM3LMBWp9A4k+NUvVTVdPgfLkzS
+jYRn6hHBafSbp0tevXFBer1QH1m1K72B7RDUfP7L8tGz94zY6j/9adSj9pygr4qC
+V5BO/6Qh7gG1UTaAXsFWHntY0UWAc92r8Th3MhpKwOFeNGwNYb/N+BlgtfvMKRgT
+/v8FYyIWqB/DNymhyVQg3GgeDEeDWxX4qgeZoNSZu9fVHLUfPh143njBqd1BG0AE
+Sinzts1+adYA2qFua6ZaWizf6UlJjDdhk89sCUhlsRjJbTMfaLnwT60aoFSESNM=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/server-key-pkcs8.der b/tls/tests/files/server-key-pkcs8.der
new file mode 100644
index 0000000..f7f4695
Binary files /dev/null and b/tls/tests/files/server-key-pkcs8.der differ
diff --git a/tls/tests/files/server-key-pkcs8.pem b/tls/tests/files/server-key-pkcs8.pem
new file mode 100644
index 0000000..cddeb1f
--- /dev/null
+++ b/tls/tests/files/server-key-pkcs8.pem
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDD2W1/mdCoksHZ
+6ebdilzCuxr/U25FXbLhOAtanwSg87hFXqhXeSjuUKAru7cUgcavEYa3NbBx+D31
+TMF7mxQs0WjwJ+MW9J3FZSL8Cge/o7z8cyqpSuqtUOxsXO3hv6FDpxH2mSYaWJbk
+0kXfJZNudUjJJ4GN436rH2r88W4DgGUbyDbYPpp07Y/JhObIhtYjYkXpqrYzWD+F
+yI0Xa4TFvQtEKfWsWlxoF0pYwB6hNgEF5kccqVvjpNk3a0sUARCvH51J4I9iTjUD
+Oo72SkcKHa6qUrx+UXzq8MR7tslKyoJ6jlrAHQD39dK0kZoK9HllXp54r9+AUBgz
+8SID+9r5AgMBAAECggEBAK/pLroK/Wk8kFPcDNp2ecUK7D/jv0sc0xwKC+C0riKn
+Zp8gW5JeKE6OKp+9dr87par/0gHjfn2P3I7lB3CvpVpwKZJ0MTwgMUnpAphhpf4S
+4x/ZjbsLqGhOJF1cxuobBo1OlgrqGlhVtAsJd2rsRFVVkS/khTBd4xtvF9jkPc1z
+w6V7khpscvSLl8iPYmkb9Sq3VjW6rfa+O85TlVOa7AOpe4mfLX85FpEDUd3dvJze
+nCtLnle2B7OjEE7ST0qGZ2wzkOTfILi4ihB0PeHdKy8FBUamm1VyGvp1hlbMAu4Y
+Beq2drYOYGT9DGqwqIxZUqKL63P7SkIe6Z+p4NEtAZECgYEA/Nqm9hXtNh5x9A4v
+vmT7rzNQmmH1VruOG6DAeKmxzJb0Z2jD4p/dFuqw1otRnozcgjWSTK0sVhs08I5i
+Ex7EyPMGCPcdzns8ATEb+W1WikOdJ9QADcbs18ux0iyngyFXh6yUNvKCy2A/WHvF
+37Gtmd+TgAvhiqbMQknu7Tc8iDUCgYEAxkk2r7IvcmXgLQ4Zz/W2x4cmF8vpzhTL
+QWiPHIIT0EprR9eB9q7sgC2jC+xLHGdUpEwzHE/wiGeWYBmUUrabmJVKQsz0/oKh
+n1x6vsna+XAXmmDeExgJn9OyyABBZY+NucEf1aaJGCYU+UFfIBQ3Yd6UL/2k3QI3
+RhMvvemqCDUCgYEA6CO19WfcCDubUv1TR/FeQFNUROh6Xc6DgUnsatsgqTxN1kKQ
+1JcAW/HLuKzfmjiomcKlNlAmzEbeK5wM3pD5CaRUfhah/teVF2MG09BWC0pYFiDE
+i+F9wAD6mIL2p6UMvzrqOCgdfKo4ffvkhqKRRxvER2KhBrJsBM/r001K/aECgYBh
+IF+/NEL1gF2M9ElEipGbruHD6kh+f8UIJxVi23ylHK7sI+4vTYPfTXt+TaKFKUBW
+slSe27Fwv3zzWdRDp9sTpJ0Zl5eyS36rtvsRFYNDh9qn7icZpz6foW0DdsyR2P2N
+LcJQPyEMSSsg5RqZdg2izQo9b7sf3wQAOUm7dweouQKBgQC8m0717khHaXIWa7+t
+f7+SEvqHa+Rgih3AvxG3Jdw5e22l+y1yTnmkWe72j/WauuLs+qw8mw/GAxE9uocS
+dmL9aS4c65JoM/j7diWwP2lQW09B2MugGVqQBvS80StoMNrD64hW+oGBnH425KcB
+qs+64AWE48JzZ5vkBHUpuoKmYg==
+-----END PRIVATE KEY-----
diff --git a/tls/tests/files/server-key.der b/tls/tests/files/server-key.der
index a774283..ae06b08 100644
Binary files a/tls/tests/files/server-key.der and b/tls/tests/files/server-key.der differ
diff --git a/tls/tests/files/server-key.pem b/tls/tests/files/server-key.pem
index e9ea7ef..41aed5c 100644
--- a/tls/tests/files/server-key.pem
+++ b/tls/tests/files/server-key.pem
@@ -1,27 +1,27 @@
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-self.pem b/tls/tests/files/server-self.pem
index 187dbe2..0a509b3 100644
--- a/tls/tests/files/server-self.pem
+++ b/tls/tests/files/server-self.pem
@@ -1,19 +1,19 @@
 -----BEGIN CERTIFICATE-----
-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
+MIIDHTCCAgUCFE+ZwxqnmDmtWeblAQEVRDFQaipnMA0GCSqGSIb3DQEBCwUAMEsx
 EzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMRsw
-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
+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
-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
+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
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/server.der b/tls/tests/files/server.der
index 618edb9..59d7c55 100644
Binary files a/tls/tests/files/server.der and b/tls/tests/files/server.der differ
diff --git a/tls/tests/files/server.pem b/tls/tests/files/server.pem
index d90e79b..37fd95f 100644
--- a/tls/tests/files/server.pem
+++ b/tls/tests/files/server.pem
@@ -2,21 +2,21 @@
 MIIDlDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
-NzIwMTI1MFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTYxNVoXDTQ2MDYx
+NzIwMTYxNVowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JLwhOf
-VJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSAO5Mr
-UaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSNFaro
-KMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4QLoy
-NHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAmKHiN
-bkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaNHMEUw
+hvcNAQEBBQADggEPADCCAQoCggEBAMPZbX+Z0KiSwdnp5t2KXMK7Gv9TbkVdsuE4
+C1qfBKDzuEVeqFd5KO5QoCu7txSBxq8Rhrc1sHH4PfVMwXubFCzRaPAn4xb0ncVl
+IvwKB7+jvPxzKqlK6q1Q7Gxc7eG/oUOnEfaZJhpYluTSRd8lk251SMkngY3jfqsf
+avzxbgOAZRvINtg+mnTtj8mE5siG1iNiRemqtjNYP4XIjRdrhMW9C0Qp9axaXGgX
+SljAHqE2AQXmRxypW+Ok2TdrSxQBEK8fnUngj2JONQM6jvZKRwodrqpSvH5RfOrw
+xHu2yUrKgnqOWsAdAPf10rSRmgr0eWVenniv34BQGDPxIgP72vkCAwEAAaNHMEUw
 CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEK
-ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJyMWPA0PXmv
-yhgaxwHOi3AstCHxCQ/VMC+9fDWdwb3GkjBPgTJ4Trf41kfJAMutS++RNUulChxJ
-v3mOcWumeqcf7UA7SKSwQ4USUfPjr2xUwWpT3qH+rpaBhgoDUcniY1pVT13OFpBq
-50TsfjZgasULy0G2OI0VKI338/mGnNcM+Bq99NNIgFgtief1wHWA2XtPEPMIKiI7
-7dusrHy5LukgmL8/9v++FwdsoEHM8zFop9sHSclsoagc2tW9TTA1eGRSIOmYNoUL
-7zs+rBbCAD0fTQtLAzreF1+NORTuqZvCt2MNouAvRRcs9gxQnlwL5wdqHsljDhV3
-nThN3nY0pVs=
+ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEOMZcqWdZw+
+DjI8kcdXoOXS3YlGboq+ulu2qzQic6EzR4tgFe/aEFSsV2K1rGxbl/bhvAd22/lR
+0LmrvgQgEdgtpQQGT/n0QmbXzahKksPxLKt0Bpi1H2a1BO+9gywVIGXpKxKm9XAH
+zhBb3de31311XlQRC5p665TFoc6Aguq5QVlki+LXAW4Kdi1L2r8CDdYneK/yg7qW
+0/I4WhT4Sl0JMHvHiIkEUKD61BIoLF8u0jBgzr9og2acmIacBICy5pOfmiR4lcQf
+mJ3NlbLXwZ96nfQKuStTgAFmONgU1ElQ5tlsF+tIjDCwPOrc1q5U1q0iFkz9hHV1
+ZYegUzlFqbo=
 -----END CERTIFICATE-----


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]