[glib-networking] Add tests for construction of alternative trust paths



commit 73f8da32b47295548dcf299c276edb502544fe6c
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Sat Aug 29 19:24:59 2015 -0500

    Add tests for construction of alternative trust paths
    
    https://bugzilla.gnome.org/show_bug.cgi?id=750457

 tls/tests/connection.c                      |  139 +++++++++++++++++++++++++++
 tls/tests/files/ca-alternative.pem          |   24 +++++
 tls/tests/files/ca-key.pem                  |   26 +++---
 tls/tests/files/ca-roots-bad.pem            |   28 +++---
 tls/tests/files/ca-roots.pem                |   28 +++---
 tls/tests/files/ca.pem                      |   28 +++---
 tls/tests/files/chain.pem                   |   60 ++++++------
 tls/tests/files/client-and-key.pem          |   76 +++++++-------
 tls/tests/files/client-future.pem           |   22 ++--
 tls/tests/files/client-key.pem              |   50 +++++-----
 tls/tests/files/client-past.pem             |   22 ++--
 tls/tests/files/client.pem                  |   26 +++---
 tls/tests/files/create-files.sh             |   22 ++++-
 tls/tests/files/intermediate-ca-csr.pem     |   12 +-
 tls/tests/files/intermediate-ca-key.pem     |   14 ++--
 tls/tests/files/intermediate-ca.pem         |   22 ++--
 tls/tests/files/non-ca.pem                  |   98 ++++++++++----------
 tls/tests/files/old-ca-key.pem              |   15 +++
 tls/tests/files/old-ca.pem                  |   24 +++++
 tls/tests/files/root-ca-csr.pem             |   14 +++
 tls/tests/files/server-and-key.pem          |   30 +++---
 tls/tests/files/server-intermediate-csr.pem |    8 +-
 tls/tests/files/server-intermediate-key.pem |   14 ++--
 tls/tests/files/server-intermediate.pem     |   10 +-
 tls/tests/files/server-key.der              |  Bin 317 -> 319 bytes
 tls/tests/files/server-key.pem              |   14 ++--
 tls/tests/files/server-self.pem             |   12 +-
 tls/tests/files/server.der                  |  Bin 571 -> 571 bytes
 tls/tests/files/server.pem                  |   16 ++--
 tls/tests/files/ssl/ca.conf                 |    2 +-
 tls/tests/files/ssl/old-ca.conf             |   31 ++++++
 31 files changed, 577 insertions(+), 310 deletions(-)
---
diff --git a/tls/tests/connection.c b/tls/tests/connection.c
index 766401c..60af5f6 100644
--- a/tls/tests/connection.c
+++ b/tls/tests/connection.c
@@ -765,6 +765,141 @@ test_verified_unordered_chain (TestConnection *test,
 }
 
 static void
+test_verified_chain_with_alternative_ca_cert (TestConnection *test,
+                                             gconstpointer   data)
+{
+  GTlsBackend *backend;
+  GTlsCertificate *server_cert;
+  GTlsCertificate *intermediate_cert;
+  GTlsCertificate *root_cert;
+  char *cert_data = NULL;
+  char *key_data = NULL;
+  GError *error = NULL;
+
+  backend = g_tls_backend_get_default ();
+
+  /* This "root" cert is issued by a CA that is not in the trust store. So it's
+   * not really a root, but it has the same public key as a cert in the trust
+   * store. If the client insists on a traditional chain of trust, this will
+   * fail, since the issuer is untrusted. */
+  root_cert = g_tls_certificate_new_from_file (tls_test_file_path ("ca-alternative.pem"), &error);
+  g_assert_no_error (error);
+  g_assert (root_cert);
+
+  /* Prepare the intermediate cert. Modern TLS libraries are expected to notice
+   * that it is signed by the same public key as a certificate in the root
+   * store, and accept the certificate, ignoring the untrusted "root" sent next
+   * in the chain, which servers send for compatibility with clients that don't
+   * have the new CA cert in the trust store yet. (In this scenario, the old
+   * client still trusts the old CA cert.) */
+  g_file_get_contents (tls_test_file_path ("intermediate-ca.pem"),
+                      &cert_data, NULL, &error);
+  g_assert_no_error (error);
+  g_assert (cert_data);
+
+  intermediate_cert = g_initable_new (g_tls_backend_get_certificate_type (backend),
+                                     NULL, &error,
+                                     "issuer", root_cert,
+                                     "certificate-pem", cert_data,
+                                     NULL);
+  g_assert_no_error (error);
+  g_assert (intermediate_cert);
+
+  /* Prepare the server cert. */
+  g_clear_pointer (&cert_data, g_free);
+  g_file_get_contents (tls_test_file_path ("server-intermediate.pem"),
+                      &cert_data, NULL, &error);
+  g_assert_no_error (error);
+  g_assert (cert_data);
+
+  g_file_get_contents (tls_test_file_path ("server-intermediate-key.pem"),
+                      &key_data, NULL, &error);
+  g_assert_no_error (error);
+  g_assert (key_data);
+
+  server_cert = g_initable_new (g_tls_backend_get_certificate_type (backend),
+                               NULL, &error,
+                                "issuer", intermediate_cert,
+                                "certificate-pem", cert_data,
+                                "private-key-pem", key_data,
+                                NULL);
+  g_assert_no_error (error);
+  g_assert (server_cert);
+
+  g_object_unref (intermediate_cert);
+  g_object_unref (root_cert);
+  g_free (cert_data);
+  g_free (key_data);
+
+  test->server_certificate = server_cert;
+  test_verified_connection (test, data);
+}
+
+static void
+test_invalid_chain_with_alternative_ca_cert (TestConnection *test,
+                                            gconstpointer   data)
+{
+  GTlsBackend *backend;
+  GTlsCertificate *server_cert;
+  GTlsCertificate *root_cert;
+  GIOStream *connection;
+  char *cert_data = NULL;
+  char *key_data = NULL;
+  GError *error = NULL;
+
+  backend = g_tls_backend_get_default ();
+
+  /* This certificate has the same public key as a certificate in the root store. */
+  root_cert = g_tls_certificate_new_from_file (tls_test_file_path ("ca-alternative.pem"), &error);
+  g_assert_no_error (error);
+  g_assert (root_cert);
+
+  /* The intermediate cert is not sent. The chain should be rejected, since without intermediate.pem
+   * there is no proof that ca-alternative.pem signed server-intermediate.pem. */
+  g_file_get_contents (tls_test_file_path ("server-intermediate.pem"),
+                      &cert_data, NULL, &error);
+  g_assert_no_error (error);
+  g_assert (cert_data);
+
+  g_file_get_contents (tls_test_file_path ("server-intermediate-key.pem"),
+                      &key_data, NULL, &error);
+  g_assert_no_error (error);
+  g_assert (key_data);
+
+  server_cert = g_initable_new (g_tls_backend_get_certificate_type (backend),
+                               NULL, &error,
+                                "issuer", root_cert,
+                                "certificate-pem", cert_data,
+                                "private-key-pem", key_data,
+                                NULL);
+  g_assert_no_error (error);
+  g_assert (server_cert);
+
+  g_object_unref (root_cert);
+  g_free (cert_data);
+  g_free (key_data);
+
+  test->server_certificate = server_cert;
+  connection = start_async_server_and_connect_to_it (test, G_TLS_AUTHENTICATION_NONE, TRUE);
+  test->client_connection = g_tls_client_connection_new (connection, test->identity, &error);
+  g_assert_no_error (error);
+  g_assert (test->client_connection);
+  g_object_unref (connection);
+
+  g_tls_connection_set_database (G_TLS_CONNECTION (test->client_connection), test->database);
+
+  /* Make sure this test doesn't expire. */
+  g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (test->client_connection),
+                                                G_TLS_CERTIFICATE_VALIDATE_ALL & ~G_TLS_CERTIFICATE_EXPIRED);
+
+  read_test_data_async (test);
+  g_main_loop_run (test->loop);
+
+  g_assert_error (test->read_error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
+  g_assert_no_error (test->server_error);
+}
+
+static void
 on_notify_accepted_cas (GObject *obj,
                         GParamSpec *spec,
                         gpointer user_data)
@@ -1762,6 +1897,10 @@ main (int   argc,
              setup_connection, test_verified_chain_with_duplicate_server_cert, teardown_connection);
   g_test_add ("/tls/connection/verified-unordered-chain", TestConnection, NULL,
              setup_connection, test_verified_unordered_chain, teardown_connection);
+  g_test_add ("/tls/connection/verified-chain-with-alternative-ca-cert", TestConnection, NULL,
+             setup_connection, test_verified_chain_with_alternative_ca_cert, teardown_connection);
+  g_test_add ("/tls/connection/invalid-chain-with-alternative-ca-cert", TestConnection, NULL,
+             setup_connection, test_invalid_chain_with_alternative_ca_cert, teardown_connection);
   g_test_add ("/tls/connection/client-auth", TestConnection, NULL,
               setup_connection, test_client_auth_connection, teardown_connection);
   g_test_add ("/tls/connection/client-auth-rehandshake", TestConnection, NULL,
diff --git a/tls/tests/files/ca-alternative.pem b/tls/tests/files/ca-alternative.pem
new file mode 100644
index 0000000..695fc37
--- /dev/null
+++ b/tls/tests/files/ca-alternative.pem
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIID8DCCA1mgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnzETMBEGCgmSJomT8ixk
+ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxLDAqBgNVBAsMI09sZCBV
+bnRydXN0ZWQgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYDVQQDDBlvbmNlLndh
+cy5hLmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNv
+bTAeFw0xNTA4MzAwMDIyMzFaFw00NTA4MjIwMDIyMzFaMIGGMRMwEQYKCZImiZPy
+LGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UECwwVQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5jYS5leGFtcGxlLmNvbTEdMBsG
+CSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+MIGJAoGBAL2qSsuOcbcaJ9+uvbKan/v5186d6u1i5kIk3dPu4etHegHpDG5baq+C
+IUdY1AyCcz6OL61J1lbB3Ksk6eyo9woKHHto0BJ9IVEb7K7pT+gau7QeS15MUK5m
+NfueUfIdXTCNpHez6Nzt4H57bgqJJrJnHnondOuEalEFgDtOBqilAgMBAAGjggFR
+MIIBTTAdBgNVHQ4EFgQUmAbQgRwBOJuIai3NygAtGQ9xlbEwgdQGA1UdIwSBzDCB
+yYAULu6rFocDkpwOJyAjyQrCxuefLW+hgaWkgaIwgZ8xEzARBgoJkiaJk/IsZAEZ
+FgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMSwwKgYDVQQLDCNPbGQgVW50
+cnVzdGVkIENlcnRpZmljYXRlIEF1dGhvcml0eTEiMCAGA1UEAwwZb25jZS53YXMu
+YS5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb22C
+CQD9kIwlfKYqXDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAZBgNV
+HREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFtcGxlLmNv
+bTANBgkqhkiG9w0BAQUFAAOBgQA9CNpCI5kLKsccy73SZWyp2fEwMDrZHMJvChdv
+1CWaE1BYlLQWtr1bSy2aEPZujMVzUW5XtoRlLWpTBxUB7o888u7FJmFVhEv4Apq2
+DZ8yDlIy4yHFOShIQfmfdeDzYSoxXgoUINqxQDpfKXrQCB9OqQjI4yrJkw+lO7fs
+eIIk5w==
+-----END CERTIFICATE-----
diff --git a/tls/tests/files/ca-key.pem b/tls/tests/files/ca-key.pem
index faa6865..306604e 100644
--- a/tls/tests/files/ca-key.pem
+++ b/tls/tests/files/ca-key.pem
@@ -1,15 +1,15 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQC2LMvQzqrlIaAxnZ3CuzzbS0s0v3Ql/yR7N9ozeH2itLFMKpJw
-cz8v+wXV21IlbGRDYSzL8jwW98NtVZhCkHYo+zcUnZGuw1UZs1kcPx4BzHnb/qJO
-nlkJZ5DiH8WlLrfirJvNeuncTgh/k0QM2L47BuhSYF6rFKKEHBFABgKfowIDAQAB
-AoGBAJ7ylN5aA5ep8Bh6OjS2o1F+715VkWS5qb3srHBuN8gnue4H0v9UPpSBg8Tk
-+FZ4rT5w4eIMN0ue359cqF2jp8N+eotFdlZO9togUG68wUYAxsAccYDqRzRuFXed
-9JM+1tbZQ/dvLBSb5Ja058Az7wSsyRH9DhiVZ+mSGDbjOI+JAkEA5M2BUsP0EKel
-KMlOzbbgHjus9gFd8yWa88r2acWAAaYMNsj/HThODIsWHeY6EIzRD1F+mZBKBnCB
-nCS2kqFSbwJBAMvUZwcoYX8jMh12oezzTtFRIYVue4rKkVX4WeSNOneEfIexKaf3
-A1WSqDuf2rUtnDfO/gxHsb8yPh/gCF89kA0CQQDDX+BgZkdQuXbEnzGVY+V4q4iE
-AKLS73ejWdqUcztdLQcc+QEvWFb9Sv81xNQsMbKLHBG424b6fLOQO6FTEEItAkAg
-NKBOxjeZcgMyGpN9L/htJEeKoKlOhbEvBz2U2ie5yKowenKdgm75b2G7ggd5hwpe
-2wrS/+T608JzIN/RxJVlAkEAi5SWYtrSncRCK08frmjPj11ZWZi5O/fVDSuHmNNf
-AQhPvBTwTMLBo15tBs2HMnKRObq1ElllBJ6m7tpkmKse+w==
+MIICXQIBAAKBgQC9qkrLjnG3Giffrr2ymp/7+dfOnertYuZCJN3T7uHrR3oB6Qxu
+W2qvgiFHWNQMgnM+ji+tSdZWwdyrJOnsqPcKChx7aNASfSFRG+yu6U/oGru0Hkte
+TFCuZjX7nlHyHV0wjaR3s+jc7eB+e24KiSayZx56J3TrhGpRBYA7TgaopQIDAQAB
+AoGAY6BlA4HCV9TkZwnJ2VyBdwFpC75F3gYaP1pQL3gGsejsvL4m6n0YkDKBupF9
+aUjIsm5LuvHTJeVVPYz5V3f1syZr4fYYpmwoWjHkb6g55R9iAgmSd29gQwu0OdsP
+EhothysqPMvhWQi2gLHAz14U+EZVH9zKCZ50GW7bTrZoc20CQQD2LkPn6S2HQhPl
+Ks9HmPAsFkd0dKE0zE2IKvgsCiBsfvd4H1u0QO17ZWNR8AK9x16gnrDv0Xjpsw6H
+V9xaMsY7AkEAxTrzZKdaeu1BFDuLdgGuEj5YOUbhXjmldDwvw/xFXPU03MjCVDjo
+4V6MDZJ1HlpwWBCYO+pIyRd5NADXh33+nwJBAPT8d6FbYG6BKJFfd+V1YlVNWpCe
+3CpRwjpnII+bCEdQVu9YrYcFMhAhhqRs6B16QUYwhj4yRFS1VxkDK4srii8CQCdm
+U2D0HZsY8js8eeulAkUatz0Z78OG+Ipzy4b3SlP7mAfTAx8YD02WOZwsecEKiA7P
+odm2P7wMOGYvFN84SDkCQQCYg8rdrLdM1Wx+/k9aiFku1LmyHLZPtq39je4S/EJN
+ibWCMmhysz6cuIKykUYI7DKolQnxu4BWLnn9ff60T1xp
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/ca-roots-bad.pem b/tls/tests/files/ca-roots-bad.pem
index a3844e0..0f8d7cc 100644
--- a/tls/tests/files/ca-roots-bad.pem
+++ b/tls/tests/files/ca-roots-bad.pem
@@ -1,25 +1,25 @@
 -----BEGIN CERTIFICATE-----
-MIIDxjCCAy+gAwIBAgIJAIGL5Lhn5uCIMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
+MIIDxjCCAy+gAwIBAgIJAO+Cui0EIECvMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
 CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UE
 CwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5jYS5leGFtcGxlLmNv
-bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODI5MTc1NzM4
-WhcNNDUwODIxMTc1NzM4WjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
+bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODMwMDAyMjMx
+WhcNNDUwODIyMDAyMjMxWjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
 JomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0
 eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4
-YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2LMvQzqrlIaAx
-nZ3CuzzbS0s0v3Ql/yR7N9ozeH2itLFMKpJwcz8v+wXV21IlbGRDYSzL8jwW98Nt
-VZhCkHYo+zcUnZGuw1UZs1kcPx4BzHnb/qJOnlkJZ5DiH8WlLrfirJvNeuncTgh/
-k0QM2L47BuhSYF6rFKKEHBFABgKfowIDAQABo4IBODCCATQwHQYDVR0OBBYEFH49
-Hkz2s0GYc+159H7h41WHLcfjMIG7BgNVHSMEgbMwgbCAFH49Hkz2s0GYc+159H7h
-41WHLcfjoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
+YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9qkrLjnG3Giff
+rr2ymp/7+dfOnertYuZCJN3T7uHrR3oB6QxuW2qvgiFHWNQMgnM+ji+tSdZWwdyr
+JOnsqPcKChx7aNASfSFRG+yu6U/oGru0HkteTFCuZjX7nlHyHV0wjaR3s+jc7eB+
+e24KiSayZx56J3TrhGpRBYA7TgaopQIDAQABo4IBODCCATQwHQYDVR0OBBYEFJgG
+0IEcATibiGotzcoALRkPcZWxMIG7BgNVHSMEgbMwgbCAFJgG0IEcATibiGotzcoA
+LRkPcZWxoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
 LGQBGRYHRVhBTVBMRTEeMBwGA1UECwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcw
 FQYDVQQDDA5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBs
-ZS5jb22CCQCBi+S4Z+bgiDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+ZS5jb22CCQDvgrotBCBArzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
 BjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFt
-cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQAwL8ZHaqOeyVB1UjKri+k1H3WTUoTI
-o6E4nvMuM1LGWTcwNMRC4M+MH8c6RRpcQFO84BclmnoPHPw7dJ6bJcMqmzt5kub4
-YVu1kbvyWXU3BnHGtlvJ6X18Y2UNkXOWDTFOzbWqPGaO8pG3EZQwpnCFCbulPp6o
-1TVvSugobgLDCA==
+cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQCuwCsxZxXctjLr059fFd94Yb6lDyPr
+Gd9H4luK9G4NNf2QiD94SfYAEy8C3Lw2/VIYf5kuNPJE2+0AOpCJ3pD3id2JC8Qf
+lnIsGHCclrxldY5NX3S/p2T8wsgBdz5wfzDGm1GANdI5M1YrTN0ExebOspXnXGed
+9jx8rdTVQwErTw==
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
diff --git a/tls/tests/files/ca-roots.pem b/tls/tests/files/ca-roots.pem
index d65ba96..435a1da 100644
--- a/tls/tests/files/ca-roots.pem
+++ b/tls/tests/files/ca-roots.pem
@@ -1,27 +1,27 @@
 These are some CA certificates
 
 -----BEGIN CERTIFICATE-----
-MIIDxjCCAy+gAwIBAgIJAIGL5Lhn5uCIMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
+MIIDxjCCAy+gAwIBAgIJAO+Cui0EIECvMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
 CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UE
 CwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5jYS5leGFtcGxlLmNv
-bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODI5MTc1NzM4
-WhcNNDUwODIxMTc1NzM4WjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
+bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODMwMDAyMjMx
+WhcNNDUwODIyMDAyMjMxWjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
 JomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0
 eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4
-YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2LMvQzqrlIaAx
-nZ3CuzzbS0s0v3Ql/yR7N9ozeH2itLFMKpJwcz8v+wXV21IlbGRDYSzL8jwW98Nt
-VZhCkHYo+zcUnZGuw1UZs1kcPx4BzHnb/qJOnlkJZ5DiH8WlLrfirJvNeuncTgh/
-k0QM2L47BuhSYF6rFKKEHBFABgKfowIDAQABo4IBODCCATQwHQYDVR0OBBYEFH49
-Hkz2s0GYc+159H7h41WHLcfjMIG7BgNVHSMEgbMwgbCAFH49Hkz2s0GYc+159H7h
-41WHLcfjoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
+YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9qkrLjnG3Giff
+rr2ymp/7+dfOnertYuZCJN3T7uHrR3oB6QxuW2qvgiFHWNQMgnM+ji+tSdZWwdyr
+JOnsqPcKChx7aNASfSFRG+yu6U/oGru0HkteTFCuZjX7nlHyHV0wjaR3s+jc7eB+
+e24KiSayZx56J3TrhGpRBYA7TgaopQIDAQABo4IBODCCATQwHQYDVR0OBBYEFJgG
+0IEcATibiGotzcoALRkPcZWxMIG7BgNVHSMEgbMwgbCAFJgG0IEcATibiGotzcoA
+LRkPcZWxoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
 LGQBGRYHRVhBTVBMRTEeMBwGA1UECwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcw
 FQYDVQQDDA5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBs
-ZS5jb22CCQCBi+S4Z+bgiDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+ZS5jb22CCQDvgrotBCBArzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
 BjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFt
-cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQAwL8ZHaqOeyVB1UjKri+k1H3WTUoTI
-o6E4nvMuM1LGWTcwNMRC4M+MH8c6RRpcQFO84BclmnoPHPw7dJ6bJcMqmzt5kub4
-YVu1kbvyWXU3BnHGtlvJ6X18Y2UNkXOWDTFOzbWqPGaO8pG3EZQwpnCFCbulPp6o
-1TVvSugobgLDCA==
+cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQCuwCsxZxXctjLr059fFd94Yb6lDyPr
+Gd9H4luK9G4NNf2QiD94SfYAEy8C3Lw2/VIYf5kuNPJE2+0AOpCJ3pD3id2JC8Qf
+lnIsGHCclrxldY5NX3S/p2T8wsgBdz5wfzDGm1GANdI5M1YrTN0ExebOspXnXGed
+9jx8rdTVQwErTw==
 -----END CERTIFICATE-----
 
 GLib shouldn't care about this comment
diff --git a/tls/tests/files/ca.pem b/tls/tests/files/ca.pem
index 780fbdf..be5d6fc 100644
--- a/tls/tests/files/ca.pem
+++ b/tls/tests/files/ca.pem
@@ -1,23 +1,23 @@
 -----BEGIN CERTIFICATE-----
-MIIDxjCCAy+gAwIBAgIJAIGL5Lhn5uCIMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
+MIIDxjCCAy+gAwIBAgIJAO+Cui0EIECvMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
 CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UE
 CwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5jYS5leGFtcGxlLmNv
-bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODI5MTc1NzM4
-WhcNNDUwODIxMTc1NzM4WjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
+bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODMwMDAyMjMx
+WhcNNDUwODIyMDAyMjMxWjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
 JomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0
 eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4
-YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2LMvQzqrlIaAx
-nZ3CuzzbS0s0v3Ql/yR7N9ozeH2itLFMKpJwcz8v+wXV21IlbGRDYSzL8jwW98Nt
-VZhCkHYo+zcUnZGuw1UZs1kcPx4BzHnb/qJOnlkJZ5DiH8WlLrfirJvNeuncTgh/
-k0QM2L47BuhSYF6rFKKEHBFABgKfowIDAQABo4IBODCCATQwHQYDVR0OBBYEFH49
-Hkz2s0GYc+159H7h41WHLcfjMIG7BgNVHSMEgbMwgbCAFH49Hkz2s0GYc+159H7h
-41WHLcfjoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
+YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9qkrLjnG3Giff
+rr2ymp/7+dfOnertYuZCJN3T7uHrR3oB6QxuW2qvgiFHWNQMgnM+ji+tSdZWwdyr
+JOnsqPcKChx7aNASfSFRG+yu6U/oGru0HkteTFCuZjX7nlHyHV0wjaR3s+jc7eB+
+e24KiSayZx56J3TrhGpRBYA7TgaopQIDAQABo4IBODCCATQwHQYDVR0OBBYEFJgG
+0IEcATibiGotzcoALRkPcZWxMIG7BgNVHSMEgbMwgbCAFJgG0IEcATibiGotzcoA
+LRkPcZWxoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
 LGQBGRYHRVhBTVBMRTEeMBwGA1UECwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcw
 FQYDVQQDDA5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBs
-ZS5jb22CCQCBi+S4Z+bgiDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+ZS5jb22CCQDvgrotBCBArzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
 BjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFt
-cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQAwL8ZHaqOeyVB1UjKri+k1H3WTUoTI
-o6E4nvMuM1LGWTcwNMRC4M+MH8c6RRpcQFO84BclmnoPHPw7dJ6bJcMqmzt5kub4
-YVu1kbvyWXU3BnHGtlvJ6X18Y2UNkXOWDTFOzbWqPGaO8pG3EZQwpnCFCbulPp6o
-1TVvSugobgLDCA==
+cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQCuwCsxZxXctjLr059fFd94Yb6lDyPr
+Gd9H4luK9G4NNf2QiD94SfYAEy8C3Lw2/VIYf5kuNPJE2+0AOpCJ3pD3id2JC8Qf
+lnIsGHCclrxldY5NX3S/p2T8wsgBdz5wfzDGm1GANdI5M1YrTN0ExebOspXnXGed
+9jx8rdTVQwErTw==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/chain.pem b/tls/tests/files/chain.pem
index 36ef91e..9fedf90 100644
--- a/tls/tests/files/chain.pem
+++ b/tls/tests/files/chain.pem
@@ -3,57 +3,57 @@ MIICHTCCAcegAwIBAgIBATANBgkqhkiG9w0BAQUFADCBrTETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxKzApBgNVBAsMIkludGVy
 bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxJDAiBgNVBAMMG2ludGVybWVk
 aWF0ZS1jYS5leGFtcGxlLmNvbTEqMCgGCSqGSIb3DQEJARYbaW50ZXJtZWRpYXRl
-LWNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTc0NFoXDTQwMDgyMjE3NTc0NFow
+LWNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzOVoXDTQwMDgyMzAwMjIzOVow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
-MEgCQQDEmAwDjC2Wsp7ccX96e32yC4W4NWWJbBTwR4jWVaDjC8IfBgRMx6A4GxlY
-rp7P3O5CFskc6bJ/2J60b2VIqrYRAgMBAAGjMzAxMAkGA1UdEwQCMAAwEwYDVR0l
+MEgCQQDNj0xKKyi/+5iG2FTs/lOgwKPorRg69o4zsmMcVOfvwI1IN4FRSsPpqaJN
+urHcGNqvGoj07hNBdWxdoixF4pmnAgMBAAGjMzAxMAkGA1UdEwQCMAAwEwYDVR0l
 BAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEwKgBFjANBgkqhkiG9w0BAQUFAANB
-AEQKnmS9dU91lbbea6KSNPhEAkgFcWjqYsj48VbMsIHQvLrz4Hj9ZjjySC2iu+5W
-6aKuVqhz5+lWRbqraV6Tkdg=
+ALl1WO7IZYOvPwhyQ4EpCLjSsTuGBcfbWFtw4XiQueZ8TILHcZARH4nW1tKoVWzc
+rIGhqRjNMWRmaH1wgSCGRiE=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIDrjCCAxegAwIBAgIBBTANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
+MIIDrjCCAxegAwIBAgIBBjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTc0NFoXDTQwMDgy
-MjE3NTc0NFowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzOVoXDTQwMDgy
+MzAwMjIzOVowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
 FgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUgQXV0
 aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20xKjAo
 BgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTBcMA0GCSqG
-SIb3DQEBAQUAA0sAMEgCQQCzMihGRvxXEZeJ3xKtjEULUnjXOwS+8mRU2vSLRji8
-2RnOXZQLAaTY5YDauG+i1v4CPbMkCth91U0x6yf+IVslAgMBAAGjggFFMIIBQTAd
-BgNVHQ4EFgQUE6Ks6NppSIyjISXsqPdmhfycgBUwgbsGA1UdIwSBszCBsIAUfj0e
-TPazQZhz7Xn0fuHjVYctx+OhgYykgYkwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00x
+SIb3DQEBAQUAA0sAMEgCQQDRMidrtJAZ27tI9gA3hhIP7S5EtfjhMHUi8mDNL2Ju
+V7nMDGoAEUfHV3x/+Eb/TeymvBiRzlUD6YGQRK+2C8+LAgMBAAGjggFFMIIBQTAd
+BgNVHQ4EFgQUXfcpYB1wgmZiB/WN7EW342wlZwEwgbsGA1UdIwSBszCBsIAUmAbQ
+gRwBOJuIai3NygAtGQ9xlbGhgYykgYkwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00x
 FzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBB
 dXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkB
-Fg5jYUBleGFtcGxlLmNvbYIJAIGL5Lhn5uCIMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+Fg5jYUBleGFtcGxlLmNvbYIJAO+Cui0EIECvMA8GA1UdEwEB/wQFMAMBAf8wDgYD
 VR0PAQH/BAQDAgEGMCYGA1UdEQQfMB2BG2ludGVybWVkaWF0ZS1jYUBleGFtcGxl
 LmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQUFAAOB
-gQBIiQAwaTfID8rK5Js3W2MF2TKoUsvNCZuZyDxitUcqBZcVCPR178kTXHbaUeb5
-lUQAW0o/2IgdzfkFoC6fiCMRhECSPj0wGlFDDdxVcLSpwo9qyDDXJc4LOq5OQP75
-ZQd00/f8nEJcsJSjjkRhcAt5TiillXfD8Tmm5iKkTfxHLA==
+gQAmXVdwAZalZGtXBkdICHaWyVRmgCFRZfzVbGBOkeW+TEBiMgG+XrwlMQs5yyf/
+T8Mmw8TcqBJYdQhqcctbgFcSxejVAL7DnEfFcvH6acXy0K9l48pKAnYgcHstOAX2
+Fb+rSpmMDXgWuhKNudJyoOVQ/5H9LJyg6JYqoG5jqS9iQg==
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIDxjCCAy+gAwIBAgIJAIGL5Lhn5uCIMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
+MIIDxjCCAy+gAwIBAgIJAO+Cui0EIECvMA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK
 CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UE
 CwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDDA5jYS5leGFtcGxlLmNv
-bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODI5MTc1NzM4
-WhcNNDUwODIxMTc1NzM4WjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
+bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMTUwODMwMDAyMjMx
+WhcNNDUwODIyMDAyMjMxWjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS
 JomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRpZmljYXRlIEF1dGhvcml0
 eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4
-YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2LMvQzqrlIaAx
-nZ3CuzzbS0s0v3Ql/yR7N9ozeH2itLFMKpJwcz8v+wXV21IlbGRDYSzL8jwW98Nt
-VZhCkHYo+zcUnZGuw1UZs1kcPx4BzHnb/qJOnlkJZ5DiH8WlLrfirJvNeuncTgh/
-k0QM2L47BuhSYF6rFKKEHBFABgKfowIDAQABo4IBODCCATQwHQYDVR0OBBYEFH49
-Hkz2s0GYc+159H7h41WHLcfjMIG7BgNVHSMEgbMwgbCAFH49Hkz2s0GYc+159H7h
-41WHLcfjoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
+YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9qkrLjnG3Giff
+rr2ymp/7+dfOnertYuZCJN3T7uHrR3oB6QxuW2qvgiFHWNQMgnM+ji+tSdZWwdyr
+JOnsqPcKChx7aNASfSFRG+yu6U/oGru0HkteTFCuZjX7nlHyHV0wjaR3s+jc7eB+
+e24KiSayZx56J3TrhGpRBYA7TgaopQIDAQABo4IBODCCATQwHQYDVR0OBBYEFJgG
+0IEcATibiGotzcoALRkPcZWxMIG7BgNVHSMEgbMwgbCAFJgG0IEcATibiGotzcoA
+LRkPcZWxoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy
 LGQBGRYHRVhBTVBMRTEeMBwGA1UECwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcw
 FQYDVQQDDA5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBs
-ZS5jb22CCQCBi+S4Z+bgiDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+ZS5jb22CCQDvgrotBCBArzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
 BjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFt
-cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQAwL8ZHaqOeyVB1UjKri+k1H3WTUoTI
-o6E4nvMuM1LGWTcwNMRC4M+MH8c6RRpcQFO84BclmnoPHPw7dJ6bJcMqmzt5kub4
-YVu1kbvyWXU3BnHGtlvJ6X18Y2UNkXOWDTFOzbWqPGaO8pG3EZQwpnCFCbulPp6o
-1TVvSugobgLDCA==
+cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQCuwCsxZxXctjLr059fFd94Yb6lDyPr
+Gd9H4luK9G4NNf2QiD94SfYAEy8C3Lw2/VIYf5kuNPJE2+0AOpCJ3pD3id2JC8Qf
+lnIsGHCclrxldY5NX3S/p2T8wsgBdz5wfzDGm1GANdI5M1YrTN0ExebOspXnXGed
+9jx8rdTVQwErTw==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client-and-key.pem b/tls/tests/files/client-and-key.pem
index e64050c..86a405d 100644
--- a/tls/tests/files/client-and-key.pem
+++ b/tls/tests/files/client-and-key.pem
@@ -1,45 +1,45 @@
 -----BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQIwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC3DCCAkUCAQMwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xNTA4MjkxNzU3MzhaFw00MDA4MjIxNzU3
-MzhaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xNTA4MzAwMDIyMzJaFw00MDA4MjMwMDIy
+MzJaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALG58Q0krS7u
-pSgrpAjLGua2XZemo0NGoT7/ZSa4eWu4TTfJ4J6+4h1RE2pHpRQjYPuGjZ/qp7OM
-SFw0sbVoyC2Vkkmap2++qwOfvrZ9cRQIy9LVjzUSQBA2TVsqoFoptRsJH5V2NZSk
-Em+F/ZW4LJkWsi8yecBehVM/sZNyg9JP6kOL1WhW/+Aeyo5fGYSt0vgg1P3VwbAm
-9//76/5uUSXfxpges+4QodYWGqi0pDIxBpgwoMzwq+pG+UhBBpP0cN04/oZ/W1nz
-Lhr/maAQIdHJOxBwEWTBqgXqjavtcbrpQMBKHwRr6tqlRVDs4SP2CeSWMnLwfl59
-xVH9WB7TplECAwEAATANBgkqhkiG9w0BAQUFAAOBgQACBd12RB/ViGCuDc5mCzrF
-rafOhxJ3RVmZ5z+PU2qOTZW8K56k0iEP0oIVAcYELYugwTWBGJ2OT+JcawBbO+20
-qSEGWnmiqi/dRt8NXxDyz4kQuhFJboyPQfgrMpsc40/ZSvar/TdzK5EflAXInfgE
-nbhTcJ+r2qG7lTDnin1c0w==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOKRyGJ1ScDr
+yD07f0vAvjNU/GBvZEbeTAan3ZlYvgcFuaHbi+Svay+SaJmwXaHI4zgOF9aNl4zH
+IHUWAg+Y44lMPptNrffec4r2C+8gnmjot2ot5GrAfLrdR7xmKkqFx4Qr02sRPgy8
+AvSlbyW1qiW0/DKwb/JMsuejzUyMIB/T6UxPzUq3nrM18ltaSrWd6XjFRVep6soM
+ciUISr+eF0n0mhlonxDiegKXAbIXvKWTTAPIJADoeyPiX11tGecSbWBLzHWDK0VM
+85aEd3axkPdPj6RwQEa7FUTyLrU1Nj6k8Pl7NVyNWXbg5IKEMZB6V5pXESasV6nS
+i7vW4JYpA+ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA53KGbz0v7blt33ht62Ez9
+onmLHkegWW39OgRfNPircb9+pIOtkuksPr1yE2iBmWuGPg0OwNjqHROeOodoN1xC
+vSt1kUshtpPXiK8AuYmkv53FThyEEai8kpsGp6mLEY2ISaYRD0O6B6PyV2dT/nE2
+CWob7aQ/SlFQ+txnwJtOnA==
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+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
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/client-future.pem b/tls/tests/files/client-future.pem
index a90ba6b..bf08f8c 100644
--- a/tls/tests/files/client-future.pem
+++ b/tls/tests/files/client-future.pem
@@ -1,18 +1,18 @@
 -----BEGIN CERTIFICATE-----
-MIIC4DCCAkkCAQQwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC4DCCAkkCAQUwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAiGA8yMDYwMDcxNzIzMDAwMFoYDzIwNjEwNzE3
 MjMwMDAwWjBiMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEPMA0GA1UEAwwGQ2xpZW50MSEwHwYJKoZIhvcNAQkBFhJjbGllbnRA
-ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxufEN
-JK0u7qUoK6QIyxrmtl2XpqNDRqE+/2UmuHlruE03yeCevuIdURNqR6UUI2D7ho2f
-6qezjEhcNLG1aMgtlZJJmqdvvqsDn762fXEUCMvS1Y81EkAQNk1bKqBaKbUbCR+V
-djWUpBJvhf2VuCyZFrIvMnnAXoVTP7GTcoPST+pDi9VoVv/gHsqOXxmErdL4INT9
-1cGwJvf/++v+blEl38aYHrPuEKHWFhqotKQyMQaYMKDM8KvqRvlIQQaT9HDdOP6G
-f1tZ8y4a/5mgECHRyTsQcBFkwaoF6o2r7XG66UDASh8Ea+rapUVQ7OEj9gnkljJy
-8H5efcVR/Vge06ZRAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAE1HY14EXO9bAK8rV
-MZ5Su+Ow65lO777o1tn0Tc6GMftmLJPOHzOnUE741FH04oR7cZ8cGgKZOVDMQXAt
-P6b9r9CpTr9KA8SUqVus1KHxfrVMTWwHSUwRlxtz60ACPZ9jkBZY/Y+wx412+VZc
-OQYvmx7aWpbQ9Lva5Y+Zam5BARw=
+ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDikchi
+dUnA68g9O39LwL4zVPxgb2RG3kwGp92ZWL4HBbmh24vkr2svkmiZsF2hyOM4DhfW
+jZeMxyB1FgIPmOOJTD6bTa333nOK9gvvIJ5o6LdqLeRqwHy63Ue8ZipKhceEK9Nr
+ET4MvAL0pW8ltaoltPwysG/yTLLno81MjCAf0+lMT81Kt56zNfJbWkq1nel4xUVX
+qerKDHIlCEq/nhdJ9JoZaJ8Q4noClwGyF7ylk0wDyCQA6Hsj4l9dbRnnEm1gS8x1
+gytFTPOWhHd2sZD3T4+kcEBGuxVE8i61NTY+pPD5ezVcjVl24OSChDGQeleaVxEm
+rFep0ou71uCWKQPhAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAaL1TVP7GBU/+Ujxm
+s1d6XlsczXcRTsK2SKPc7Ke8K30o7E85m5gTXtDVVdk2aCWFsrmqCW+sKSAl3TLr
+nWWlvI0k2Y3Ei81W1xkCSA8rX95K8m1FaVXz1ml5J8TjemHd/j+btzp4qjnF/S2M
+cbRhKzUoJD6FBuUq7OXOO+4T30c=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client-key.pem b/tls/tests/files/client-key.pem
index 57389c9..a9740dc 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 ab312f8..f2e29e1 100644
--- a/tls/tests/files/client-past.pem
+++ b/tls/tests/files/client-past.pem
@@ -1,18 +1,18 @@
 -----BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQMwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC3DCCAkUCAQQwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDA3MTcyMzAwMDBaFw0wMTA3MTcyMzAw
 MDBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALG58Q0krS7u
-pSgrpAjLGua2XZemo0NGoT7/ZSa4eWu4TTfJ4J6+4h1RE2pHpRQjYPuGjZ/qp7OM
-SFw0sbVoyC2Vkkmap2++qwOfvrZ9cRQIy9LVjzUSQBA2TVsqoFoptRsJH5V2NZSk
-Em+F/ZW4LJkWsi8yecBehVM/sZNyg9JP6kOL1WhW/+Aeyo5fGYSt0vgg1P3VwbAm
-9//76/5uUSXfxpges+4QodYWGqi0pDIxBpgwoMzwq+pG+UhBBpP0cN04/oZ/W1nz
-Lhr/maAQIdHJOxBwEWTBqgXqjavtcbrpQMBKHwRr6tqlRVDs4SP2CeSWMnLwfl59
-xVH9WB7TplECAwEAATANBgkqhkiG9w0BAQUFAAOBgQAGlVz96Zm2uQLzssuphCuY
-9Pn2/dDIMxr3/1/syHc6zS8dMO0GdEPVus6WCncMx87+kb/yHtLUg92sNIMylHbr
-Dr01nFY+1dXUa6V9cFkDD83bv8LccHABDBJNZ2HkmTtueVLx/eJzxUBoY9uTbW7x
-l6gDnG+Hfl95qzvSAM5LnQ==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOKRyGJ1ScDr
+yD07f0vAvjNU/GBvZEbeTAan3ZlYvgcFuaHbi+Svay+SaJmwXaHI4zgOF9aNl4zH
+IHUWAg+Y44lMPptNrffec4r2C+8gnmjot2ot5GrAfLrdR7xmKkqFx4Qr02sRPgy8
+AvSlbyW1qiW0/DKwb/JMsuejzUyMIB/T6UxPzUq3nrM18ltaSrWd6XjFRVep6soM
+ciUISr+eF0n0mhlonxDiegKXAbIXvKWTTAPIJADoeyPiX11tGecSbWBLzHWDK0VM
+85aEd3axkPdPj6RwQEa7FUTyLrU1Nj6k8Pl7NVyNWXbg5IKEMZB6V5pXESasV6nS
+i7vW4JYpA+ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQAXsez9MUY7+zHe4CevgYHk
+VUGFl2BV/cncVO5M42qlYvGhzPNb3VSXlrIk0CZP/A1UrB+7+vMFQCccoXE2Yb//
+hOcumZkz4OJjz+qgsWlksaUjCnpGPIfsrW3jYBRKvL1iYo5Si1aIiQ+ej93a2Bsg
+Iy/P6Hx0b2bZ5H6v/y6bqw==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client.pem b/tls/tests/files/client.pem
index 219ab62..75fae57 100644
--- a/tls/tests/files/client.pem
+++ b/tls/tests/files/client.pem
@@ -1,18 +1,18 @@
 -----BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQIwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC3DCCAkUCAQMwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xNTA4MjkxNzU3MzhaFw00MDA4MjIxNzU3
-MzhaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xNTA4MzAwMDIyMzJaFw00MDA4MjMwMDIy
+MzJaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALG58Q0krS7u
-pSgrpAjLGua2XZemo0NGoT7/ZSa4eWu4TTfJ4J6+4h1RE2pHpRQjYPuGjZ/qp7OM
-SFw0sbVoyC2Vkkmap2++qwOfvrZ9cRQIy9LVjzUSQBA2TVsqoFoptRsJH5V2NZSk
-Em+F/ZW4LJkWsi8yecBehVM/sZNyg9JP6kOL1WhW/+Aeyo5fGYSt0vgg1P3VwbAm
-9//76/5uUSXfxpges+4QodYWGqi0pDIxBpgwoMzwq+pG+UhBBpP0cN04/oZ/W1nz
-Lhr/maAQIdHJOxBwEWTBqgXqjavtcbrpQMBKHwRr6tqlRVDs4SP2CeSWMnLwfl59
-xVH9WB7TplECAwEAATANBgkqhkiG9w0BAQUFAAOBgQACBd12RB/ViGCuDc5mCzrF
-rafOhxJ3RVmZ5z+PU2qOTZW8K56k0iEP0oIVAcYELYugwTWBGJ2OT+JcawBbO+20
-qSEGWnmiqi/dRt8NXxDyz4kQuhFJboyPQfgrMpsc40/ZSvar/TdzK5EflAXInfgE
-nbhTcJ+r2qG7lTDnin1c0w==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOKRyGJ1ScDr
+yD07f0vAvjNU/GBvZEbeTAan3ZlYvgcFuaHbi+Svay+SaJmwXaHI4zgOF9aNl4zH
+IHUWAg+Y44lMPptNrffec4r2C+8gnmjot2ot5GrAfLrdR7xmKkqFx4Qr02sRPgy8
+AvSlbyW1qiW0/DKwb/JMsuejzUyMIB/T6UxPzUq3nrM18ltaSrWd6XjFRVep6soM
+ciUISr+eF0n0mhlonxDiegKXAbIXvKWTTAPIJADoeyPiX11tGecSbWBLzHWDK0VM
+85aEd3axkPdPj6RwQEa7FUTyLrU1Nj6k8Pl7NVyNWXbg5IKEMZB6V5pXESasV6nS
+i7vW4JYpA+ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA53KGbz0v7blt33ht62Ez9
+onmLHkegWW39OgRfNPircb9+pIOtkuksPr1yE2iBmWuGPg0OwNjqHROeOodoN1xC
+vSt1kUshtpPXiK8AuYmkv53FThyEEai8kpsGp6mLEY2ISaYRD0O6B6PyV2dT/nE2
+CWob7aQ/SlFQ+txnwJtOnA==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/create-files.sh b/tls/tests/files/create-files.sh
index f5f0629..0a7140f 100755
--- a/tls/tests/files/create-files.sh
+++ b/tls/tests/files/create-files.sh
@@ -32,11 +32,21 @@ echo
 read -p "Press [Enter] key to continue..." key
 
 #######################################################################
-### Root CA
+### Obsolete/Untrusted Root CA
 #######################################################################
 
 echo "00" > serial
 
+msg "Creating CA private key for obsolete/untrusted CA"
+openssl genrsa -out old-ca-key.pem 1024
+
+msg "Creating CA certificate for obsolete/untrusted CA"
+openssl req -x509 -new -config ssl/old-ca.conf -days 10950 -key old-ca-key.pem -out old-ca.pem
+
+#######################################################################
+### New Root CA
+#######################################################################
+
 msg "Creating CA private key"
 openssl genrsa -out ca-key.pem 1024
 
@@ -44,6 +54,16 @@ msg "Creating CA certificate"
 openssl req -x509 -new -config ssl/ca.conf -days 10950 -key ca-key.pem -out ca.pem
 
 #######################################################################
+### New Root CA, issued by Obsolete/Untrusted Root CA
+#######################################################################
+
+msg "Creating CA certificate request"
+openssl req -config ssl/ca.conf -key ca-key.pem -new -out root-ca-csr.pem
+
+msg "Creating alternative certificate with same keys as CA"
+openssl x509 -req -in root-ca-csr.pem -days 10950 -CA old-ca.pem -CAkey old-ca-key.pem -CAserial serial 
-extfile ssl/ca.conf -extensions v3_req_ext -out ca-alternative.pem
+
+#######################################################################
 ### Server
 #######################################################################
 
diff --git a/tls/tests/files/intermediate-ca-csr.pem b/tls/tests/files/intermediate-ca-csr.pem
index 458c1b9..189a2d3 100644
--- a/tls/tests/files/intermediate-ca-csr.pem
+++ b/tls/tests/files/intermediate-ca-csr.pem
@@ -3,10 +3,10 @@ MIIBujCCAWQCAQAwga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/Is
 ZAEZFgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUg
 QXV0aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20x
 KjAoBgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTBcMA0G
-CSqGSIb3DQEBAQUAA0sAMEgCQQCzMihGRvxXEZeJ3xKtjEULUnjXOwS+8mRU2vSL
-Rji82RnOXZQLAaTY5YDauG+i1v4CPbMkCth91U0x6yf+IVslAgMBAAGgUTBPBgkq
-hkiG9w0BCQ4xQjBAMB0GA1UdDgQWBBQToqzo2mlIjKMhJeyo92aF/JyAFTAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAANBAH7e
-z0YzhZUniYLub64iEiKQWXkWTtdSDQmEd+15515qL2Rw0fQ619cEcyMWP6yx9MNB
-JJ7KK03FR4rpbFmQ0nQ=
+CSqGSIb3DQEBAQUAA0sAMEgCQQDRMidrtJAZ27tI9gA3hhIP7S5EtfjhMHUi8mDN
+L2JuV7nMDGoAEUfHV3x/+Eb/TeymvBiRzlUD6YGQRK+2C8+LAgMBAAGgUTBPBgkq
+hkiG9w0BCQ4xQjBAMB0GA1UdDgQWBBRd9ylgHXCCZmIH9Y3sRbfjbCVnATAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAANBAIp7
+2/fnWAYyd4QxpW8qqajTKyuGiS5rwm5knLZvriM3qR6mAtuI3vluk431YcQ1G/jn
+QdPf5uYuttJC1GzrZDE=
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/intermediate-ca-key.pem b/tls/tests/files/intermediate-ca-key.pem
index 9021048..e449282 100644
--- a/tls/tests/files/intermediate-ca-key.pem
+++ b/tls/tests/files/intermediate-ca-key.pem
@@ -1,9 +1,9 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIIBOwIBAAJBALMyKEZG/FcRl4nfEq2MRQtSeNc7BL7yZFTa9ItGOLzZGc5dlAsB
-pNjlgNq4b6LW/gI9syQK2H3VTTHrJ/4hWyUCAwEAAQJBALB4SKlM5txn+rBP+njm
-lmgcA90Rxg61bpESP5mYwe9Wx0GnqwiRjEi/XuPjDs2RddQEeMfLixq8F0Jf8JD/
-z9ECIQDi3N1XoeQ0toL7Ml701PRfYMkQU6Ojj4xm9JyVby2bAwIhAMo2B++uWjvQ
-iGlvSYYI9CuEHCnNUucI8Wvm3xXc3oS3AiATtdjNSlWHduv+Yyv43Z+1wbT2ZC3t
-ggVS1KHeIeC2fQIgW3JP6H7K494MstHXSDxoX/2g1u66HS2YMJn6LWLzZsUCIQCA
-/80HCe93i1JBluD7Rizzi6k5TcOKaIemYfaLmzrR7w==
+MIIBOgIBAAJBANEyJ2u0kBnbu0j2ADeGEg/tLkS1+OEwdSLyYM0vYm5XucwMagAR
+R8dXfH/4Rv9N7Ka8GJHOVQPpgZBEr7YLz4sCAwEAAQJAUPmw+Kfz/45meF+Axf1H
+kJKmjkJCDCjNrrFTdxkYaM0pCDPjHeclMHZ9mhtKQs2/8ER4tvdNIUCba/f9n4lI
+QQIhAO6s3jWb4JVobvpC0r5OE/HLOLgnnieQPQGl/sBoqL6fAiEA4GF+A8XaSF/C
+V5tFTFMDN1hw9bvOxhwaVAgcBNzHA5UCIFI5t+wcIYkXi3QoZVYuq+xXKNk4vOHA
+bWQN/e/nnordAiEA26qWU9s+99vHxzybez1JyMUs0WYr6IdavymxRJFfxIECIEra
+zEU8vYbm02cECN2fB6SRAlyD8Gb6KAMP+A4RXVWO
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/intermediate-ca.pem b/tls/tests/files/intermediate-ca.pem
index b89967b..179d030 100644
--- a/tls/tests/files/intermediate-ca.pem
+++ b/tls/tests/files/intermediate-ca.pem
@@ -1,22 +1,22 @@
 -----BEGIN CERTIFICATE-----
-MIIDrjCCAxegAwIBAgIBBTANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
+MIIDrjCCAxegAwIBAgIBBjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTc0NFoXDTQwMDgy
-MjE3NTc0NFowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzOVoXDTQwMDgy
+MzAwMjIzOVowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
 FgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUgQXV0
 aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20xKjAo
 BgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTBcMA0GCSqG
-SIb3DQEBAQUAA0sAMEgCQQCzMihGRvxXEZeJ3xKtjEULUnjXOwS+8mRU2vSLRji8
-2RnOXZQLAaTY5YDauG+i1v4CPbMkCth91U0x6yf+IVslAgMBAAGjggFFMIIBQTAd
-BgNVHQ4EFgQUE6Ks6NppSIyjISXsqPdmhfycgBUwgbsGA1UdIwSBszCBsIAUfj0e
-TPazQZhz7Xn0fuHjVYctx+OhgYykgYkwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00x
+SIb3DQEBAQUAA0sAMEgCQQDRMidrtJAZ27tI9gA3hhIP7S5EtfjhMHUi8mDNL2Ju
+V7nMDGoAEUfHV3x/+Eb/TeymvBiRzlUD6YGQRK+2C8+LAgMBAAGjggFFMIIBQTAd
+BgNVHQ4EFgQUXfcpYB1wgmZiB/WN7EW342wlZwEwgbsGA1UdIwSBszCBsIAUmAbQ
+gRwBOJuIai3NygAtGQ9xlbGhgYykgYkwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00x
 FzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBB
 dXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkB
-Fg5jYUBleGFtcGxlLmNvbYIJAIGL5Lhn5uCIMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+Fg5jYUBleGFtcGxlLmNvbYIJAO+Cui0EIECvMA8GA1UdEwEB/wQFMAMBAf8wDgYD
 VR0PAQH/BAQDAgEGMCYGA1UdEQQfMB2BG2ludGVybWVkaWF0ZS1jYUBleGFtcGxl
 LmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQUFAAOB
-gQBIiQAwaTfID8rK5Js3W2MF2TKoUsvNCZuZyDxitUcqBZcVCPR178kTXHbaUeb5
-lUQAW0o/2IgdzfkFoC6fiCMRhECSPj0wGlFDDdxVcLSpwo9qyDDXJc4LOq5OQP75
-ZQd00/f8nEJcsJSjjkRhcAt5TiillXfD8Tmm5iKkTfxHLA==
+gQAmXVdwAZalZGtXBkdICHaWyVRmgCFRZfzVbGBOkeW+TEBiMgG+XrwlMQs5yyf/
+T8Mmw8TcqBJYdQhqcctbgFcSxejVAL7DnEfFcvH6acXy0K9l48pKAnYgcHstOAX2
+Fb+rSpmMDXgWuhKNudJyoOVQ/5H9LJyg6JYqoG5jqS9iQg==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/non-ca.pem b/tls/tests/files/non-ca.pem
index 0250dc1..068263b 100644
--- a/tls/tests/files/non-ca.pem
+++ b/tls/tests/files/non-ca.pem
@@ -1,88 +1,88 @@
 client.pem:
 -----BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQIwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC3DCCAkUCAQMwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xNTA4MjkxNzU3MzhaFw00MDA4MjIxNzU3
-MzhaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xNTA4MzAwMDIyMzJaFw00MDA4MjMwMDIy
+MzJaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALG58Q0krS7u
-pSgrpAjLGua2XZemo0NGoT7/ZSa4eWu4TTfJ4J6+4h1RE2pHpRQjYPuGjZ/qp7OM
-SFw0sbVoyC2Vkkmap2++qwOfvrZ9cRQIy9LVjzUSQBA2TVsqoFoptRsJH5V2NZSk
-Em+F/ZW4LJkWsi8yecBehVM/sZNyg9JP6kOL1WhW/+Aeyo5fGYSt0vgg1P3VwbAm
-9//76/5uUSXfxpges+4QodYWGqi0pDIxBpgwoMzwq+pG+UhBBpP0cN04/oZ/W1nz
-Lhr/maAQIdHJOxBwEWTBqgXqjavtcbrpQMBKHwRr6tqlRVDs4SP2CeSWMnLwfl59
-xVH9WB7TplECAwEAATANBgkqhkiG9w0BAQUFAAOBgQACBd12RB/ViGCuDc5mCzrF
-rafOhxJ3RVmZ5z+PU2qOTZW8K56k0iEP0oIVAcYELYugwTWBGJ2OT+JcawBbO+20
-qSEGWnmiqi/dRt8NXxDyz4kQuhFJboyPQfgrMpsc40/ZSvar/TdzK5EflAXInfgE
-nbhTcJ+r2qG7lTDnin1c0w==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOKRyGJ1ScDr
+yD07f0vAvjNU/GBvZEbeTAan3ZlYvgcFuaHbi+Svay+SaJmwXaHI4zgOF9aNl4zH
+IHUWAg+Y44lMPptNrffec4r2C+8gnmjot2ot5GrAfLrdR7xmKkqFx4Qr02sRPgy8
+AvSlbyW1qiW0/DKwb/JMsuejzUyMIB/T6UxPzUq3nrM18ltaSrWd6XjFRVep6soM
+ciUISr+eF0n0mhlonxDiegKXAbIXvKWTTAPIJADoeyPiX11tGecSbWBLzHWDK0VM
+85aEd3axkPdPj6RwQEa7FUTyLrU1Nj6k8Pl7NVyNWXbg5IKEMZB6V5pXESasV6nS
+i7vW4JYpA+ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA53KGbz0v7blt33ht62Ez9
+onmLHkegWW39OgRfNPircb9+pIOtkuksPr1yE2iBmWuGPg0OwNjqHROeOodoN1xC
+vSt1kUshtpPXiK8AuYmkv53FThyEEai8kpsGp6mLEY2ISaYRD0O6B6PyV2dT/nE2
+CWob7aQ/SlFQ+txnwJtOnA==
 -----END CERTIFICATE-----
 
 client-future.pem:
 -----BEGIN CERTIFICATE-----
-MIIC4DCCAkkCAQQwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC4DCCAkkCAQUwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAiGA8yMDYwMDcxNzIzMDAwMFoYDzIwNjEwNzE3
 MjMwMDAwWjBiMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEPMA0GA1UEAwwGQ2xpZW50MSEwHwYJKoZIhvcNAQkBFhJjbGllbnRA
-ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCxufEN
-JK0u7qUoK6QIyxrmtl2XpqNDRqE+/2UmuHlruE03yeCevuIdURNqR6UUI2D7ho2f
-6qezjEhcNLG1aMgtlZJJmqdvvqsDn762fXEUCMvS1Y81EkAQNk1bKqBaKbUbCR+V
-djWUpBJvhf2VuCyZFrIvMnnAXoVTP7GTcoPST+pDi9VoVv/gHsqOXxmErdL4INT9
-1cGwJvf/++v+blEl38aYHrPuEKHWFhqotKQyMQaYMKDM8KvqRvlIQQaT9HDdOP6G
-f1tZ8y4a/5mgECHRyTsQcBFkwaoF6o2r7XG66UDASh8Ea+rapUVQ7OEj9gnkljJy
-8H5efcVR/Vge06ZRAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAE1HY14EXO9bAK8rV
-MZ5Su+Ow65lO777o1tn0Tc6GMftmLJPOHzOnUE741FH04oR7cZ8cGgKZOVDMQXAt
-P6b9r9CpTr9KA8SUqVus1KHxfrVMTWwHSUwRlxtz60ACPZ9jkBZY/Y+wx412+VZc
-OQYvmx7aWpbQ9Lva5Y+Zam5BARw=
+ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDikchi
+dUnA68g9O39LwL4zVPxgb2RG3kwGp92ZWL4HBbmh24vkr2svkmiZsF2hyOM4DhfW
+jZeMxyB1FgIPmOOJTD6bTa333nOK9gvvIJ5o6LdqLeRqwHy63Ue8ZipKhceEK9Nr
+ET4MvAL0pW8ltaoltPwysG/yTLLno81MjCAf0+lMT81Kt56zNfJbWkq1nel4xUVX
+qerKDHIlCEq/nhdJ9JoZaJ8Q4noClwGyF7ylk0wDyCQA6Hsj4l9dbRnnEm1gS8x1
+gytFTPOWhHd2sZD3T4+kcEBGuxVE8i61NTY+pPD5ezVcjVl24OSChDGQeleaVxEm
+rFep0ou71uCWKQPhAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAaL1TVP7GBU/+Ujxm
+s1d6XlsczXcRTsK2SKPc7Ke8K30o7E85m5gTXtDVVdk2aCWFsrmqCW+sKSAl3TLr
+nWWlvI0k2Y3Ei81W1xkCSA8rX95K8m1FaVXz1ml5J8TjemHd/j+btzp4qjnF/S2M
+cbRhKzUoJD6FBuUq7OXOO+4T30c=
 -----END CERTIFICATE-----
 
 client-past.pem:
 -----BEGIN CERTIFICATE-----
-MIIC3DCCAkUCAQMwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
+MIIC3DCCAkUCAQQwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDA3MTcyMzAwMDBaFw0wMTA3MTcyMzAw
 MDBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALG58Q0krS7u
-pSgrpAjLGua2XZemo0NGoT7/ZSa4eWu4TTfJ4J6+4h1RE2pHpRQjYPuGjZ/qp7OM
-SFw0sbVoyC2Vkkmap2++qwOfvrZ9cRQIy9LVjzUSQBA2TVsqoFoptRsJH5V2NZSk
-Em+F/ZW4LJkWsi8yecBehVM/sZNyg9JP6kOL1WhW/+Aeyo5fGYSt0vgg1P3VwbAm
-9//76/5uUSXfxpges+4QodYWGqi0pDIxBpgwoMzwq+pG+UhBBpP0cN04/oZ/W1nz
-Lhr/maAQIdHJOxBwEWTBqgXqjavtcbrpQMBKHwRr6tqlRVDs4SP2CeSWMnLwfl59
-xVH9WB7TplECAwEAATANBgkqhkiG9w0BAQUFAAOBgQAGlVz96Zm2uQLzssuphCuY
-9Pn2/dDIMxr3/1/syHc6zS8dMO0GdEPVus6WCncMx87+kb/yHtLUg92sNIMylHbr
-Dr01nFY+1dXUa6V9cFkDD83bv8LccHABDBJNZ2HkmTtueVLx/eJzxUBoY9uTbW7x
-l6gDnG+Hfl95qzvSAM5LnQ==
+cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOKRyGJ1ScDr
+yD07f0vAvjNU/GBvZEbeTAan3ZlYvgcFuaHbi+Svay+SaJmwXaHI4zgOF9aNl4zH
+IHUWAg+Y44lMPptNrffec4r2C+8gnmjot2ot5GrAfLrdR7xmKkqFx4Qr02sRPgy8
+AvSlbyW1qiW0/DKwb/JMsuejzUyMIB/T6UxPzUq3nrM18ltaSrWd6XjFRVep6soM
+ciUISr+eF0n0mhlonxDiegKXAbIXvKWTTAPIJADoeyPiX11tGecSbWBLzHWDK0VM
+85aEd3axkPdPj6RwQEa7FUTyLrU1Nj6k8Pl7NVyNWXbg5IKEMZB6V5pXESasV6nS
+i7vW4JYpA+ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQAXsez9MUY7+zHe4CevgYHk
+VUGFl2BV/cncVO5M42qlYvGhzPNb3VSXlrIk0CZP/A1UrB+7+vMFQCccoXE2Yb//
+hOcumZkz4OJjz+qgsWlksaUjCnpGPIfsrW3jYBRKvL1iYo5Si1aIiQ+ej93a2Bsg
+Iy/P6Hx0b2bZ5H6v/y6bqw==
 -----END CERTIFICATE-----
 
 server.pem:
 -----BEGIN CERTIFICATE-----
-MIICNzCCAaCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
+MIICNzCCAaCgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTczOFoXDTQwMDgy
-MjE3NTczOFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzMVoXDTQwMDgy
+MzAwMjIzMVowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3
-DQEBAQUAA0sAMEgCQQCoG8Jdgm5O44c/i6ke0dhNY8AmIsrEmY93iYD98QQ07JuE
-VTp+bHgozCEOQQdBaS6q/1/q5vQYEaJQoh9Ys9cLAgMBAAGjMzAxMAkGA1UdEwQC
+DQEBAQUAA0sAMEgCQQDk6Op18H8aRZvr8jfjhSkw3P4Gy070eb3hrpkIiZl05UxO
+crI+cO3SaE5zgmcW18UPpXfwWl4uy/Q6nagkZDXvAgMBAAGjMzAxMAkGA1UdEwQC
 MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEwKgBCjANBgkqhkiG
-9w0BAQUFAAOBgQA6r1t6llBm+tE/DT32RbM55jlhk+tweoJe2zte0wYKeGdHv5W/
-CPVxhLqr/4oly/fOsFvamtp6++6JELF7A4a91tMny8HI2Vjuvl9KKDNL+VBnmrGF
-h494TQP1aboqAyPljlX7s1728KpgPJkToKSCzQaNfAMRy5LjojIDQPtiJg==
+9w0BAQUFAAOBgQBmJQF4mdpoinkWTB5khs2ZVWZWf4QPLH2I/sP8IY1pWIVNtOVG
+YiTURtsdIHffSAoJ+9H+KrZhxk7TO9v7LR2Au1fGC6FuGjRizYb6UTe7tpoaZvlj
+JZj3sE/Rw/zCHCjA9xNTeYvQlKBzuohbUVGS+kEhxI7ScDmd7ylKSLIbBQ==
 -----END CERTIFICATE-----
 
 server-self.pem:
 -----BEGIN CERTIFICATE-----
-MIIBiDCCATICCQDcDYKM9fP8yDANBgkqhkiG9w0BAQUFADBLMRMwEQYKCZImiZPy
+MIIBiDCCATICCQD8Rn+cHcihijANBgkqhkiG9w0BAQUFADBLMRMwEQYKCZImiZPy
 LGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEbMBkGA1UEAwwSc2Vy
-dmVyLmV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTczOFoXDTQwMDgyMjE3NTczOFow
+dmVyLmV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzMVoXDTQwMDgyMzAwMjIzMVow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
-MEgCQQCoG8Jdgm5O44c/i6ke0dhNY8AmIsrEmY93iYD98QQ07JuEVTp+bHgozCEO
-QQdBaS6q/1/q5vQYEaJQoh9Ys9cLAgMBAAEwDQYJKoZIhvcNAQEFBQADQQBeTddU
-wuWCIzyRTtI0ryY7ZYdLmjzbZRmfcVdSLUiMmt7TaO1hFTlwkErktO9seVOnkMeE
-OrG23LPbsd4DKNWk
+MEgCQQDk6Op18H8aRZvr8jfjhSkw3P4Gy070eb3hrpkIiZl05UxOcrI+cO3SaE5z
+gmcW18UPpXfwWl4uy/Q6nagkZDXvAgMBAAEwDQYJKoZIhvcNAQEFBQADQQADBJbF
+pDpocLDuQo5DXoXVlloJAputR6oKQLtTFRorEr0iASEr/8DEXfFoOI+US/8EZ/IT
+6JR2XOHSot4zsr68
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/old-ca-key.pem b/tls/tests/files/old-ca-key.pem
new file mode 100644
index 0000000..c0eb15d
--- /dev/null
+++ b/tls/tests/files/old-ca-key.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDAcmBlQzZO0JXytrD6hG7mLM4UOcv/Mq0Spdko3VfLkBXMJKF5
+TC8gJYFw5/YhWH5rQ3hQoSUq/GbaHZh1XrJpHBYHQn4sS0m4Nlrd/q1pyvSMNr0s
+Ywe+McBw9TFqGgimV6rgDGsjqz3uxqOlo5goovOS7BT9XxcHMBW3/uQuIQIDAQAB
+AoGBAIxYXTg8BfUAZPo2hWaNAhtWfYt+gui/WjyJOo90rDxF/b98z02YY527/GQM
+phC3aqpq7+lNO7/XhmJ2xuKBhvWgw7sVjhEG5bqigofH8Rc3W/SvNyo1xh658HDF
+3IgpUVAMKVb3puvZNOqBn+3WxfFP7cawSPH+gU2GTdk+e5nJAkEA4LWOlU3vlVnp
+Rd3ngQNrfrh0MR2tD34Pu0xvvpNq9KWUjREVtcNGCFx0M4WYl1caiwtmWUtmdfhy
+Yd49v0E1VwJBANs+ujWmjh8hfwAZ1lQ5DfJROAvmxYrrn98sdj9RzuhnGdFoE+Ld
+BkpAQU1PvTPp2ot60633pwEDLZzd7tfb1UcCQDUcdIDxlMkWIT60Pj2OE2A2NLBP
+NVJOF2XLoTXIHiWI5V2aRilZ6DmdsJFk6DYNDmcC4MQGQEdt24sqPinwPa0CQE6S
+kWtu0FpJx9kCaXRvqhbgkqR5ROx/eyEhLxOMPwm9AVyx3wabzYhItN5/KEB1m7QH
+Bdu/+GL9f5hLVTCZATsCQQCyc9HNvPb2V4q4ksn+RuQH7VHI/cOtqTvldBXm1HhV
+XlM4brBTQjS1WbSmjlTcnzwfaLQXk+pGsqThOgbLwDvq
+-----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/old-ca.pem b/tls/tests/files/old-ca.pem
new file mode 100644
index 0000000..cdee6c2
--- /dev/null
+++ b/tls/tests/files/old-ca.pem
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEETCCA3qgAwIBAgIJAP2QjCV8pipcMA0GCSqGSIb3DQEBBQUAMIGfMRMwEQYK
+CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEsMCoGA1UE
+CwwjT2xkIFVudHJ1c3RlZCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxIjAgBgNVBAMM
+GW9uY2Uud2FzLmEuY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4
+YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzMVoXDTQ1MDgyMjAwMjIzMVowgZ8xEzAR
+BgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMSwwKgYD
+VQQLDCNPbGQgVW50cnVzdGVkIENlcnRpZmljYXRlIEF1dGhvcml0eTEiMCAGA1UE
+AwwZb25jZS53YXMuYS5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FA
+ZXhhbXBsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMByYGVDNk7Q
+lfK2sPqEbuYszhQ5y/8yrRKl2SjdV8uQFcwkoXlMLyAlgXDn9iFYfmtDeFChJSr8
+ZtodmHVesmkcFgdCfixLSbg2Wt3+rWnK9Iw2vSxjB74xwHD1MWoaCKZXquAMayOr
+Pe7Go6WjmCii85LsFP1fFwcwFbf+5C4hAgMBAAGjggFRMIIBTTAdBgNVHQ4EFgQU
+Lu6rFocDkpwOJyAjyQrCxuefLW8wgdQGA1UdIwSBzDCByYAULu6rFocDkpwOJyAj
+yQrCxuefLW+hgaWkgaIwgZ8xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJ
+k/IsZAEZFgdFWEFNUExFMSwwKgYDVQQLDCNPbGQgVW50cnVzdGVkIENlcnRpZmlj
+YXRlIEF1dGhvcml0eTEiMCAGA1UEAwwZb25jZS53YXMuYS5jYS5leGFtcGxlLmNv
+bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb22CCQD9kIwlfKYqXDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAZBgNVHREEEjAQgQ5jYUBleGFt
+cGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQUF
+AAOBgQAQLX3HpbnxH3gLf6rhj7IQEizZhAEGpvLMURlDdUdoH9ZYPsQ49rZ2kcjD
+FFUKa4Y9/smcBOkF1Za9xepinsftz8ALhsfyo3azXUJTm7sRcQzQkwaSsAh0smIv
+UbmMskbCbFVDwW8xu+SCRJac/+NAuxjxkgrytZksJPvQB545XQ==
+-----END CERTIFICATE-----
diff --git a/tls/tests/files/root-ca-csr.pem b/tls/tests/files/root-ca-csr.pem
new file mode 100644
index 0000000..48f5365
--- /dev/null
+++ b/tls/tests/files/root-ca-csr.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICGDCCAYECAQAwgYYxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/Is
+ZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAV
+BgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxl
+LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvapKy45xtxon3669spqf
++/nXzp3q7WLmQiTd0+7h60d6AekMbltqr4IhR1jUDIJzPo4vrUnWVsHcqyTp7Kj3
+Cgoce2jQEn0hURvsrulP6Bq7tB5LXkxQrmY1+55R8h1dMI2kd7Po3O3gfntuCokm
+smceeid064RqUQWAO04GqKUCAwEAAaBRME8GCSqGSIb3DQEJDjFCMEAwHQYDVR0O
+BBYEFJgG0IEcATibiGotzcoALRkPcZWxMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
+AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4GBACd9IesNyKrVhriex7hMBZv+1M1A
+9/1ZPstHARbjRJ4AhOKQGvu3Bz7yiuzWUyVaY+naMYlu1rPcA01588xbKdBCGF9Z
+noOeVHlTZwu1OOV57KjwoilRBtjNNbmUUl3t4nlw6+sz5pPjyVYPBunMiig3n1Ke
+8jYPdl0bW/kX+8ve
+-----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-and-key.pem b/tls/tests/files/server-and-key.pem
index d1715d8..a74436a 100644
--- a/tls/tests/files/server-and-key.pem
+++ b/tls/tests/files/server-and-key.pem
@@ -1,23 +1,23 @@
 -----BEGIN CERTIFICATE-----
-MIICNzCCAaCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
+MIICNzCCAaCgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTczOFoXDTQwMDgy
-MjE3NTczOFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzMVoXDTQwMDgy
+MzAwMjIzMVowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3
-DQEBAQUAA0sAMEgCQQCoG8Jdgm5O44c/i6ke0dhNY8AmIsrEmY93iYD98QQ07JuE
-VTp+bHgozCEOQQdBaS6q/1/q5vQYEaJQoh9Ys9cLAgMBAAGjMzAxMAkGA1UdEwQC
+DQEBAQUAA0sAMEgCQQDk6Op18H8aRZvr8jfjhSkw3P4Gy070eb3hrpkIiZl05UxO
+crI+cO3SaE5zgmcW18UPpXfwWl4uy/Q6nagkZDXvAgMBAAGjMzAxMAkGA1UdEwQC
 MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEwKgBCjANBgkqhkiG
-9w0BAQUFAAOBgQA6r1t6llBm+tE/DT32RbM55jlhk+tweoJe2zte0wYKeGdHv5W/
-CPVxhLqr/4oly/fOsFvamtp6++6JELF7A4a91tMny8HI2Vjuvl9KKDNL+VBnmrGF
-h494TQP1aboqAyPljlX7s1728KpgPJkToKSCzQaNfAMRy5LjojIDQPtiJg==
+9w0BAQUFAAOBgQBmJQF4mdpoinkWTB5khs2ZVWZWf4QPLH2I/sP8IY1pWIVNtOVG
+YiTURtsdIHffSAoJ+9H+KrZhxk7TO9v7LR2Au1fGC6FuGjRizYb6UTe7tpoaZvlj
+JZj3sE/Rw/zCHCjA9xNTeYvQlKBzuohbUVGS+kEhxI7ScDmd7ylKSLIbBQ==
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-MIIBOQIBAAJBAKgbwl2Cbk7jhz+LqR7R2E1jwCYiysSZj3eJgP3xBDTsm4RVOn5s
-eCjMIQ5BB0FpLqr/X+rm9BgRolCiH1iz1wsCAwEAAQJAGnTT7/d4+L1iKaQHJ6yK
-yBMsyFOtaadpJrzjKhPmP5XDsrkzq9ozrEHoW2TAPG6FcYKDxc0B/FGhNj0y2/mU
-sQIhANwSUpkJ1FFfhhhr1JQNO9G8HMlSP1I+bNDP2+kgJaUlAiEAw42wEUVjfnD4
-4D5rKyUd+jImaoHM6wnBeRheVcN9jG8CIBk7WJEHWXqC80L1igf3hHZFlR9X+L6b
-PaqrSlFuSCKpAiA4yG21tiZb0sYRp05LKu33dpR9HM+5+A078n2B/c/49QIgTWlA
-hMV7XwlQguIBwBbHP9QskSiW+5hpyz2eh2b0i1c=
+MIIBOwIBAAJBAOTo6nXwfxpFm+vyN+OFKTDc/gbLTvR5veGumQiJmXTlTE5ysj5w
+7dJoTnOCZxbXxQ+ld/BaXi7L9DqdqCRkNe8CAwEAAQJBAIbwSm411Cc/i3eeNJX5
+hFuammCU7rktHuLv0qR2wLBn8Sj2XXtJPlBEdolhQdO+YECBMxUG8f92LeJ4T2OF
+YhkCIQD/2tu/Sq5iVLkrocnCpppbxcZ5JUYDgnD2TrbvSghj+wIhAOUKJVyo5xRH
+DpyAfthRJa6VDUip3hVUz+Zz8PDmkp+dAiAX2nGuTeogJMH2vWiwCxRNBg1Q8haq
+8RhS/lezy3UozQIhANa8QHMzWBNG24gXYNVmnzGjRSUPPcw6DAFASnFRe75xAiAq
+c0wJZWOMbezOsSgAwPt/xsabERIVXSNhzt1il/lPjA==
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-intermediate-csr.pem b/tls/tests/files/server-intermediate-csr.pem
index f53321b..c112d6c 100644
--- a/tls/tests/files/server-intermediate-csr.pem
+++ b/tls/tests/files/server-intermediate-csr.pem
@@ -1,9 +1,9 @@
 -----BEGIN CERTIFICATE REQUEST-----
 MIIBNjCB4QIBADBLMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQB
 GRYHRVhBTVBMRTEbMBkGA1UEAwwSc2VydmVyLmV4YW1wbGUuY29tMFwwDQYJKoZI
-hvcNAQEBBQADSwAwSAJBAMSYDAOMLZayntxxf3p7fbILhbg1ZYlsFPBHiNZVoOML
-wh8GBEzHoDgbGViuns/c7kIWyRzpsn/YnrRvZUiqthECAwEAAaAxMC8GCSqGSIb3
+hvcNAQEBBQADSwAwSAJBAM2PTEorKL/7mIbYVOz+U6DAo+itGDr2jjOyYxxU5+/A
+jUg3gVFKw+mpok26sdwY2q8aiPTuE0F1bF2iLEXimacCAwEAAaAxMC8GCSqGSIb3
 DQEJDjEiMCAwCQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG
-9w0BAQUFAANBAGT4XkwkYMnet6W9vIAm8Hju4cPvjjume7hJva+MlGCJgkBgH+3p
-xifvhBEkuOoTWi/QK+AhNdp/FnbFDCAjow0=
+9w0BAQUFAANBADtTaSyvJDUzCuim8Wlk8MVVsGQzC2czFRshO5JcPgjq08gN9FXM
+KUYeUQYLGGVnVXkTqWdAOog769XukpDGv2g=
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-intermediate-key.pem b/tls/tests/files/server-intermediate-key.pem
index f40a56b..32661d5 100644
--- a/tls/tests/files/server-intermediate-key.pem
+++ b/tls/tests/files/server-intermediate-key.pem
@@ -1,9 +1,9 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIIBOwIBAAJBAMSYDAOMLZayntxxf3p7fbILhbg1ZYlsFPBHiNZVoOMLwh8GBEzH
-oDgbGViuns/c7kIWyRzpsn/YnrRvZUiqthECAwEAAQJAHkU3HFi6MEkCkvja4xYe
-rYp+pXV7U+STeMfa9v2qTyscJIguoVRbVGAYhpMkXdOkZ08FmMpGXLcZKwypBLEp
-UQIhAOwjF5VPTeQGDYLKcUsGzC09mEwgjmk10DJPJ3d2Aj9tAiEA1SFxsHrznfzX
-29jbz079KcSakwLNuP1hjFTlmLNSlrUCIQCIt2iYEepO8xIvf3ZIsg7UwqzCprbN
-Q1LfTeTTzYdPoQIgYBa69hEIwsLa4yBrQZTgKLOd6QfLjkqWbzlbZjP62T0CIQCW
-LKoQ8CXcoq2lWl61GKw+XySqzMUrhakwV1EPjpm9rQ==
+MIIBOQIBAAJBAM2PTEorKL/7mIbYVOz+U6DAo+itGDr2jjOyYxxU5+/AjUg3gVFK
+w+mpok26sdwY2q8aiPTuE0F1bF2iLEXimacCAwEAAQJACu1/RMIenHYnmaOOgDrU
+/0q+a/QnwZqx3JWzJyJsYhZmAJRw7/0MjsrD+UoPggvliu77FmnYihYEPxdlM39D
+QQIhAPE0Lu0W1vhiXxuEwIP7w7ix/IlTgZ/xIhoOltfwKSMPAiEA2itd/y6MvNgq
+39ZZDiAn5mjyDoSNJuafRi1FNY4fP+kCIGcNRH9HItE8NiYrsZSyHAzs/lgttVQA
+UfGQCiJ4GRtBAiBc+I4d6KBg+V2L9bQNqPZX4fEE7seYBD9rkG8l22LFwQIgOKPr
+BUkGlw/IMHWVXhQkPKSAPoSLHEvGiQCIyIckCMc=
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-intermediate.pem b/tls/tests/files/server-intermediate.pem
index da1d686..6e4246a 100644
--- a/tls/tests/files/server-intermediate.pem
+++ b/tls/tests/files/server-intermediate.pem
@@ -3,12 +3,12 @@ MIICHTCCAcegAwIBAgIBATANBgkqhkiG9w0BAQUFADCBrTETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxKzApBgNVBAsMIkludGVy
 bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxJDAiBgNVBAMMG2ludGVybWVk
 aWF0ZS1jYS5leGFtcGxlLmNvbTEqMCgGCSqGSIb3DQEJARYbaW50ZXJtZWRpYXRl
-LWNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTc0NFoXDTQwMDgyMjE3NTc0NFow
+LWNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzOVoXDTQwMDgyMzAwMjIzOVow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
-MEgCQQDEmAwDjC2Wsp7ccX96e32yC4W4NWWJbBTwR4jWVaDjC8IfBgRMx6A4GxlY
-rp7P3O5CFskc6bJ/2J60b2VIqrYRAgMBAAGjMzAxMAkGA1UdEwQCMAAwEwYDVR0l
+MEgCQQDNj0xKKyi/+5iG2FTs/lOgwKPorRg69o4zsmMcVOfvwI1IN4FRSsPpqaJN
+urHcGNqvGoj07hNBdWxdoixF4pmnAgMBAAGjMzAxMAkGA1UdEwQCMAAwEwYDVR0l
 BAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEwKgBFjANBgkqhkiG9w0BAQUFAANB
-AEQKnmS9dU91lbbea6KSNPhEAkgFcWjqYsj48VbMsIHQvLrz4Hj9ZjjySC2iu+5W
-6aKuVqhz5+lWRbqraV6Tkdg=
+ALl1WO7IZYOvPwhyQ4EpCLjSsTuGBcfbWFtw4XiQueZ8TILHcZARH4nW1tKoVWzc
+rIGhqRjNMWRmaH1wgSCGRiE=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/server-key.der b/tls/tests/files/server-key.der
index d6434ae..abd1336 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 5bc8669..93a9cc5 100644
--- a/tls/tests/files/server-key.pem
+++ b/tls/tests/files/server-key.pem
@@ -1,9 +1,9 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIIBOQIBAAJBAKgbwl2Cbk7jhz+LqR7R2E1jwCYiysSZj3eJgP3xBDTsm4RVOn5s
-eCjMIQ5BB0FpLqr/X+rm9BgRolCiH1iz1wsCAwEAAQJAGnTT7/d4+L1iKaQHJ6yK
-yBMsyFOtaadpJrzjKhPmP5XDsrkzq9ozrEHoW2TAPG6FcYKDxc0B/FGhNj0y2/mU
-sQIhANwSUpkJ1FFfhhhr1JQNO9G8HMlSP1I+bNDP2+kgJaUlAiEAw42wEUVjfnD4
-4D5rKyUd+jImaoHM6wnBeRheVcN9jG8CIBk7WJEHWXqC80L1igf3hHZFlR9X+L6b
-PaqrSlFuSCKpAiA4yG21tiZb0sYRp05LKu33dpR9HM+5+A078n2B/c/49QIgTWlA
-hMV7XwlQguIBwBbHP9QskSiW+5hpyz2eh2b0i1c=
+MIIBOwIBAAJBAOTo6nXwfxpFm+vyN+OFKTDc/gbLTvR5veGumQiJmXTlTE5ysj5w
+7dJoTnOCZxbXxQ+ld/BaXi7L9DqdqCRkNe8CAwEAAQJBAIbwSm411Cc/i3eeNJX5
+hFuammCU7rktHuLv0qR2wLBn8Sj2XXtJPlBEdolhQdO+YECBMxUG8f92LeJ4T2OF
+YhkCIQD/2tu/Sq5iVLkrocnCpppbxcZ5JUYDgnD2TrbvSghj+wIhAOUKJVyo5xRH
+DpyAfthRJa6VDUip3hVUz+Zz8PDmkp+dAiAX2nGuTeogJMH2vWiwCxRNBg1Q8haq
+8RhS/lezy3UozQIhANa8QHMzWBNG24gXYNVmnzGjRSUPPcw6DAFASnFRe75xAiAq
+c0wJZWOMbezOsSgAwPt/xsabERIVXSNhzt1il/lPjA==
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-self.pem b/tls/tests/files/server-self.pem
index afbe575..3827cda 100644
--- a/tls/tests/files/server-self.pem
+++ b/tls/tests/files/server-self.pem
@@ -1,11 +1,11 @@
 -----BEGIN CERTIFICATE-----
-MIIBiDCCATICCQDcDYKM9fP8yDANBgkqhkiG9w0BAQUFADBLMRMwEQYKCZImiZPy
+MIIBiDCCATICCQD8Rn+cHcihijANBgkqhkiG9w0BAQUFADBLMRMwEQYKCZImiZPy
 LGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEbMBkGA1UEAwwSc2Vy
-dmVyLmV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTczOFoXDTQwMDgyMjE3NTczOFow
+dmVyLmV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzMVoXDTQwMDgyMzAwMjIzMVow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA
-MEgCQQCoG8Jdgm5O44c/i6ke0dhNY8AmIsrEmY93iYD98QQ07JuEVTp+bHgozCEO
-QQdBaS6q/1/q5vQYEaJQoh9Ys9cLAgMBAAEwDQYJKoZIhvcNAQEFBQADQQBeTddU
-wuWCIzyRTtI0ryY7ZYdLmjzbZRmfcVdSLUiMmt7TaO1hFTlwkErktO9seVOnkMeE
-OrG23LPbsd4DKNWk
+MEgCQQDk6Op18H8aRZvr8jfjhSkw3P4Gy070eb3hrpkIiZl05UxOcrI+cO3SaE5z
+gmcW18UPpXfwWl4uy/Q6nagkZDXvAgMBAAEwDQYJKoZIhvcNAQEFBQADQQADBJbF
+pDpocLDuQo5DXoXVlloJAputR6oKQLtTFRorEr0iASEr/8DEXfFoOI+US/8EZ/IT
+6JR2XOHSot4zsr68
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/server.der b/tls/tests/files/server.der
index 4db320a..a3a4b39 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 032a393..56be360 100644
--- a/tls/tests/files/server.pem
+++ b/tls/tests/files/server.pem
@@ -1,14 +1,14 @@
 -----BEGIN CERTIFICATE-----
-MIICNzCCAaCgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
+MIICNzCCAaCgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgyOTE3NTczOFoXDTQwMDgy
-MjE3NTczOFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTE1MDgzMDAwMjIzMVoXDTQwMDgy
+MzAwMjIzMVowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3
-DQEBAQUAA0sAMEgCQQCoG8Jdgm5O44c/i6ke0dhNY8AmIsrEmY93iYD98QQ07JuE
-VTp+bHgozCEOQQdBaS6q/1/q5vQYEaJQoh9Ys9cLAgMBAAGjMzAxMAkGA1UdEwQC
+DQEBAQUAA0sAMEgCQQDk6Op18H8aRZvr8jfjhSkw3P4Gy070eb3hrpkIiZl05UxO
+crI+cO3SaE5zgmcW18UPpXfwWl4uy/Q6nagkZDXvAgMBAAGjMzAxMAkGA1UdEwQC
 MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEwKgBCjANBgkqhkiG
-9w0BAQUFAAOBgQA6r1t6llBm+tE/DT32RbM55jlhk+tweoJe2zte0wYKeGdHv5W/
-CPVxhLqr/4oly/fOsFvamtp6++6JELF7A4a91tMny8HI2Vjuvl9KKDNL+VBnmrGF
-h494TQP1aboqAyPljlX7s1728KpgPJkToKSCzQaNfAMRy5LjojIDQPtiJg==
+9w0BAQUFAAOBgQBmJQF4mdpoinkWTB5khs2ZVWZWf4QPLH2I/sP8IY1pWIVNtOVG
+YiTURtsdIHffSAoJ+9H+KrZhxk7TO9v7LR2Au1fGC6FuGjRizYb6UTe7tpoaZvlj
+JZj3sE/Rw/zCHCjA9xNTeYvQlKBzuohbUVGS+kEhxI7ScDmd7ylKSLIbBQ==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/ssl/ca.conf b/tls/tests/files/ssl/ca.conf
index 9ee7034..8e1844e 100644
--- a/tls/tests/files/ssl/ca.conf
+++ b/tls/tests/files/ssl/ca.conf
@@ -18,7 +18,7 @@ emailAddress            = "ca example com"
 
 [ req_ext ]
 subjectKeyIdentifier    = hash
-authorityKeyIdentifier  = keyid:always,issuer:always
+#authorityKeyIdentifier  = keyid:always,issuer:always
 basicConstraints        = critical,CA:true
 keyUsage                = critical,keyCertSign,cRLSign
 
diff --git a/tls/tests/files/ssl/old-ca.conf b/tls/tests/files/ssl/old-ca.conf
new file mode 100644
index 0000000..b1d155a
--- /dev/null
+++ b/tls/tests/files/ssl/old-ca.conf
@@ -0,0 +1,31 @@
+# Root CA
+
+[ req ]
+default_md              = sha1
+utf8                    = yes
+string_mask             = utf8only
+prompt                  = no
+distinguished_name      = req_dn
+req_extensions          = req_ext
+x509_extensions         = v3_req_ext
+
+[ req_dn ]
+0.domainComponent       = "COM"
+1.domainComponent       = "EXAMPLE"
+organizationalUnitName = "Old Untrusted Certificate Authority"
+commonName              = "once.was.a.ca.example.com"
+emailAddress            = "ca example com"
+
+[ req_ext ]
+subjectKeyIdentifier    = hash
+#authorityKeyIdentifier  = keyid:always,issuer:always
+basicConstraints        = critical,CA:true
+keyUsage                = critical,keyCertSign,cRLSign
+
+[ v3_req_ext ]
+subjectKeyIdentifier    = hash
+authorityKeyIdentifier  = keyid:always,issuer:always
+basicConstraints        = critical,CA:true
+keyUsage                = critical,keyCertSign,cRLSign
+subjectAltName          = email:ca example com
+issuerAltName           = issuer:copy


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