[glib-networking] Teach create-files.sh to automatically update certificate test



commit 76f0d842fe1bdcfaa4bac58c9a7c863fdc664765
Author: Michael Catanzaro <mcatanzaro redhat com>
Date:   Wed Jun 23 15:11:08 2021 -0500

    Teach create-files.sh to automatically update certificate test
    
    The expected expiration times of these certificates should be updated
    automatically, not manually.

 tls/tests/certificate.c                     |   9 +-
 tls/tests/certificate.h                     |   4 +
 tls/tests/connection.c                      |   2 +-
 tls/tests/file-database.h                   |   3 +-
 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              |  17 ++++
 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             |  17 ++++
 tls/tests/files/client2-key.pem             |  50 +++++-----
 tls/tests/files/client2.pem                 |  30 +++---
 tls/tests/files/create-files.sh             |  25 ++---
 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              |  17 ++++
 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.der              | Bin 1190 -> 1191 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 +++---
 tls/tests/files/update-certificate-test.py  |  25 +++++
 tls/tests/files/update-test-database.py     |   2 +-
 40 files changed, 752 insertions(+), 689 deletions(-)
---
diff --git a/tls/tests/certificate.c b/tls/tests/certificate.c
index 11b7935..a6bd247 100644
--- a/tls/tests/certificate.c
+++ b/tls/tests/certificate.c
@@ -24,6 +24,8 @@
  * Author: Stef Walter <stefw collabora co uk>
  */
 
+#include "certificate.h"
+
 #include <gio/gio.h>
 
 #ifdef BACKEND_IS_GNUTLS
@@ -579,8 +581,6 @@ test_certificate_is_same (void)
 static void
 test_certificate_not_valid_before (void)
 {
-  const gchar *EXPECTED_NOT_VALID_BEFORE = "2020-10-12T17:49:44Z";
-
   GTlsCertificate *cert;
   GError *error = NULL;
   GDateTime *actual;
@@ -601,8 +601,6 @@ test_certificate_not_valid_before (void)
 static void
 test_certificate_not_valid_after (void)
 {
-  const gchar *EXPECTED_NOT_VALID_AFTER = "2045-10-06T17:49:44Z";
-
   GTlsCertificate *cert;
   GError *error = NULL;
   GDateTime *actual;
@@ -623,8 +621,7 @@ test_certificate_not_valid_after (void)
 static void
 test_certificate_subject_name (void)
 {
-  const gchar *EXPECTED_SUBJECT_NAME = "DC=COM,DC=EXAMPLE,CN=server.example.com";
-
+  const char *EXPECTED_SUBJECT_NAME = "DC=COM,DC=EXAMPLE,CN=server.example.com";
   GTlsCertificate *cert;
   GError *error = NULL;
   gchar *actual;
diff --git a/tls/tests/certificate.h b/tls/tests/certificate.h
new file mode 100644
index 0000000..faf83b5
--- /dev/null
+++ b/tls/tests/certificate.h
@@ -0,0 +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"
diff --git a/tls/tests/connection.c b/tls/tests/connection.c
index e5ed014..ec70768 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 "kGOeAZnSeNtf5yzBZzUhbKFpW9qsPV+lIB/4t96OV+E="
+#define SERVER_CERT_DIGEST_B64 "ZhZtuMO6/KgDz9JoeCncmfZeV7G1BnF/LrRM5yE1VW0="
 static void
 test_connection_binding_match_tls_server_end_point (TestConnection *test,
                                                     gconstpointer   data)
diff --git a/tls/tests/file-database.h b/tls/tests/file-database.h
index 15b5716..dcacc3a 100644
--- a/tls/tests/file-database.h
+++ b/tls/tests/file-database.h
@@ -1,4 +1,3 @@
-
-/* This is a generated file from update-test-database.py */
+/* This file is generated from update-test-database.py */
 
 #define ISSUER_DATA 
"\x30\x81\x86\x31\x13\x30\x11\x06\x0A\x09\x92\x26\x89\x93\xF2\x2C\x64\x01\x19\x16\x03\x43\x4F\x4D\x31\x17\x30\x15\x06\x0A\x09\x92\x26\x89\x93\xF2\x2C\x64\x01\x19\x16\x07\x45\x58\x41\x4D\x50\x4C\x45\x31\x1E\x30\x1C\x06\x03\x55\x04\x0B\x0C\x15\x43\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x17\x30\x15\x06\x03\x55\x04\x03\x0C\x0E\x63\x61\x2E\x65\x78\x61\x6D\x70\x6C\x65\x2E\x63\x6F\x6D\x31\x1D\x30\x1B\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x01\x16\x0E\x63\x61\x40\x65\x78\x61\x6D\x70\x6C\x65\x2E\x63\x6F\x6D"
diff --git a/tls/tests/files/ca-alternative.pem b/tls/tests/files/ca-alternative.pem
index 3793a1a..0842edc 100644
--- a/tls/tests/files/ca-alternative.pem
+++ b/tls/tests/files/ca-alternative.pem
@@ -3,27 +3,27 @@ MIIFAjCCA+qgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBnzETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxLDAqBgNVBAsMI09sZCBV
 bnRydXN0ZWQgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYDVQQDDBlvbmNlLndh
 cy5hLmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNv
-bTAgFw0yMDEwMTIxNzQ5NDRaGA8yMDUwMTAwNTE3NDk0NFowgYYxEzARBgoJkiaJ
+bTAgFw0yMTA2MjMyMDEyNDlaGA8yMDUxMDYxNjIwMTI0OVowgYYxEzARBgoJkiaJ
 k/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVD
 ZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0w
 GwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKWFJia5M5GJSnjxTbIW/h5Rl0/uS7jek4Rfk5fsy+2lxPk6
-/a+rdVXNHtLKmF8ouG8QocYr+MQNvGedhqSv8L+ViZXlz/zh/DMk5mzQUOSi5yrj
-jQbOJ8oeEAK2mXF42x4mNiNmBdUsavnaemXAoCX2f05wci0sGDS1fxUyGMV5Bay3
-2YCrFVyhfYUKbs9ItpMuyngIfBOVH7wa9N+XQuQIvT/ZZ2x/0PgbQWv+JFmIfMV4
-KuIZXuJYM0zmoLQEjgF1kdOpyoLot4u1EmgqceZakTTRZvst4rAZqib6F5lBgsZm
-4ige4KAQjGfJlVjiPBiAo/KyJjeu/d0iwLNdsHcCAwEAAaOCAVwwggFYMB0GA1Ud
-DgQWBBSLcFF+Oi4WrdNajz7wc6U4i2X3OzCB3wYDVR0jBIHXMIHUgBQJPzDGBIUp
-4KIn7BhZJbgPBpUEe6GBpaSBojCBnzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUG
+ggEPADCCAQoCggEBALVPwMAwe1XziYvKgnmFXlJSdPs10HHdSbNWmkOXdlp+Ev+y
+cWscf9U9TvKOzP+IFBv7ejZqrlaZiCdijIW6tM3en96tRkpnIXIGmZYhJdkBOH7X
+D0iaZopKnrlZcMhe9RQsZlm6Nbbe0lHljNufKIFf3RISBlfWFpPIjxlsSVE5U3sq
+yzZVk3B2cq0olHINMCXjcCl4Qo9xhmQ529MFy0kiAfX9Ftd9STxpGOvU65AM5qVT
+9fVrcGVrQmqlwOh0t1TV2dqtbCRg5n76zrpO75lBpmSF/nrMfyS2srs7U99YoZVg
+XDtlfVslScrNNdcq+qHkwbc7q70VLENZsi8eE+cCAwEAAaOCAVwwggFYMB0GA1Ud
+DgQWBBQFomBZpMKdE9Wi5wE0yOGG1ixIsTCB3wYDVR0jBIHXMIHUgBRw2U/H1A7n
+/zcgFpCbbBeb5omCeKGBpaSBojCBnzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUG
 CgmSJomT8ixkARkWB0VYQU1QTEUxLDAqBgNVBAsMI09sZCBVbnRydXN0ZWQgQ2Vy
 dGlmaWNhdGUgQXV0aG9yaXR5MSIwIAYDVQQDDBlvbmNlLndhcy5hLmNhLmV4YW1w
-bGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbYIUJMXPCPBYU7Ju
-V+eZvzCqQcLy6H8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwGQYD
+bGUuY29tMR0wGwYJKoZIhvcNAQkBFg5jYUBleGFtcGxlLmNvbYIUF01M8olIzj+z
+4bVXhMWW4Ss4wxkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwGQYD
 VR0RBBIwEIEOY2FAZXhhbXBsZS5jb20wGQYDVR0SBBIwEIEOY2FAZXhhbXBsZS5j
-b20wDQYJKoZIhvcNAQELBQADggEBABSrlQqoWp6reJsOYmlxUbDQJ5OuqcZuKEkn
-gscxFXeprhDD7eJmD8qHqFmfgM8e/tbnQw1xSOBgYpifVQRSij+TBWrJpX7980e7
-FKLPI5oOS/3geInW3Rs3EzfpGK1fKNR8mtTZj4hb0FnMpFXgiTYmRAeqQf3PCRge
-5Is8VP8eTtnzLi8gK8i8A97SOWyuqy/dzIz0UPthc0qvq5u7LR8sJZ901kWjBazq
-0KbZ/pyUrmLHaa07q8aU5Z1FPSH5l2PmtXtSfTvHBn8onG1LYF0WhjZ0qxsGvuRR
-9JX4dzGE2D8ub9f7B+ouF9hS6FIFujBNelk9dyirIgx+994qhPU=
+b20wDQYJKoZIhvcNAQELBQADggEBAHLLTXVx//mZg0X22Q1qLbn9JNMnhj/I32I9
+D/gLJ0QXI3EiPWN6NmMmxZ8zqJwXKH/wYpAyo2DORel7oZ+DZ0zOSJYFu+j7dqB/
+jt4h8Q4RNktFstuwT8YidizTTE4wmY8Dy5jH6KkaHw/nb9qFFA3eiWg8I/Py89HJ
+d5jAnkL8RfzOGcblEZhXzbq1n0Z1Q3bmUlqEwzvsPaDKsEEg5XRGjCRw6hlCu3z2
+Fm5G1zbPZQDaC+WMR+57ZmiCY/KcVtgQX8rEQNAggkOdXyhsIS9ZqjJ+AGQdynB6
+qTs3MsBWkCnzODnBLEDhZpA4OHGVtWOzLjpxUrxH2bpsz0/Oyv8=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/ca-key.pem b/tls/tests/files/ca-key.pem
index 1a42c34..58f001c 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 1cceb7a..d1e9552 100644
--- a/tls/tests/files/ca-roots-bad.pem
+++ b/tls/tests/files/ca-roots-bad.pem
@@ -1,31 +1,31 @@
 -----BEGIN CERTIFICATE-----
-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
+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
-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
+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
-AQoCggEBAKWFJia5M5GJSnjxTbIW/h5Rl0/uS7jek4Rfk5fsy+2lxPk6/a+rdVXN
-HtLKmF8ouG8QocYr+MQNvGedhqSv8L+ViZXlz/zh/DMk5mzQUOSi5yrjjQbOJ8oe
-EAK2mXF42x4mNiNmBdUsavnaemXAoCX2f05wci0sGDS1fxUyGMV5Bay32YCrFVyh
-fYUKbs9ItpMuyngIfBOVH7wa9N+XQuQIvT/ZZ2x/0PgbQWv+JFmIfMV4KuIZXuJY
-M0zmoLQEjgF1kdOpyoLot4u1EmgqceZakTTRZvst4rAZqib6F5lBgsZm4ige4KAQ
-jGfJlVjiPBiAo/KyJjeu/d0iwLNdsHcCAwEAAaOCAUMwggE/MB0GA1UdDgQWBBSL
-cFF+Oi4WrdNajz7wc6U4i2X3OzCBxgYDVR0jBIG+MIG7gBSLcFF+Oi4WrdNajz7w
-c6U4i2X3O6GBjKSBiTCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT
+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
-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
+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
-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
-MbJ0cWIRVg==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
+ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
+2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
+Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
+EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
+uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
+mSwrYe5j/A==
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
diff --git a/tls/tests/files/ca-roots.pem b/tls/tests/files/ca-roots.pem
index 0d2d24c..b0b3b20 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-----
-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
+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
-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
+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
-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
+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
-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
+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
-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
-MbJ0cWIRVg==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
+ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
+2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
+Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
+EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
+uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
+mSwrYe5j/A==
 -----END CERTIFICATE-----
 
 GLib shouldn't care about this comment
diff --git a/tls/tests/files/ca.pem b/tls/tests/files/ca.pem
index d5747af..5ddfd71 100644
--- a/tls/tests/files/ca.pem
+++ b/tls/tests/files/ca.pem
@@ -1,29 +1,29 @@
 -----BEGIN CERTIFICATE-----
-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
+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
-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
+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
-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
+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
-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
+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
-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
-MbJ0cWIRVg==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
+ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
+2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
+Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
+EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
+uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
+mSwrYe5j/A==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/chain.pem b/tls/tests/files/chain.pem
index 95c96e4..32ba346 100644
--- a/tls/tests/files/chain.pem
+++ b/tls/tests/files/chain.pem
@@ -3,78 +3,78 @@ MIIDuzCCAqOgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBrTETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxKzApBgNVBAsMIkludGVy
 bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxJDAiBgNVBAMMG2ludGVybWVk
 aWF0ZS1jYS5leGFtcGxlLmNvbTEqMCgGCSqGSIb3DQEJARYbaW50ZXJtZWRpYXRl
-LWNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk1MVoXDTQ1MTAwNjE3NDk1MVow
+LWNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYxNzIwMTI1MFow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN4t3FBzYQk48Bzm7S9JiZqmWVY/FagC9aim8foydtzXXcXj
-IEWc6AChko8FhLJAp5ZJCxm7MbYc5pZfyGgecBawG13fKYoPo+59dUJAw8xkENKC
-i57K0fsfwZf4v0SqawmYUj9AtIsy8Q6xTRfVHA+Pj2qbNNTMIUzgIg3b7TpGnhjN
-DlxYzXLPThiKD8Vm+SrXOm8W+hCpIivyGDNWCxTo1MHj2UUmHPGHfwZXCJ9dt8sc
-QTV1B0TeTJ3Xm/w+aAzUfbdlkCufsk6nLsj+gYMRkGGsYo/GmAv4/PPUop+yNK6V
-LL1nNgp0hP+VwvGU2cpn6BRBmpUu5xHrXkHjU+ECAwEAAaNHMEUwCQYDVR0TBAIw
+ggEPADCCAQoCggEBANZscJj8sc8XXM1BcVTs0E1SfQvPWptsWv66Mf7F6+ZAYrsA
+AyEi0NKsY7p0pmMSpUukbit883dIv/A6lQ4mWjHtCrwGRE3bEoRv94M4UW/U3t/m
+eOLK1b3NGq1bFhs6qOi0zyRWf2C2yFS4EPyyuKGbJ17gim8d/z+kMyYrflP5mBIb
+r2r1DAWBjzayxItTxqPNdpiwSTor2yvGtrDbbdX2WbZ7EqXoGCzsBwsqe46Sf5b+
+lLDcChpsuTBQABlAiwPJUJKlTcgugh1jMkq1z9RngOKGmcnMcokEThLxr2W+UNgr
+VVFMonjLg6OZimepQsJcd/Cp4zcg/z7VxKV/KDUCAwEAAaNHMEUwCQYDVR0TBAIw
 ADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEWghJzZXJ2ZXIu
-ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAHxnwEN8Xr9TUrHefXPdcDU2
-yd4F3u4bPL4RSSRFIKdqrAaHK0wnzLoF3HneUjKzU/l36kNHBa7dUo8Q2SGd3V4d
-zDR0uT9uUdsZVwmUbAcZs1Z9d1vPMWDqS1zwBKYtLTw2Z7sl9xaLYhxLZSyf1Pxe
-aC8+gNaqJ25aKAbDSMNCyF32vRy4OYy7Hi8Itexkva6XMlF4H4gSXs4QZP9WGhp7
-6YRdcy6Z6lJfkJ9SW6nsoNJvbYGOGbxHg9brxWJV8T7cFBQQVvZKasydS6+6IK/2
-/+n38vEog/7hGQ85iOsu0xOcdkKl/SIj1ckJtGAVif2kbCSzugSafA2jRELyiI0=
+ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEnEtyKxpVbVL+IPyVv6TdYZ
+hmrQnbhI56Qdj7sONFuvgGMs9NjB86+BrBxKZHAbZaDfy6YS/MnIaS56WKJ63aGN
+pNtSlblKpKS8B2+tCDkKaoN2QxZjiE+FkE4EYE1J5zkUFjcfHGHP2SH4GmhJXncF
+S5A9wbtBz7VkKANBaMIzutmmeUSae2yPEUOPW1DFB/6gYF5/CFeKJVmEASg6WsjK
+lMZanFRLk/cmuOJTbmLZjK5gis4WNp16kNYCIf9/1J/TIYnFwbTyZtIn5/9NDqLd
+Ox/d1J2la61f9ZidzmJ+bXibibsvxJw2oTgRSFUbIGF51l4vmsKdhO8Rrn2Lrp4=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIFAjCCA+qgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk1MVoXDTQ1MTAw
-NjE3NDk1MVowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
+NzIwMTI1MFowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
 FgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUgQXV0
 aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20xKjAo
 BgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBANEiR6aaGVdhIBCTJDbB0KBjAYu1f5on
-K3d+meKkp/K5V2DeatnupjqEkK8qEzzl8a81YblGg/k0mghDQMA+Rm9POPVNugUw
-uOlzlfOshVuNRVGMh+Svu7Sa8y++eMiQnWYk3nQETGa0C+4Lwx/khIfXJ4QQ0SWE
-3RDkNLS052zRXeyTsOnvFRtnLw3Z4rQWJrdJtvcHIL534jEsR8B/6sheYm3uL+Nu
-pH+NdiWnqWFglrvObG4Diyki1A7u1SHIBMwdc1sHu7yDrKsrTijqPbQpdRrip3jH
-RAMjH+KFzeUaJR8hlnIUgwctdw6kgG7OfQPq1hWtfpI8mJ4CFhux3/cCAwEAAaOC
-AVAwggFMMB0GA1UdDgQWBBRwLIOiczD2pbLEqglbtvsAlJFwtjCBxgYDVR0jBIG+
-MIG7gBSLcFF+Oi4WrdNajz7wc6U4i2X3O6GBjKSBiTCBhjETMBEGCgmSJomT8ixk
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEntLBoR5JY2+Fp6Wil2S9tyrRbw5gB
+6wm1fRGS0w9dm7DQqV8CwliiUjBhubK8k+RZj/WSMuDDPRgDsTrXt//3ppQQ+q12
+5B2gB/OzboKFAijaW/g7kmE7tnCaKnoOuSzfdBIE70zGTkGOsJ5urop5LPDUnyQJ
+na5s6vSnPFdmUgJk9OPFpvdXvjbs6ZySNWg1xt+lPMRXj9oVWFl0016sY+P6d8nj
+mXbF9782+nA0X1dHPFpnCWFPlmNJXCh6x06bUjoLuXpHFX4ufOg4j4yjnpuhRWy8
+iJA+3YV2jTg8G4MZs6OIta52mYxAWuVMAJ/CseM2A9oSe3KSojpiuz0CAwEAAaOC
+AVAwggFMMB0GA1UdDgQWBBR349zYU74MQUI4CP5iOJSe+GRu+DCBxgYDVR0jBIG+
+MIG7gBQFomBZpMKdE9Wi5wE0yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ+s67jByiORo59Mf4YWphlAh5esDAP
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAP
 BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAmBgNVHREEHzAdgRtpbnRl
 cm1lZGlhdGUtY2FAZXhhbXBsZS5jb20wGQYDVR0SBBIwEIEOY2FAZXhhbXBsZS5j
-b20wDQYJKoZIhvcNAQELBQADggEBADb+0KoGV/ZzUQ2moJnOQQRUL9HLtG9OC8Hh
-MZhGO0IhpwOkiT1Jy05n1tXu6x+XC3XI8WmzP6uuuNGmWoq38+AdtofPDXKnnLBN
-L3WU+JGI2cZ9eBv/yv1QeFxPFR9IuVMXc+Pt+2TVoV2ancDeH31GKqkktPO2G50g
-1F8AxaAV/PYIFQVGxH2+Cra3HKOcGWk7qHZBUh/Llvy+UWL6oa2MPBPmawNFq0Jm
-pIIO7SJzIieGTZL/X9GDOyGA4q9onvIJ2NHekIflYDG7hu440rG2evrnkjg63sBA
-QWp62b4ftpTxkvg1aLN92ciNVnajHv6Zc6HP1dBClWI26Hu8TRI=
+b20wDQYJKoZIhvcNAQELBQADggEBAHOSlg1N2O7TeLjOwLMd0oSi7+WW+ptgYERT
+JVENeNNUpG/7X7AFR8Ou5GbnpaoE/66O7QLsLAfDTCWpbxN8u7p2qbGuqKyCbaX6
+9f9NTuIdvPkVDUkPA8Mn4Uu+UNuntQYM/OQSaZPID0wcB8yW62a5AB5/6tIZ+8uQ
+U1gtucEMIwLyicpQuJMZd5HtfJOnNkEBLY+uZfs9BSrjfEekjg8l2EKapxa+EcYT
+EA2jxmxz8AbJcrFD4vnGJ2jypvvnllutwdHJaG4n24SFFV2TneI5IOIA3exAOhHR
+AzHbjaSGYoRJHh9UozgBjzAhwwZLexJ3SQOurSGZB8RPBK89Ysk=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-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
+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
-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
+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
-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
+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
-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
+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
-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
-MbJ0cWIRVg==
+EjAQgQ5jYUBleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAly/C4CqmVbIb
+ZdHTrwlMV046om9fJHUh3J+CHjAZoKRVtgEr9YYOezj61yEQR3Y6UfcsHMHcaLaE
+2vGMMr+R8zxVJ+sxhINmunwwgVhC+MJyulDEMKI7OWXaH4HGsfHFXMWTA2c/oQlX
+Fz2ksjlIrsyp1yb8d9heYv5xCNGFJO6oHkuSEVP2+DVYP/hmOoqlMtwkREgDBiuX
+EfoQMbqALlHdLweFoYQhWh2ZUmX6U/zc9587O6mxhbrkzGC4YAqkY/Iy6mYKiAoF
+uhwVZKidp7pllqRGnV3Oe/mUdTIbsIzo9dKda23YOne/nnlUR5PFTS6VvecRhTL4
+mSwrYe5j/A==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client-and-key.pem b/tls/tests/files/client-and-key.pem
index 1565e9d..f228a13 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
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDEwMTIxNzQ5NDVaFw00NTEwMDYxNzQ5
-NDVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
+NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALB/QctPIfpb
-onzUr4bxSANLsAWPoLyE8a1h2WUz2NJxtSjk0Ch531bGtlXxIMzGeUgJ0WwUh15L
-BJxm6vHcVVar1iV3JUf0XW4Wk0cYmpS36PXa9m0pQAXgzanbh5m5FWnGpO4QZS7d
-O7YYmbVO7lwIkT3B7dw3gCeMeyqSJbgXnBRB7zVff/lW/r0zJ1MF3AZHpDP17CHK
-175MBha29DqfsHkfqQga0eIR9vTqSBwe+m717pLgDoc23SgfHfsI+8F09uT+GEoy
-7Gr1CvT8mCkOHyg8yDIm0h7Az1hjvUPGW7P9PoYBCcto0OjcOPwTFVL8dgX8b6v+
-tOEvQEKIbfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAnpAITVJnj3JO0K8qk0H6
-0QkygDKnt1WDjRLEWui/oGKGjJOkuiREXWB8l7UM6VrP38xKALdusGX6wj6/9JsO
-H/wGP89YFM8YiP2YXlG9I/7mMNPV6QPai5tW+mYrfrRmqq8Y177Q8HBfNtW8ZXFi
-CsE6GM2fb/lUUSdn3DT7mUMwXcEtIOHKpa7/N2sdbifpNJdnmKzYRJHwIBgdfIj6
-pl6u4baDKiFTClTky+YHuuppGy8cs/ZrXi/b0nyWyZ/Z+cRke9DyWB+QqMPtF1Id
-kvu15eweJB4HbrmSkvA2IpuNIJQy6AQm67FKxiEjP8ksq5RW67CbHM1OZSeTKF4Y
-mQ==
+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==
 -----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-csr.pem b/tls/tests/files/client-csr.pem
new file mode 100644
index 0000000..9dc5ab3
--- /dev/null
+++ b/tls/tests/files/client-csr.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+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=
+-----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/client-future.pem b/tls/tests/files/client-future.pem
index eb149fe..c284324 100644
--- a/tls/tests/files/client-future.pem
+++ b/tls/tests/files/client-future.pem
@@ -7,17 +7,17 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAiGA8yMDYwMDcxNzIzMDAwMFoYDzIwNjEwNzE3
 MjMwMDAwWjBiMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEPMA0GA1UEAwwGQ2xpZW50MSEwHwYJKoZIhvcNAQkBFhJjbGllbnRA
-ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwf0HL
-TyH6W6J81K+G8UgDS7AFj6C8hPGtYdllM9jScbUo5NAoed9WxrZV8SDMxnlICdFs
-FIdeSwScZurx3FVWq9YldyVH9F1uFpNHGJqUt+j12vZtKUAF4M2p24eZuRVpxqTu
-EGUu3Tu2GJm1Tu5cCJE9we3cN4AnjHsqkiW4F5wUQe81X3/5Vv69MydTBdwGR6Qz
-9ewhyte+TAYWtvQ6n7B5H6kIGtHiEfb06kgcHvpu9e6S4A6HNt0oHx37CPvBdPbk
-/hhKMuxq9Qr0/JgpDh8oPMgyJtIewM9YY71Dxluz/T6GAQnLaNDo3Dj8ExVS/HYF
-/G+r/rThL0BCiG33AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKSDFn8ZZ3jeGauc
-xAz66UKVJq4TmY07OcN0TnU0CGn9k4ZdcHxHDQ+kIUsAYZprDPLY02uTGxP925fn
-RwlbTEyQML1be6e082yrmv0Z6rjgv05BnPr7iNIoAQA+W71jNBuHBoFVZpmPnpFY
-zPh4hEb6zLzicb7gXzZvXM1sapCJWqlfSW3tWOv45CfgEje9iYqN3UoueCcQMGXl
-gaqWipLmlgD6qu/EZ+FfxmHkv5eWMb7KYbvJXgaF7PaT2FgrCrybB+RO1RjIMsnD
-OaRnlfBr9Zue4cJMAVHjRg/jxirYiTnz63pirKQvBZ4g8eLIUO3WCDUVFxjhThgR
-uMedPw0=
+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=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client-key.pem b/tls/tests/files/client-key.pem
index e048c82..286fcfb 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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
+MIIEowIBAAKCAQEAxs5U6oE7o4+yHqdMDpguK5r5qwRE1AId9iDl2pAb6pmLJKd/
+p5jd2zZiJA7zWcqt4Fzy/ceCbvOglowbjZ5innCxUpWh55oHKpRc9IVVpa6YWCKO
+IsnEAg91LufM2C5NYdmwzUe6tIxPWpfFUeSERqbMHGKc7c50UyvJST7lyoOc3m2Z
+qIDtg4XGt0HCym8QiP9SIJwrbG2f9ae1RXHTql6FrR6+mhM2DnOe8++DSu7FBzVK
+lOIZ3auPmuIYiVeHQnyBdIuQPqv2yNFPtTHJXMIGVn8WgjuWMq44MgKHC+ggtEV1
+/zwgViKfYizqDRSFoWLSyhreszK7ho+7Fvm19wIDAQABAoIBAFNvqyHUZSRLHZVR
+31DMu6vfWeNVYlGcJdjzi6REEQNPt58FkUTUml/zHhNGFwnbT0g3ml+6CNrp8r7c
+RIAWNguK/lDLreyWr2VGaRDSmNR1R0jOD9s31MSMmkC6VjVwkVd81oABF7HIpVE/
+Gzg4cO9593X+SSBhIl75pHvSIvzvqxVDZyQARvOeQeM88Zq1m2uYgbkb08uS8Hot
+sT8N4qvh/fKth5cUzC/17g3rT0iNgOmQSGeMrUu/ZVvucwK/GOCaOQJ9+U0KkKWv
+SZlWk2cGPNzdztPnL7TjulW5bewq0Cl5QbqZ0pcuEp3pyPTRT2gYxkrQPBzEb9Xz
+qnHHkBECgYEA/WBM1mX3Cksn00YJ2yIWA6FiGFvqPzSS7hjnie55EgN4SJhgZTrD
+ZQzxb53zMWKJdQjIXc68CuOXJyDVjzLrFbb5R8qH/aFICPzDWHI3JyKQrjFyW4tK
+O/O0ZmLR8hwTqcGOMfOSWdhcaH9HMtV95/3FPm7p8KjpxPxKqs8C0C8CgYEAyN1d
+to+U1WGM38fJvndez3u7l71KXpfTSR2hhn+uWKqppiVhd9Rp8viI/QymNL1cPiRC
+HHUW+2F/QYzXpwH8Ys4Ke+Xxx2Wcw0TuK02DbUzDrSEuUHQUo/gdVaKXRgqxjK2f
+h7FsPgt5JqnlI80LSCy/wxCIFcOePbqSDPtt/LkCgYA41RznCj/7QxhPv2n+iQq/
+DbffFt7YBobeeR+WRLNLYxPb1LHqgt/JDroo+xjNfviuE6Y9xF1RY/NHh4nfcOBi
+IoSPodIXBdIOkgOPFy9fy9T//X9VIU0pXWSdgpTs5XdToGKwuZ2eIXW4yrPBpzly
+i+1uL5qxrHGjCaQF5CERaQKBgQCo8/JAffMtrJkHHhCm4ddg5G29S54DhOdWp9LW
+xA0NTbfXJbgfSA86LS1k1D/1OpYdOvhU4XRMTAzzQRmfw37cSPzujFLbaq/6W7+N
+suxqglhRBwji6VD3PtrFzjY51wLTFrOKOoWWhqYIDH3NqEnmEqXV2NDupZUzzPvO
+aapxGQKBgAtusGaSuB++6jSNiel5W3IhKibOWctw3QivfeJc7EX+BtcZSDOtDzMC
+HcqAGnwefLwVq4ydPPlcx5SMHuP9Xhuapts30FY+6ddZEFniLI+CfesdflpFV/Gy
+euz0FQTlvq41vBAcAyXPxJiQRXwA9UM0MHwVFBApBPxY8E3GhlWS
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/client-past.pem b/tls/tests/files/client-past.pem
index 66ae45e..91afbf3 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
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALB/QctPIfpb
-onzUr4bxSANLsAWPoLyE8a1h2WUz2NJxtSjk0Ch531bGtlXxIMzGeUgJ0WwUh15L
-BJxm6vHcVVar1iV3JUf0XW4Wk0cYmpS36PXa9m0pQAXgzanbh5m5FWnGpO4QZS7d
-O7YYmbVO7lwIkT3B7dw3gCeMeyqSJbgXnBRB7zVff/lW/r0zJ1MF3AZHpDP17CHK
-175MBha29DqfsHkfqQga0eIR9vTqSBwe+m717pLgDoc23SgfHfsI+8F09uT+GEoy
-7Gr1CvT8mCkOHyg8yDIm0h7Az1hjvUPGW7P9PoYBCcto0OjcOPwTFVL8dgX8b6v+
-tOEvQEKIbfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAgNa0nsEXn2Wdhzwkyhuk
-DvGsoDU8HIXP3hCC8+RIOZlL/rnSF55vizzInXqvkVDnJZ/X3L77v8KWVt7oRtZi
-6bXHpdi8B3JiY5djqVMJuYIHVXNUXL9GcvOqQGQ3c2TIUMGlpAvrppPVKPrqgV/7
-oBj9MFLT/bWQjzKkV5xit6ccrn7I1ncgAUjmUh+p1LbUqU0260oZLDVKlX5Ac9ua
-conXHEqLKcwJgyaANTMb6k9y2nksZIjDD6SFVjyQ8y6f/vc16y+URHBMGz4baNiR
-6OlBcSgjxj/fg0/95nmWS0INA3GV16hXV6tLoSuGLP9z5w8mSYhU7MYiYXn65foE
-mA==
+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==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client.pem b/tls/tests/files/client.pem
index 2551a6e..bd3d86c 100644
--- a/tls/tests/files/client.pem
+++ b/tls/tests/files/client.pem
@@ -2,20 +2,20 @@
 MIIDXTCCAkUCAQMwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDEwMTIxNzQ5NDVaFw00NTEwMDYxNzQ5
-NDVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
+NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALB/QctPIfpb
-onzUr4bxSANLsAWPoLyE8a1h2WUz2NJxtSjk0Ch531bGtlXxIMzGeUgJ0WwUh15L
-BJxm6vHcVVar1iV3JUf0XW4Wk0cYmpS36PXa9m0pQAXgzanbh5m5FWnGpO4QZS7d
-O7YYmbVO7lwIkT3B7dw3gCeMeyqSJbgXnBRB7zVff/lW/r0zJ1MF3AZHpDP17CHK
-175MBha29DqfsHkfqQga0eIR9vTqSBwe+m717pLgDoc23SgfHfsI+8F09uT+GEoy
-7Gr1CvT8mCkOHyg8yDIm0h7Az1hjvUPGW7P9PoYBCcto0OjcOPwTFVL8dgX8b6v+
-tOEvQEKIbfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAnpAITVJnj3JO0K8qk0H6
-0QkygDKnt1WDjRLEWui/oGKGjJOkuiREXWB8l7UM6VrP38xKALdusGX6wj6/9JsO
-H/wGP89YFM8YiP2YXlG9I/7mMNPV6QPai5tW+mYrfrRmqq8Y177Q8HBfNtW8ZXFi
-CsE6GM2fb/lUUSdn3DT7mUMwXcEtIOHKpa7/N2sdbifpNJdnmKzYRJHwIBgdfIj6
-pl6u4baDKiFTClTky+YHuuppGy8cs/ZrXi/b0nyWyZ/Z+cRke9DyWB+QqMPtF1Id
-kvu15eweJB4HbrmSkvA2IpuNIJQy6AQm67FKxiEjP8ksq5RW67CbHM1OZSeTKF4Y
-mQ==
+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==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/client2-and-key.pem b/tls/tests/files/client2-and-key.pem
index 987369c..3d118f1 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
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDEwMTIxNzQ5NTFaFw00NTEwMDYxNzQ5
-NTFaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
+NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVdmmU1KY3o
-MIgJbckUfm7uy/2Ba/60NeZDAWz2oZSZeiA65u7D0w0DYKceOf2btUY6pX9R7xuH
-jbh8ztV2xR93qqJRy2R/JhsW1XHgftWKLrbxUJ9KFN8xyUtECSROICyaaBl577h7
-hP0ifmCuW6+NJ8FQgfzwuWMseT5y2u01tUPHmF2SqEMvorVfoVUYjsdl56jWxlJ5
-v8D7htZbAwfU0XY3XjdMeCOg1/cy7RKMc+wVeVWAQFfHEqqmYAJBGtpMnHWJTXdq
-Omqp2poNEFgLzXdJIT/XjrxKGXKe9sMhSw4oL3lIAvxkjGEiXOqTRUU3ZuYKKJNk
-4SOABmG1T2cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAbjwRNYbPFq3BXdtRUldW
-56gKwSDd0K/nwSg3lRz89wTQJ4ql3s6CfD9QoTCiq3TcMnOi8lHug+9R2KDRu+CZ
-bCF2gh79TH+kgjDUwVp6lNMu9abVy6QfYnY6BGbhDQp82SdOSKN2/+q0g1aZmGzt
-GYAgP2uPvub9eTbq4fT6xNxctdM7pYFWibECBnw0yailolX+Y7dw2SbQ/8iTFmVQ
-CN6btbpR6PdnF0Ja7mnnVk5GNJh28bbPLvI399PvUJrqlsvcfN5VMVB9IfpQUx9Z
-39hl55qnABIVjWTK/CWIehjpy4306RCe6ug4Szqt61INqeODfPpntRSCGCR3/6uo
-pw==
+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==
 -----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
new file mode 100644
index 0000000..a276281
--- /dev/null
+++ b/tls/tests/files/client2-csr.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+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=
+-----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/client2-key.pem b/tls/tests/files/client2-key.pem
index 987c866..52bbfd6 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 b034024..9c4295a 100644
--- a/tls/tests/files/client2.pem
+++ b/tls/tests/files/client2.pem
@@ -2,20 +2,20 @@
 MIIDXTCCAkUCAQYwDQYJKoZIhvcNAQELBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND
 T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLDBVDZXJ0aWZpY2F0
 ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDEwMTIxNzQ5NTFaFw00NTEwMDYxNzQ5
-NTFaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
+NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVdmmU1KY3o
-MIgJbckUfm7uy/2Ba/60NeZDAWz2oZSZeiA65u7D0w0DYKceOf2btUY6pX9R7xuH
-jbh8ztV2xR93qqJRy2R/JhsW1XHgftWKLrbxUJ9KFN8xyUtECSROICyaaBl577h7
-hP0ifmCuW6+NJ8FQgfzwuWMseT5y2u01tUPHmF2SqEMvorVfoVUYjsdl56jWxlJ5
-v8D7htZbAwfU0XY3XjdMeCOg1/cy7RKMc+wVeVWAQFfHEqqmYAJBGtpMnHWJTXdq
-Omqp2poNEFgLzXdJIT/XjrxKGXKe9sMhSw4oL3lIAvxkjGEiXOqTRUU3ZuYKKJNk
-4SOABmG1T2cCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAbjwRNYbPFq3BXdtRUldW
-56gKwSDd0K/nwSg3lRz89wTQJ4ql3s6CfD9QoTCiq3TcMnOi8lHug+9R2KDRu+CZ
-bCF2gh79TH+kgjDUwVp6lNMu9abVy6QfYnY6BGbhDQp82SdOSKN2/+q0g1aZmGzt
-GYAgP2uPvub9eTbq4fT6xNxctdM7pYFWibECBnw0yailolX+Y7dw2SbQ/8iTFmVQ
-CN6btbpR6PdnF0Ja7mnnVk5GNJh28bbPLvI399PvUJrqlsvcfN5VMVB9IfpQUx9Z
-39hl55qnABIVjWTK/CWIehjpy4306RCe6ug4Szqt61INqeODfPpntRSCGCR3/6uo
-pw==
+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==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/create-files.sh b/tls/tests/files/create-files.sh
index 4eeac0f..a24aabc 100755
--- a/tls/tests/files/create-files.sh
+++ b/tls/tests/files/create-files.sh
@@ -10,23 +10,9 @@ msg() {
 cd `dirname $0`
 
 echo
-echo "This script re-generates all private keys and certificates"
-echo "needed to run the Unit Test."
-echo
-echo "                   *** IMPORTANT ***"
-echo
-echo "This script depends on datefudge, openssl, and python3's cryptography module."
-echo
-echo "A few manual changes need to be made."
-echo "certificate.c:test_certificate_not_valid_before"
-echo "and certificate.c:test_certificate_not_valid_after have"
-echo "EXPECTED_NOT_VALID_BEFORE and EXPECTED_NOT_VALID_AFTER"
-echo "that needs to be changed to match corresponding validity dates"
-echo "that are part of the new certificate named server.pem."
-echo "One way to obtain the new values is to inspect the output of:"
-echo "$ openssl x509 -inform pem -in ./tls/tests/files/server.pem -noout -text"
-echo
-echo "                   *** IMPORTANT ***"
+echo "This script regenerates all private keys and certificates"
+echo "needed to run glib-networking tests. Please note this script"
+echo "depends on datefudge, openssl, and python3's cryptography module."
 echo
 
 read -p "Press [Enter] key to continue..."
@@ -194,11 +180,12 @@ msg "Updating CA Root files"
 ./update-chain-with-new-root.py ca-roots-bad.pem ca.pem
 
 #######################################################################
-### Update test database
+### Update test expectations
 #######################################################################
 
-msg "Updating test database"
+msg "Updating test expectations"
 ./update-test-database.py ca.pem ../file-database.h
+./update-certificate-test.py server.pem ../certificate.h
 
 #######################################################################
 ### Cleanup
diff --git a/tls/tests/files/intermediate-ca-csr.pem b/tls/tests/files/intermediate-ca-csr.pem
index 0557eed..6798ee7 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
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANEiR6aaGVdhIBCTJDbB0KBjAYu1
-f5onK3d+meKkp/K5V2DeatnupjqEkK8qEzzl8a81YblGg/k0mghDQMA+Rm9POPVN
-ugUwuOlzlfOshVuNRVGMh+Svu7Sa8y++eMiQnWYk3nQETGa0C+4Lwx/khIfXJ4QQ
-0SWE3RDkNLS052zRXeyTsOnvFRtnLw3Z4rQWJrdJtvcHIL534jEsR8B/6sheYm3u
-L+NupH+NdiWnqWFglrvObG4Diyki1A7u1SHIBMwdc1sHu7yDrKsrTijqPbQpdRri
-p3jHRAMjH+KFzeUaJR8hlnIUgwctdw6kgG7OfQPq1hWtfpI8mJ4CFhux3/cCAwEA
-AaBRME8GCSqGSIb3DQEJDjFCMEAwHQYDVR0OBBYEFHAsg6JzMPalssSqCVu2+wCU
-kXC2MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-CwUAA4IBAQCP/tVVv0ry4qsvp237Tufq0FRF8iCxdDedPjPyqkTvS60GoU0N3oK7
-/kwJ7BtV6cuPekDmp8gdc3vQ7dkDs0F4rlgnQdYgizDmRyfX+a9PHxqc6uF90qwK
-OcNzGacuqyf4RFMEbVXAGnr2HJCqZPZrD2H5wfKIVkdJwKB6L8x4ZMMCh9MBrYs6
-+GekbOKFGnJsBbwK/dttT/wAydNwbm7I9ICNlm/nREti4IjvDtChUik+nVPiBRdx
-KA0JF0xeCXQMT/yqsXNTka797tGVS84e+DBv6l7a9jvkU/RlsKwYlOvmSNzuwT3E
-wgfVrzE/4yQ24iuzaoSC7VEeNb8WhQFq
+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
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/intermediate-ca-key.pem b/tls/tests/files/intermediate-ca-key.pem
index 28f2407..0ba6862 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 c5829fe..8f65c4f 100644
--- a/tls/tests/files/intermediate-ca.pem
+++ b/tls/tests/files/intermediate-ca.pem
@@ -2,28 +2,28 @@
 MIIFAjCCA+qgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk1MVoXDTQ1MTAw
-NjE3NDk1MVowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
+NzIwMTI1MFowga0xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZ
 FgdFWEFNUExFMSswKQYDVQQLDCJJbnRlcm1lZGlhdGUgQ2VydGlmaWNhdGUgQXV0
 aG9yaXR5MSQwIgYDVQQDDBtpbnRlcm1lZGlhdGUtY2EuZXhhbXBsZS5jb20xKjAo
 BgkqhkiG9w0BCQEWG2ludGVybWVkaWF0ZS1jYUBleGFtcGxlLmNvbTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBANEiR6aaGVdhIBCTJDbB0KBjAYu1f5on
-K3d+meKkp/K5V2DeatnupjqEkK8qEzzl8a81YblGg/k0mghDQMA+Rm9POPVNugUw
-uOlzlfOshVuNRVGMh+Svu7Sa8y++eMiQnWYk3nQETGa0C+4Lwx/khIfXJ4QQ0SWE
-3RDkNLS052zRXeyTsOnvFRtnLw3Z4rQWJrdJtvcHIL534jEsR8B/6sheYm3uL+Nu
-pH+NdiWnqWFglrvObG4Diyki1A7u1SHIBMwdc1sHu7yDrKsrTijqPbQpdRrip3jH
-RAMjH+KFzeUaJR8hlnIUgwctdw6kgG7OfQPq1hWtfpI8mJ4CFhux3/cCAwEAAaOC
-AVAwggFMMB0GA1UdDgQWBBRwLIOiczD2pbLEqglbtvsAlJFwtjCBxgYDVR0jBIG+
-MIG7gBSLcFF+Oi4WrdNajz7wc6U4i2X3O6GBjKSBiTCBhjETMBEGCgmSJomT8ixk
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEntLBoR5JY2+Fp6Wil2S9tyrRbw5gB
+6wm1fRGS0w9dm7DQqV8CwliiUjBhubK8k+RZj/WSMuDDPRgDsTrXt//3ppQQ+q12
+5B2gB/OzboKFAijaW/g7kmE7tnCaKnoOuSzfdBIE70zGTkGOsJ5urop5LPDUnyQJ
+na5s6vSnPFdmUgJk9OPFpvdXvjbs6ZySNWg1xt+lPMRXj9oVWFl0016sY+P6d8nj
+mXbF9782+nA0X1dHPFpnCWFPlmNJXCh6x06bUjoLuXpHFX4ufOg4j4yjnpuhRWy8
+iJA+3YV2jTg8G4MZs6OIta52mYxAWuVMAJ/CseM2A9oSe3KSojpiuz0CAwEAAaOC
+AVAwggFMMB0GA1UdDgQWBBR349zYU74MQUI4CP5iOJSe+GRu+DCBxgYDVR0jBIG+
+MIG7gBQFomBZpMKdE9Wi5wE0yOGG1ixIsaGBjKSBiTCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ+s67jByiORo59Mf4YWphlAh5esDAP
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQ734SS0cRdiuONO/jvzkEHOlWtxzAP
 BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAmBgNVHREEHzAdgRtpbnRl
 cm1lZGlhdGUtY2FAZXhhbXBsZS5jb20wGQYDVR0SBBIwEIEOY2FAZXhhbXBsZS5j
-b20wDQYJKoZIhvcNAQELBQADggEBADb+0KoGV/ZzUQ2moJnOQQRUL9HLtG9OC8Hh
-MZhGO0IhpwOkiT1Jy05n1tXu6x+XC3XI8WmzP6uuuNGmWoq38+AdtofPDXKnnLBN
-L3WU+JGI2cZ9eBv/yv1QeFxPFR9IuVMXc+Pt+2TVoV2ancDeH31GKqkktPO2G50g
-1F8AxaAV/PYIFQVGxH2+Cra3HKOcGWk7qHZBUh/Llvy+UWL6oa2MPBPmawNFq0Jm
-pIIO7SJzIieGTZL/X9GDOyGA4q9onvIJ2NHekIflYDG7hu440rG2evrnkjg63sBA
-QWp62b4ftpTxkvg1aLN92ciNVnajHv6Zc6HP1dBClWI26Hu8TRI=
+b20wDQYJKoZIhvcNAQELBQADggEBAHOSlg1N2O7TeLjOwLMd0oSi7+WW+ptgYERT
+JVENeNNUpG/7X7AFR8Ou5GbnpaoE/66O7QLsLAfDTCWpbxN8u7p2qbGuqKyCbaX6
+9f9NTuIdvPkVDUkPA8Mn4Uu+UNuntQYM/OQSaZPID0wcB8yW62a5AB5/6tIZ+8uQ
+U1gtucEMIwLyicpQuJMZd5HtfJOnNkEBLY+uZfs9BSrjfEekjg8l2EKapxa+EcYT
+EA2jxmxz8AbJcrFD4vnGJ2jypvvnllutwdHJaG4n24SFFV2TneI5IOIA3exAOhHR
+AzHbjaSGYoRJHh9UozgBjzAhwwZLexJ3SQOurSGZB8RPBK89Ysk=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/non-ca.pem b/tls/tests/files/non-ca.pem
index e08453c..a590181 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
-AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDEwMTIxNzQ5NDVaFw00NTEwMDYxNzQ5
-NDVaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
+AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMTA2MjMyMDEyNTBaFw00NjA2MTcyMDEy
+NTBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALB/QctPIfpb
-onzUr4bxSANLsAWPoLyE8a1h2WUz2NJxtSjk0Ch531bGtlXxIMzGeUgJ0WwUh15L
-BJxm6vHcVVar1iV3JUf0XW4Wk0cYmpS36PXa9m0pQAXgzanbh5m5FWnGpO4QZS7d
-O7YYmbVO7lwIkT3B7dw3gCeMeyqSJbgXnBRB7zVff/lW/r0zJ1MF3AZHpDP17CHK
-175MBha29DqfsHkfqQga0eIR9vTqSBwe+m717pLgDoc23SgfHfsI+8F09uT+GEoy
-7Gr1CvT8mCkOHyg8yDIm0h7Az1hjvUPGW7P9PoYBCcto0OjcOPwTFVL8dgX8b6v+
-tOEvQEKIbfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAnpAITVJnj3JO0K8qk0H6
-0QkygDKnt1WDjRLEWui/oGKGjJOkuiREXWB8l7UM6VrP38xKALdusGX6wj6/9JsO
-H/wGP89YFM8YiP2YXlG9I/7mMNPV6QPai5tW+mYrfrRmqq8Y177Q8HBfNtW8ZXFi
-CsE6GM2fb/lUUSdn3DT7mUMwXcEtIOHKpa7/N2sdbifpNJdnmKzYRJHwIBgdfIj6
-pl6u4baDKiFTClTky+YHuuppGy8cs/ZrXi/b0nyWyZ/Z+cRke9DyWB+QqMPtF1Id
-kvu15eweJB4HbrmSkvA2IpuNIJQy6AQm67FKxiEjP8ksq5RW67CbHM1OZSeTKF4Y
-mQ==
+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==
 -----END CERTIFICATE-----
 
 client-future.pem:
@@ -31,19 +31,19 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAiGA8yMDYwMDcxNzIzMDAwMFoYDzIwNjEwNzE3
 MjMwMDAwWjBiMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEPMA0GA1UEAwwGQ2xpZW50MSEwHwYJKoZIhvcNAQkBFhJjbGllbnRA
-ZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwf0HL
-TyH6W6J81K+G8UgDS7AFj6C8hPGtYdllM9jScbUo5NAoed9WxrZV8SDMxnlICdFs
-FIdeSwScZurx3FVWq9YldyVH9F1uFpNHGJqUt+j12vZtKUAF4M2p24eZuRVpxqTu
-EGUu3Tu2GJm1Tu5cCJE9we3cN4AnjHsqkiW4F5wUQe81X3/5Vv69MydTBdwGR6Qz
-9ewhyte+TAYWtvQ6n7B5H6kIGtHiEfb06kgcHvpu9e6S4A6HNt0oHx37CPvBdPbk
-/hhKMuxq9Qr0/JgpDh8oPMgyJtIewM9YY71Dxluz/T6GAQnLaNDo3Dj8ExVS/HYF
-/G+r/rThL0BCiG33AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKSDFn8ZZ3jeGauc
-xAz66UKVJq4TmY07OcN0TnU0CGn9k4ZdcHxHDQ+kIUsAYZprDPLY02uTGxP925fn
-RwlbTEyQML1be6e082yrmv0Z6rjgv05BnPr7iNIoAQA+W71jNBuHBoFVZpmPnpFY
-zPh4hEb6zLzicb7gXzZvXM1sapCJWqlfSW3tWOv45CfgEje9iYqN3UoueCcQMGXl
-gaqWipLmlgD6qu/EZ+FfxmHkv5eWMb7KYbvJXgaF7PaT2FgrCrybB+RO1RjIMsnD
-OaRnlfBr9Zue4cJMAVHjRg/jxirYiTnz63pirKQvBZ4g8eLIUO3WCDUVFxjhThgR
-uMedPw0=
+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=
 -----END CERTIFICATE-----
 
 client-past.pem:
@@ -56,19 +56,19 @@ ZSBBdXRob3JpdHkxFzAVBgNVBAMMDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN
 AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDA3MTcyMzAwMDBaFw0wMTA3MTcyMzAw
 MDBaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMQ8wDQYDVQQDDAZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt
-cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALB/QctPIfpb
-onzUr4bxSANLsAWPoLyE8a1h2WUz2NJxtSjk0Ch531bGtlXxIMzGeUgJ0WwUh15L
-BJxm6vHcVVar1iV3JUf0XW4Wk0cYmpS36PXa9m0pQAXgzanbh5m5FWnGpO4QZS7d
-O7YYmbVO7lwIkT3B7dw3gCeMeyqSJbgXnBRB7zVff/lW/r0zJ1MF3AZHpDP17CHK
-175MBha29DqfsHkfqQga0eIR9vTqSBwe+m717pLgDoc23SgfHfsI+8F09uT+GEoy
-7Gr1CvT8mCkOHyg8yDIm0h7Az1hjvUPGW7P9PoYBCcto0OjcOPwTFVL8dgX8b6v+
-tOEvQEKIbfcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAgNa0nsEXn2Wdhzwkyhuk
-DvGsoDU8HIXP3hCC8+RIOZlL/rnSF55vizzInXqvkVDnJZ/X3L77v8KWVt7oRtZi
-6bXHpdi8B3JiY5djqVMJuYIHVXNUXL9GcvOqQGQ3c2TIUMGlpAvrppPVKPrqgV/7
-oBj9MFLT/bWQjzKkV5xit6ccrn7I1ncgAUjmUh+p1LbUqU0260oZLDVKlX5Ac9ua
-conXHEqLKcwJgyaANTMb6k9y2nksZIjDD6SFVjyQ8y6f/vc16y+URHBMGz4baNiR
-6OlBcSgjxj/fg0/95nmWS0INA3GV16hXV6tLoSuGLP9z5w8mSYhU7MYiYXn65foE
-mA==
+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==
 -----END CERTIFICATE-----
 
 server.pem:
@@ -76,42 +76,42 @@ server.pem:
 MIIDlDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk0NFoXDTQ1MTAw
-NjE3NDk0NFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
+NzIwMTI1MFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANFcFiZ4ymgxJ9zzPc2q9R36m4dEVXmsYSx/
-fk6uXLMZ7S8eFIDRdM/THTLeZamIlWUsPBFigoxlOy/9j3sWR+0r4Ejba7nSlWmM
-o0MkoHgCsVndWtefQzncEbLLkZ1gz2dwjJFVSnaEGSrfdT4Sz5WtCmOX1L06J9fV
-ZQhdvHV8iPOlh1hSHTbkUP6hnsSA/2X5tGrgk3FaAqydTKX/vQbn5Uc+ygIrZCGQ
-t4etXkyXi6EMI6RNRoogYcV36ef8wYHfoxX/ou5fsUPI1ltgc57PCk5EsF1QMWkx
-cW85DZhInU8md7cZivf9MBlP7iwyWe9qISh+GSpfRs+mP1jVlvcCAwEAAaNHMEUw
+hvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JLwhOf
+VJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSAO5Mr
+UaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSNFaro
+KMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4QLoy
+NHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAmKHiN
+bkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaNHMEUw
 CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEK
-ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAB94wSkKZiW+
-lYf/FBsDpfXEhVNyKSJUs6OxwDPi94Ye9a9ANImUVbLyQG3vYNyJX23mqh/KR//b
-IfO78aUXvbyyejrR4l55nKlEvd+9gcOhfId/xgYdSF/i0mEVKL2W1Z+pj7WY6Izc
-hHUg9SaLYMLRYhQ7C8mB0Ocu7A1svN8J47YKWunaWkToQgIqXDn6naoE4vbv7JO3
-xZEFeMiBsCc8W3dabGxBznBrrBbOckwb9G858IOpKV7RVCGFbGm5zcpMUN4/8Nyg
-hHcmfCdLL3qojamfJ2YiVrkhXSeoT1MS/5xX9fORgHfO/R1+Iv/jZYgw+qub468V
-TXVlrWigIps=
+ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJyMWPA0PXmv
+yhgaxwHOi3AstCHxCQ/VMC+9fDWdwb3GkjBPgTJ4Trf41kfJAMutS++RNUulChxJ
+v3mOcWumeqcf7UA7SKSwQ4USUfPjr2xUwWpT3qH+rpaBhgoDUcniY1pVT13OFpBq
+50TsfjZgasULy0G2OI0VKI338/mGnNcM+Bq99NNIgFgtief1wHWA2XtPEPMIKiI7
+7dusrHy5LukgmL8/9v++FwdsoEHM8zFop9sHSclsoagc2tW9TTA1eGRSIOmYNoUL
+7zs+rBbCAD0fTQtLAzreF1+NORTuqZvCt2MNouAvRRcs9gxQnlwL5wdqHsljDhV3
+nThN3nY0pVs=
 -----END CERTIFICATE-----
 
 server-self.pem:
 -----BEGIN CERTIFICATE-----
-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
+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
-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
+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
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0VwWJnjKaDEn3PM9zar1Hfqbh0RVeaxh
-LH9+Tq5csxntLx4UgNF0z9MdMt5lqYiVZSw8EWKCjGU7L/2PexZH7SvgSNtrudKV
-aYyjQySgeAKxWd1a159DOdwRssuRnWDPZ3CMkVVKdoQZKt91PhLPla0KY5fUvTon
-19VlCF28dXyI86WHWFIdNuRQ/qGexID/Zfm0auCTcVoCrJ1Mpf+9BuflRz7KAitk
-IZC3h61eTJeLoQwjpE1GiiBhxXfp5/zBgd+jFf+i7l+xQ8jWW2Bzns8KTkSwXVAx
-aTFxbzkNmEidTyZ3txmK9/0wGU/uLDJZ72ohKH4ZKl9Gz6Y/WNWW9wIDAQABMA0G
-CSqGSIb3DQEBCwUAA4IBAQCit2+hiKShUhm+Usue2ncdtO0tN0vQKxNaZOeXw2An
-vm7k7fN2MnguXg7wLHPcV5UK5Iscwet8J46kEAs/gKpdtjJ60b3ZhcTalqePDtzH
-RsmD7FScmgxRSvHzv2M0BxGsCOY7OtvYYG5idQJPy8iGV84tZUDhK7Z3hErsPWYb
-FGk4EnD+dTObT7+Jtjhoq6gdASJ4Boo/PdSAcjTLW1QAZSMk0e7BC1Vmhdveubuf
-zfyGUJmxDbmclHSHwoRCnoPKUXNc3u1e9OcrQULK+bZRz1cg/V9NeFTMTPt3QLRy
-U7a3dtsyX6hWSz4fLy/OYRM52JitU+0cjg4q0Yp9BMUs
+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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 1db5abf..51287ad 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 cb498da..8fd06e5 100644
--- a/tls/tests/files/old-ca.pem
+++ b/tls/tests/files/old-ca.pem
@@ -1,30 +1,30 @@
 -----BEGIN CERTIFICATE-----
-MIIFLjCCBBagAwIBAgIUJMXPCPBYU7JuV+eZvzCqQcLy6H8wDQYJKoZIhvcNAQEL
+MIIFLjCCBBagAwIBAgIUF01M8olIzj+z4bVXhMWW4Ss4wxkwDQYJKoZIhvcNAQEL
 BQAwgZ8xEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN
 UExFMSwwKgYDVQQLDCNPbGQgVW50cnVzdGVkIENlcnRpZmljYXRlIEF1dGhvcml0
 eTEiMCAGA1UEAwwZb25jZS53YXMuYS5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3
-DQEJARYOY2FAZXhhbXBsZS5jb20wIBcNMjAxMDEyMTc0OTQ0WhgPMjA1MDEwMDUx
-NzQ5NDRaMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
+DQEJARYOY2FAZXhhbXBsZS5jb20wIBcNMjEwNjIzMjAxMjQ5WhgPMjA1MTA2MTYy
+MDEyNDlaMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYH
 RVhBTVBMRTEsMCoGA1UECwwjT2xkIFVudHJ1c3RlZCBDZXJ0aWZpY2F0ZSBBdXRo
 b3JpdHkxIjAgBgNVBAMMGW9uY2Uud2FzLmEuY2EuZXhhbXBsZS5jb20xHTAbBgkq
 hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAuEDVnakqhymgXTkKnf/ahFRD/Ou+JIHX6EJMYeeTRRuFemCfW0NK
-8opOTjivBe8sv9ApcAe5P99HcDxkBqEsnb92JozKMswwUGoKwnJ8UaRaLFkVffP/
-suz9/r/WJre/SnDZv6iOuhmCz3Xe1E+zZ70IsbCdkhk568KHvArDWQhzygqHtaVX
-/PLV2lcMS0GXA4nlNJZ6zF3NwPp9VDFut95BlhGXHo/g1h5W1lzR5QgPBxgciXX3
-n8HHbUUl2xNhWhrhYPh0TW/FR5YzciEMWC3C+UqG0ln6vPwXO+bMEEkc2zYN86fb
-M8Da2NrzbA1OAqoRpICOHhlwR0Lo94G56QIDAQABo4IBXDCCAVgwHQYDVR0OBBYE
-FAk/MMYEhSngoifsGFkluA8GlQR7MIHfBgNVHSMEgdcwgdSAFAk/MMYEhSngoifs
-GFkluA8GlQR7oYGlpIGiMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZIm
+MIIBCgKCAQEAsoCJMYbhriWcDlSDFBRQ4TP+HgoX3bZkFC/EAfN3OvsJ3b6o6tPG
+G71E7seeGEqA2tdOoQK1Pel0eBkpXo+xmFFTV21Eo0nTNpNbYEhw0zqNxYLPU18i
+uRS9ouZ3SarAlRU8OykxBRud/yMhcvnJ+84Tvykh8PaVU1DM84XLj1JnrZc4hZmK
+8+YQL8HYX94YDOM/53OisfQWn80tXbsSGbn0Ori/pE50/dKat/hl8qTvzxJ7FWF7
+PLIWtd+hBhj1+qHwfziJW1a0LSHvdV16jWRfmXCyNBe/3JNCN1CJgjwVPvYT9pO+
+gf3gvQ95+gJ3BH3rAvFD2uMDyshkZgc07wIDAQABo4IBXDCCAVgwHQYDVR0OBBYE
+FHDZT8fUDuf/NyAWkJtsF5vmiYJ4MIHfBgNVHSMEgdcwgdSAFHDZT8fUDuf/NyAW
+kJtsF5vmiYJ4oYGlpIGiMIGfMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZIm
 iZPyLGQBGRYHRVhBTVBMRTEsMCoGA1UECwwjT2xkIFVudHJ1c3RlZCBDZXJ0aWZp
 Y2F0ZSBBdXRob3JpdHkxIjAgBgNVBAMMGW9uY2Uud2FzLmEuY2EuZXhhbXBsZS5j
-b20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQkxc8I8FhTsm5X55m/
-MKpBwvLofzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAZBgNVHREE
+b20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tghQXTUzyiUjOP7PhtVeE
+xZbhKzjDGTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAZBgNVHREE
 EjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFtcGxlLmNvbTAN
-BgkqhkiG9w0BAQsFAAOCAQEAtOFK+XTv2hm1XqBItwo3nCC/I8zBOrN9nNFUYeBS
-rtMIMmMTje4JUg6M2x0PyFVhDAZSmmhgJHKiZT3BpLaeHSBoMJFhVEKcCZffXefW
-E7IB409LUdinPNGis88KTTlx976NngbWVJQrnzWfxGbsAXumM2wi8sByNPZoY/Db
-rqPuJSw2flFE0oS3cvm8udS3yrEDMWwMVTrzmj4/Mo//tKpXaxf7GfGjy6LYWrqh
-1TSeqZubqfz0awTkkePErmtrhmk0h0wEomyT5KiJHusIjPHBYPpv93vr7Kdu3/YJ
-vIDwbJgiGKUbQ9ei9WZj64KVgczPQX2/lNXALp85s86Kfg==
+BgkqhkiG9w0BAQsFAAOCAQEAqIthoyw9bbJI4h/uXrQN2IIqsqBHDy6H8z3BCiVM
+J6lBZMZ7+nkY4HheARFmevg7w1KwA45qEVHkPx6UN5iAXzSeO+57dMsXkmylBW9N
+tw3GfVDkqCSnApRJJUl9XeLpz73O0Lin7FF/So+EDbPGCpiSxvcrWshUfQHK19M9
+Nvydg505o+WQVRh0I8YkreEtcFmEaeCEiQbk8f5KVX8wkaHJJEjDUgd2QkW7QGQV
+O5RB91jpHnOdXgbaXEhvr7tk/T426YH8aFlmR/OCvVZjXwBt4FqacfTD7MBdumnu
+eYLVkDMbc5IlPBvvSLDOzt2FksLpbR44xK8D5xQ+iY0A3A==
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/root-ca-csr.pem b/tls/tests/files/root-ca-csr.pem
index 9ca15dc..4c33bab 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 f8dbed6..73b9c21 100644
--- a/tls/tests/files/server-and-key.pem
+++ b/tls/tests/files/server-and-key.pem
@@ -2,48 +2,48 @@
 MIIDlDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk0NFoXDTQ1MTAw
-NjE3NDk0NFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
+NzIwMTI1MFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANFcFiZ4ymgxJ9zzPc2q9R36m4dEVXmsYSx/
-fk6uXLMZ7S8eFIDRdM/THTLeZamIlWUsPBFigoxlOy/9j3sWR+0r4Ejba7nSlWmM
-o0MkoHgCsVndWtefQzncEbLLkZ1gz2dwjJFVSnaEGSrfdT4Sz5WtCmOX1L06J9fV
-ZQhdvHV8iPOlh1hSHTbkUP6hnsSA/2X5tGrgk3FaAqydTKX/vQbn5Uc+ygIrZCGQ
-t4etXkyXi6EMI6RNRoogYcV36ef8wYHfoxX/ou5fsUPI1ltgc57PCk5EsF1QMWkx
-cW85DZhInU8md7cZivf9MBlP7iwyWe9qISh+GSpfRs+mP1jVlvcCAwEAAaNHMEUw
+hvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JLwhOf
+VJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSAO5Mr
+UaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSNFaro
+KMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4QLoy
+NHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAmKHiN
+bkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaNHMEUw
 CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEK
-ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAB94wSkKZiW+
-lYf/FBsDpfXEhVNyKSJUs6OxwDPi94Ye9a9ANImUVbLyQG3vYNyJX23mqh/KR//b
-IfO78aUXvbyyejrR4l55nKlEvd+9gcOhfId/xgYdSF/i0mEVKL2W1Z+pj7WY6Izc
-hHUg9SaLYMLRYhQ7C8mB0Ocu7A1svN8J47YKWunaWkToQgIqXDn6naoE4vbv7JO3
-xZEFeMiBsCc8W3dabGxBznBrrBbOckwb9G858IOpKV7RVCGFbGm5zcpMUN4/8Nyg
-hHcmfCdLL3qojamfJ2YiVrkhXSeoT1MS/5xX9fORgHfO/R1+Iv/jZYgw+qub468V
-TXVlrWigIps=
+ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJyMWPA0PXmv
+yhgaxwHOi3AstCHxCQ/VMC+9fDWdwb3GkjBPgTJ4Trf41kfJAMutS++RNUulChxJ
+v3mOcWumeqcf7UA7SKSwQ4USUfPjr2xUwWpT3qH+rpaBhgoDUcniY1pVT13OFpBq
+50TsfjZgasULy0G2OI0VKI338/mGnNcM+Bq99NNIgFgtief1wHWA2XtPEPMIKiI7
+7dusrHy5LukgmL8/9v++FwdsoEHM8zFop9sHSclsoagc2tW9TTA1eGRSIOmYNoUL
+7zs+rBbCAD0fTQtLAzreF1+NORTuqZvCt2MNouAvRRcs9gxQnlwL5wdqHsljDhV3
+nThN3nY0pVs=
 -----END CERTIFICATE-----
 -----BEGIN RSA PRIVATE KEY-----
-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
+MIIEowIBAAKCAQEAtiOKalNrlxntbqmjT+dnMGfG3vrrckvCE59UnB6Z6NPjxZeC
+1CLwJjl582HO695zKbaSxqjpwuyT3koq1D7urVRHvMTcNIA7kytRoYs2E1iVtbOS
+ZAS3opwD7ib8n6p0dGxETgZ2yESaQrJKR2/C2EpPyGSi1I0VqugoyMgS7auNdx7M
+TsTuRg9LMR8AiFMOy7xNXBjrQXR0UNeJjTF0wirVN8pkobhAujI0egnUGRZKgl88
+nU6i7INK14ldrXV/yHz7Z9HWWVZAQufkzou0QCwcvttoYCYoeI1uRxCW2us9U67G
+NstJT4EiT/myg1wdFeBxn24DyQnYcYBqjFJL2QIDAQABAoIBABR6Gm2pw0bRm2f9
+mma5VViT0j/vZdkLu14JY7HJnvQWHl1wkzzWULl7bMJ4FJNgBwKBjC7Zfq5zeoxb
+OkVybdL+zrHiT/93CzuYeyz2QbYbF3m+Ho8wGJUnhSmZKH2q5DzSjztWbrRFQjKN
+aNxvLDC06hNVfRj4Y587SpqII9ikaEvj2c/I9V8tdpnQptyxYXeJdwARdAG8nLrh
+HJxOSMfeixOZ813CaOmOlptN8Z2S942+HjY9mCGGsLkjurtpm0jrhdfBo2rGBzax
+UYrozOQYJBjrEi5Lhi13ljMCPvmmPxCMPSclMBmRN5+DJTk1ghea664iblR1leZb
+wbM8+oECgYEA211FOZ9asZp+06QdoG4cjIV/TEBzUuQFBcpIivKoVWug8+wGs0/D
+9ca0Gtr3RQfajCx2uz4M6S33WUAKlWmEuL1BtFGd+H+tuKnpEbugFTE1iCsqsnl9
+GslFU44UKCoiyVJCiQpBoGpdMKPw0X/Hx5yvdqH0ViMOeMUqwb+yOk0CgYEA1I65
+9y4RY5RlLsAs/cwZG/Qje6Jw610ixLXi9K/WfwUew3rXvdaeK/W7zR3xCGm+NLiq
+Gu6NG+TyJ4WNGgPb+dKRxA3hwi3UYMwfDz56f8HLNk/lsWf9rOutJ2skY7b+oVrP
+jNSfFrtmnN6G6F4ZXIXNopAGcsJ5w1LGOwpgxb0CgYAv0xXUijlrnxMncRBEeb0f
+pbsrFKIP4EZ4DLHkGSM5/E0K4NpVHX7LhpadhD+EfUHYbZk1GUIXVD4o5x1nlamp
+3RkGBwU5uBxXtjNp+k3cUO4q0b5tSq9Lt7W1kbQzTXxoB9cZqXLFVmsav6MxCXq0
+uiRG6OgsH1h4XAQGWZSxwQKBgE4woqAWxjbHY+EquGI0LhhmWpckTj2GaT/LWM2B
+0XmwPHzUN4CR7mVlY8w0c3IQ0/M46vo1PptAQQPg0OL9AHKJzy07ngx8J1/kNpi4
+9v8AHuy/v1LfWiW+HFgfxacYrdpVOXwoyszl6v1RrnbUBqhOYDKooHaeq4P6cwlM
+7ARRAoGBAMJKNrHNFAdS+fSqCMDMx/fm7p5R8zAvIGWxtekduGMVyyIIOadz9DEJ
+pg0pVWg1vQ1uqXOaTlQfapiW/4H/6dadc4SXnK0GoGAGb4XF1xcT+gp3BCGQW+B1
+4wrLr7OVPQ+/jVtPbnO147mv6Aq9s5E4tdkR1J8Ekr3V2q558E5q
 -----END RSA PRIVATE KEY-----
diff --git a/tls/tests/files/server-csr.pem b/tls/tests/files/server-csr.pem
new file mode 100644
index 0000000..d4e2e68
--- /dev/null
+++ b/tls/tests/files/server-csr.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIICwTCCAakCAQAwSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk
+ARkWB0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JL
+whOfVJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSA
+O5MrUaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSN
+FaroKMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4
+QLoyNHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAm
+KHiNbkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaAx
+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==
+-----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-intermediate-csr.pem b/tls/tests/files/server-intermediate-csr.pem
index 07e86c2..3acbdea 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
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4t3FBzYQk48Bzm7S9JiZqmWVY/FagC
-9aim8foydtzXXcXjIEWc6AChko8FhLJAp5ZJCxm7MbYc5pZfyGgecBawG13fKYoP
-o+59dUJAw8xkENKCi57K0fsfwZf4v0SqawmYUj9AtIsy8Q6xTRfVHA+Pj2qbNNTM
-IUzgIg3b7TpGnhjNDlxYzXLPThiKD8Vm+SrXOm8W+hCpIivyGDNWCxTo1MHj2UUm
-HPGHfwZXCJ9dt8scQTV1B0TeTJ3Xm/w+aAzUfbdlkCufsk6nLsj+gYMRkGGsYo/G
-mAv4/PPUop+yNK6VLL1nNgp0hP+VwvGU2cpn6BRBmpUu5xHrXkHjU+ECAwEAAaAx
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBANZscJj8sc8XXM1BcVTs0E1SfQvPWpts
+Wv66Mf7F6+ZAYrsAAyEi0NKsY7p0pmMSpUukbit883dIv/A6lQ4mWjHtCrwGRE3b
+EoRv94M4UW/U3t/meOLK1b3NGq1bFhs6qOi0zyRWf2C2yFS4EPyyuKGbJ17gim8d
+/z+kMyYrflP5mBIbr2r1DAWBjzayxItTxqPNdpiwSTor2yvGtrDbbdX2WbZ7EqXo
+GCzsBwsqe46Sf5b+lLDcChpsuTBQABlAiwPJUJKlTcgugh1jMkq1z9RngOKGmcnM
+cokEThLxr2W+UNgrVVFMonjLg6OZimepQsJcd/Cp4zcg/z7VxKV/KDUCAwEAAaAx
 MC8GCSqGSIb3DQEJDjEiMCAwCQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcD
-ATANBgkqhkiG9w0BAQsFAAOCAQEAGWiCCA7ksG6NgBhTRKQikJ7mxzzSdEfrd6ow
-WmzG48Cuc/QF6Qhrs/EX0qvU76oWTh2zeogL49PxYf9JGHGkERUDWgin6EmCKRHJ
-JK5+gpKxyNnXeINi5I9JUaE2Twi/4kviGeqhmi8ej0n32YIfruHQ4bEfx6wdVa37
-ymZQFimk2HdDmmPxMr7TlGcBbJ+3rgOfl/EGhrogFwBKf55EITRz0QGKFX4DpR+9
-sgEAzICgYV8BHvgYYdcgPqDjOGIPSPG7ntHZZr8f66dl1om1s94t6rz23fabmC3g
-WHYRENSLiEJR+0dvsn4fR6Yo1fj0o4YntmR83O6H7Sa7iZgw3A==
+ATANBgkqhkiG9w0BAQsFAAOCAQEAjkE6lfN9MjucGqnY1TJ6hwB4ubzudyKIc+ip
+I1/JUQMRwXg9ZWIzAuTj4wQwQLNkipPIVNpwtTWzqENE+HhVOVbZtwf7nuh3q1K8
+HHMTuSqOQqmtVVmCi39L3qOvStImSfEo1p9cF6m455Wff9daJURUENCHcygFfhv/
+LHyYANmQB3+zho6asgOuxmCb64+Da+3aEyqNO00AFwv2odZ4yh2PN762ERVV5ZJs
+J1uKxDMvB2m9o7L+XMCZZEYq9DIUDm8FhsORNCoThLNTG0Lm+VSnJIV5XC90rHDV
+ceRMIgDfwir+FVFizrxwX4zQA5vX3TBfdRZq0TPUx2DULVXHow==
 -----END CERTIFICATE REQUEST-----
diff --git a/tls/tests/files/server-intermediate-key.pem b/tls/tests/files/server-intermediate-key.pem
index 3356bcd..653affb 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 c2aad3f..4a52817 100644
--- a/tls/tests/files/server-intermediate.pem
+++ b/tls/tests/files/server-intermediate.pem
@@ -3,20 +3,20 @@ MIIDuzCCAqOgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBrTETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxKzApBgNVBAsMIkludGVy
 bWVkaWF0ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxJDAiBgNVBAMMG2ludGVybWVk
 aWF0ZS1jYS5leGFtcGxlLmNvbTEqMCgGCSqGSIb3DQEJARYbaW50ZXJtZWRpYXRl
-LWNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk1MVoXDTQ1MTAwNjE3NDk1MVow
+LWNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYxNzIwMTI1MFow
 SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx
 GzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN4t3FBzYQk48Bzm7S9JiZqmWVY/FagC9aim8foydtzXXcXj
-IEWc6AChko8FhLJAp5ZJCxm7MbYc5pZfyGgecBawG13fKYoPo+59dUJAw8xkENKC
-i57K0fsfwZf4v0SqawmYUj9AtIsy8Q6xTRfVHA+Pj2qbNNTMIUzgIg3b7TpGnhjN
-DlxYzXLPThiKD8Vm+SrXOm8W+hCpIivyGDNWCxTo1MHj2UUmHPGHfwZXCJ9dt8sc
-QTV1B0TeTJ3Xm/w+aAzUfbdlkCufsk6nLsj+gYMRkGGsYo/GmAv4/PPUop+yNK6V
-LL1nNgp0hP+VwvGU2cpn6BRBmpUu5xHrXkHjU+ECAwEAAaNHMEUwCQYDVR0TBAIw
+ggEPADCCAQoCggEBANZscJj8sc8XXM1BcVTs0E1SfQvPWptsWv66Mf7F6+ZAYrsA
+AyEi0NKsY7p0pmMSpUukbit883dIv/A6lQ4mWjHtCrwGRE3bEoRv94M4UW/U3t/m
+eOLK1b3NGq1bFhs6qOi0zyRWf2C2yFS4EPyyuKGbJ17gim8d/z+kMyYrflP5mBIb
+r2r1DAWBjzayxItTxqPNdpiwSTor2yvGtrDbbdX2WbZ7EqXoGCzsBwsqe46Sf5b+
+lLDcChpsuTBQABlAiwPJUJKlTcgugh1jMkq1z9RngOKGmcnMcokEThLxr2W+UNgr
+VVFMonjLg6OZimepQsJcd/Cp4zcg/z7VxKV/KDUCAwEAAaNHMEUwCQYDVR0TBAIw
 ADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEWghJzZXJ2ZXIu
-ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAHxnwEN8Xr9TUrHefXPdcDU2
-yd4F3u4bPL4RSSRFIKdqrAaHK0wnzLoF3HneUjKzU/l36kNHBa7dUo8Q2SGd3V4d
-zDR0uT9uUdsZVwmUbAcZs1Z9d1vPMWDqS1zwBKYtLTw2Z7sl9xaLYhxLZSyf1Pxe
-aC8+gNaqJ25aKAbDSMNCyF32vRy4OYy7Hi8Itexkva6XMlF4H4gSXs4QZP9WGhp7
-6YRdcy6Z6lJfkJ9SW6nsoNJvbYGOGbxHg9brxWJV8T7cFBQQVvZKasydS6+6IK/2
-/+n38vEog/7hGQ85iOsu0xOcdkKl/SIj1ckJtGAVif2kbCSzugSafA2jRELyiI0=
+ZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEnEtyKxpVbVL+IPyVv6TdYZ
+hmrQnbhI56Qdj7sONFuvgGMs9NjB86+BrBxKZHAbZaDfy6YS/MnIaS56WKJ63aGN
+pNtSlblKpKS8B2+tCDkKaoN2QxZjiE+FkE4EYE1J5zkUFjcfHGHP2SH4GmhJXncF
+S5A9wbtBz7VkKANBaMIzutmmeUSae2yPEUOPW1DFB/6gYF5/CFeKJVmEASg6WsjK
+lMZanFRLk/cmuOJTbmLZjK5gis4WNp16kNYCIf9/1J/TIYnFwbTyZtIn5/9NDqLd
+Ox/d1J2la61f9ZidzmJ+bXibibsvxJw2oTgRSFUbIGF51l4vmsKdhO8Rrn2Lrp4=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/server-key.der b/tls/tests/files/server-key.der
index 781d7a8..a774283 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 7fd2413..e9ea7ef 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 d203ceb..187dbe2 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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
+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
-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
+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
-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
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtiOKalNrlxntbqmjT+dnMGfG3vrrckvC
+E59UnB6Z6NPjxZeC1CLwJjl582HO695zKbaSxqjpwuyT3koq1D7urVRHvMTcNIA7
+kytRoYs2E1iVtbOSZAS3opwD7ib8n6p0dGxETgZ2yESaQrJKR2/C2EpPyGSi1I0V
+qugoyMgS7auNdx7MTsTuRg9LMR8AiFMOy7xNXBjrQXR0UNeJjTF0wirVN8pkobhA
+ujI0egnUGRZKgl88nU6i7INK14ldrXV/yHz7Z9HWWVZAQufkzou0QCwcvttoYCYo
+eI1uRxCW2us9U67GNstJT4EiT/myg1wdFeBxn24DyQnYcYBqjFJL2QIDAQABMA0G
+CSqGSIb3DQEBCwUAA4IBAQARSPWwLDXZ1bb38+lkpw4Ty8HKTxGltYYK0Qk+suYS
+IhuQQzdPJWtPpXVUqx7+1u2Eo2sztbr/nuWtCt95ZPuhkZ/+jj5OtjSPzR/whiHN
+UkN5VLwuE/6V6cUm5uZpRXc5/Jma4qu+dCNm7xJSYc5K9fix53Ek04Q8SAWQ04Oi
+Afz1BvtyXvrbPsmJ/7x9ksK9JiTHi8FwpJde8lJsn6Rud7zoLsY7imujCtXDEELj
+o8h9QKD1PBTqoeIGnmcx7nEMQzb8tmjzep2/VdABkDmnMazedU5h4vd3ao/s077B
+qzmLMPvGs421a8eAl5AizR1fkguxwMCsGrIS28dqrQJe
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/server.der b/tls/tests/files/server.der
index 0113337..618edb9 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 44b49a8..d90e79b 100644
--- a/tls/tests/files/server.pem
+++ b/tls/tests/files/server.pem
@@ -2,21 +2,21 @@
 MIIDlDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhjETMBEGCgmSJomT8ixk
 ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsMFUNlcnRp
 ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOY2EuZXhhbXBsZS5jb20xHTAbBgkq
-hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIwMTAxMjE3NDk0NFoXDTQ1MTAw
-NjE3NDk0NFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
+hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTIxMDYyMzIwMTI1MFoXDTQ2MDYx
+NzIwMTI1MFowSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW
 B0VYQU1QTEUxGzAZBgNVBAMMEnNlcnZlci5leGFtcGxlLmNvbTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANFcFiZ4ymgxJ9zzPc2q9R36m4dEVXmsYSx/
-fk6uXLMZ7S8eFIDRdM/THTLeZamIlWUsPBFigoxlOy/9j3sWR+0r4Ejba7nSlWmM
-o0MkoHgCsVndWtefQzncEbLLkZ1gz2dwjJFVSnaEGSrfdT4Sz5WtCmOX1L06J9fV
-ZQhdvHV8iPOlh1hSHTbkUP6hnsSA/2X5tGrgk3FaAqydTKX/vQbn5Uc+ygIrZCGQ
-t4etXkyXi6EMI6RNRoogYcV36ef8wYHfoxX/ou5fsUPI1ltgc57PCk5EsF1QMWkx
-cW85DZhInU8md7cZivf9MBlP7iwyWe9qISh+GSpfRs+mP1jVlvcCAwEAAaNHMEUw
+hvcNAQEBBQADggEPADCCAQoCggEBALYjimpTa5cZ7W6po0/nZzBnxt7663JLwhOf
+VJwemejT48WXgtQi8CY5efNhzuvecym2ksao6cLsk95KKtQ+7q1UR7zE3DSAO5Mr
+UaGLNhNYlbWzkmQEt6KcA+4m/J+qdHRsRE4GdshEmkKySkdvwthKT8hkotSNFaro
+KMjIEu2rjXcezE7E7kYPSzEfAIhTDsu8TVwY60F0dFDXiY0xdMIq1TfKZKG4QLoy
+NHoJ1BkWSoJfPJ1OouyDSteJXa11f8h8+2fR1llWQELn5M6LtEAsHL7baGAmKHiN
+bkcQltrrPVOuxjbLSU+BIk/5soNcHRXgcZ9uA8kJ2HGAaoxSS9kCAwEAAaNHMEUw
 CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAjBgNVHREEHDAahwTAqAEK
-ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAB94wSkKZiW+
-lYf/FBsDpfXEhVNyKSJUs6OxwDPi94Ye9a9ANImUVbLyQG3vYNyJX23mqh/KR//b
-IfO78aUXvbyyejrR4l55nKlEvd+9gcOhfId/xgYdSF/i0mEVKL2W1Z+pj7WY6Izc
-hHUg9SaLYMLRYhQ7C8mB0Ocu7A1svN8J47YKWunaWkToQgIqXDn6naoE4vbv7JO3
-xZEFeMiBsCc8W3dabGxBznBrrBbOckwb9G858IOpKV7RVCGFbGm5zcpMUN4/8Nyg
-hHcmfCdLL3qojamfJ2YiVrkhXSeoT1MS/5xX9fORgHfO/R1+Iv/jZYgw+qub468V
-TXVlrWigIps=
+ghJzZXJ2ZXIuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggEBAJyMWPA0PXmv
+yhgaxwHOi3AstCHxCQ/VMC+9fDWdwb3GkjBPgTJ4Trf41kfJAMutS++RNUulChxJ
+v3mOcWumeqcf7UA7SKSwQ4USUfPjr2xUwWpT3qH+rpaBhgoDUcniY1pVT13OFpBq
+50TsfjZgasULy0G2OI0VKI338/mGnNcM+Bq99NNIgFgtief1wHWA2XtPEPMIKiI7
+7dusrHy5LukgmL8/9v++FwdsoEHM8zFop9sHSclsoagc2tW9TTA1eGRSIOmYNoUL
+7zs+rBbCAD0fTQtLAzreF1+NORTuqZvCt2MNouAvRRcs9gxQnlwL5wdqHsljDhV3
+nThN3nY0pVs=
 -----END CERTIFICATE-----
diff --git a/tls/tests/files/update-certificate-test.py b/tls/tests/files/update-certificate-test.py
new file mode 100755
index 0000000..7a8157f
--- /dev/null
+++ b/tls/tests/files/update-certificate-test.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+import sys
+import cryptography.x509
+
+try:
+    in_path = sys.argv[1]
+    out_path = sys.argv[2]
+except IndexError:
+    sys.exit('USAGE: update-test-database.py server.pem output_header.h')
+
+with open(in_path, 'rb') as in_file:
+    cert_data = in_file.read()
+
+cert = cryptography.x509.load_pem_x509_certificate(cert_data)
+
+header = '''/* This file is generated from update-certificate-test.py */
+
+#define EXPECTED_NOT_VALID_BEFORE "{}Z"
+#define EXPECTED_NOT_VALID_AFTER "{}Z"
+'''.format(cert.not_valid_before.isoformat(), cert.not_valid_after.isoformat())
+
+with open(out_path, 'w') as out_file:
+    out_file.write(header)
diff --git a/tls/tests/files/update-test-database.py b/tls/tests/files/update-test-database.py
index 3761ea9..940ef5c 100755
--- a/tls/tests/files/update-test-database.py
+++ b/tls/tests/files/update-test-database.py
@@ -17,7 +17,7 @@ cert = cryptography.x509.load_pem_x509_certificate(cert_data)
 subject_data = cert.subject.public_bytes()
 hex_subject = ''.join('\\x%02X' % b for b in subject_data)
 
-header = '''/* This is a generated file from update-test-database.py */
+header = '''/* This file is generated from update-test-database.py */
 
 #define ISSUER_DATA "{}"
 '''.format(hex_subject)


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