Version 1.13.0-dev.7.5

Branch blink (webkit) for 1.13 dartium
Cherry pick 169b132a6366c0058db43a5e5f2eae3b09032ec9 to dev
Cherry pick 677d4b5bbc97c2aee1b03de8398ffedf977cd703 to dev
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index f45c923..9eca05f 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -812,6 +812,7 @@
             importElement.deferred = importDirective.deferredKeyword != null;
             importElement.combinators = _buildCombinators(importDirective);
             importElement.importedLibrary = importedLibrary;
+            _setDocRange(importElement, importDirective);
             SimpleIdentifier prefixNode = directive.prefix;
             if (prefixNode != null) {
               importElement.prefixOffset = prefixNode.offset;
@@ -853,6 +854,7 @@
             exportElement.uri = exportDirective.uriContent;
             exportElement.combinators = _buildCombinators(exportDirective);
             exportElement.exportedLibrary = exportedLibrary;
+            _setDocRange(exportElement, exportDirective);
             directive.element = exportElement;
             exports.add(exportElement);
             if (exportSourceKindMap[exportedSource] != SourceKind.LIBRARY) {
@@ -893,6 +895,17 @@
   }
 
   /**
+   * If the given [node] has a documentation comment, remember its range
+   * into the given [element].
+   */
+  void _setDocRange(ElementImpl element, AnnotatedNode node) {
+    Comment comment = node.documentationComment;
+    if (comment != null && comment.isDocumentation) {
+      element.setDocRange(comment.offset, comment.length);
+    }
+  }
+
+  /**
    * Return a map from the names of the inputs of this kind of task to the task
    * input descriptors describing those inputs for a task with the
    * given library [libSource].
@@ -1161,6 +1174,7 @@
     //
     // Update "part" directives.
     //
+    LibraryDirective libraryDirective = null;
     LibraryIdentifier libraryNameNode = null;
     String partsLibraryName = _UNKNOWN_LIBRARY_NAME;
     bool hasPartDirective = false;
@@ -1171,7 +1185,8 @@
         <CompilationUnitElementImpl>[];
     for (Directive directive in definingCompilationUnit.directives) {
       if (directive is LibraryDirective) {
-        if (libraryNameNode == null) {
+        if (libraryDirective == null) {
+          libraryDirective = directive;
           libraryNameNode = directive.name;
           directivesToResolve.add(directive);
         }
@@ -1255,6 +1270,9 @@
     if (sourcedCompilationUnits.isNotEmpty) {
       _patchTopLevelAccessors(libraryElement);
     }
+    if (libraryDirective != null) {
+      _setDocRange(libraryElement, libraryDirective);
+    }
     //
     // Record outputs.
     //
@@ -1341,6 +1359,17 @@
   }
 
   /**
+   * If the given [node] has a documentation comment, remember its range
+   * into the given [element].
+   */
+  void _setDocRange(ElementImpl element, AnnotatedNode node) {
+    Comment comment = node.documentationComment;
+    if (comment != null && comment.isDocumentation) {
+      element.setDocRange(comment.offset, comment.length);
+    }
+  }
+
+  /**
    * Return a map from the names of the inputs of this kind of task to the task
    * input descriptors describing those inputs for a task with the given
    * [libSource].
diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
index 1455f20..f95e3dc 100644
--- a/pkg/analyzer/test/src/context/context_test.dart
+++ b/pkg/analyzer/test/src/context/context_test.dart
@@ -397,7 +397,7 @@
     });
   }
 
-  void test_computeDocumentationComment_block() {
+  void test_computeDocumentationComment_class_block() {
     String comment = "/** Comment */";
     Source source = addSource(
         "/test.dart",
@@ -411,7 +411,7 @@
     expect(context.computeDocumentationComment(classElement), comment);
   }
 
-  void test_computeDocumentationComment_none() {
+  void test_computeDocumentationComment_class_none() {
     Source source = addSource("/test.dart", "class A {}");
     LibraryElement libraryElement = context.computeLibraryElement(source);
     expect(libraryElement, isNotNull);
@@ -420,11 +420,7 @@
     expect(context.computeDocumentationComment(classElement), isNull);
   }
 
-  void test_computeDocumentationComment_null() {
-    expect(context.computeDocumentationComment(null), isNull);
-  }
-
-  void test_computeDocumentationComment_singleLine_multiple_EOL_n() {
+  void test_computeDocumentationComment_class_singleLine_multiple_EOL_n() {
     String comment = "/// line 1\n/// line 2\n/// line 3\n";
     Source source = addSource("/test.dart", "${comment}class A {}");
     LibraryElement libraryElement = context.computeLibraryElement(source);
@@ -435,7 +431,7 @@
     expect(actual, "/// line 1\n/// line 2\n/// line 3");
   }
 
-  void test_computeDocumentationComment_singleLine_multiple_EOL_rn() {
+  void test_computeDocumentationComment_class_singleLine_multiple_EOL_rn() {
     String comment = "/// line 1\r\n/// line 2\r\n/// line 3\r\n";
     Source source = addSource("/test.dart", "${comment}class A {}");
     LibraryElement libraryElement = context.computeLibraryElement(source);
@@ -446,6 +442,51 @@
     expect(actual, "/// line 1\n/// line 2\n/// line 3");
   }
 
+  void test_computeDocumentationComment_exportDirective_block() {
+    String comment = '/** Comment */';
+    Source source = addSource(
+        "/test.dart",
+        '''
+$comment
+export 'dart:async';
+''');
+    LibraryElement libraryElement = context.computeLibraryElement(source);
+    expect(libraryElement, isNotNull);
+    ExportElement exportElement = libraryElement.exports[0];
+    expect(context.computeDocumentationComment(exportElement), comment);
+  }
+
+  void test_computeDocumentationComment_importDirective_block() {
+    String comment = '/** Comment */';
+    Source source = addSource(
+        "/test.dart",
+        '''
+$comment
+import 'dart:async';
+''');
+    LibraryElement libraryElement = context.computeLibraryElement(source);
+    expect(libraryElement, isNotNull);
+    ImportElement importElement = libraryElement.imports[0];
+    expect(context.computeDocumentationComment(importElement), comment);
+  }
+
+  void test_computeDocumentationComment_libraryDirective_block() {
+    String comment = '/** Comment */';
+    Source source = addSource(
+        "/test.dart",
+        '''
+$comment
+library lib;
+''');
+    LibraryElement libraryElement = context.computeLibraryElement(source);
+    expect(libraryElement, isNotNull);
+    expect(context.computeDocumentationComment(libraryElement), comment);
+  }
+
+  void test_computeDocumentationComment_null() {
+    expect(context.computeDocumentationComment(null), isNull);
+  }
+
   void test_computeErrors_dart_none() {
     Source source = addSource("/lib.dart", "library lib;");
     List<AnalysisError> errors = context.computeErrors(source);
diff --git a/runtime/bin/io_natives.cc b/runtime/bin/io_natives.cc
index 086e9f3..011e792 100644
--- a/runtime/bin/io_natives.cc
+++ b/runtime/bin/io_natives.cc
@@ -96,7 +96,7 @@
   V(Process_Pid, 1)                                                            \
   V(Process_SetSignalHandler, 1)                                               \
   V(Process_ClearSignalHandler, 1)                                             \
-  V(SecureSocket_Connect, 8)                                                   \
+  V(SecureSocket_Connect, 7)                                                   \
   V(SecureSocket_Destroy, 1)                                                   \
   V(SecureSocket_FilterPointer, 1)                                             \
   V(SecureSocket_GetSelectedProtocol, 1)                                       \
diff --git a/runtime/bin/secure_socket.cc b/runtime/bin/secure_socket.cc
index 4d3c679..c5bdae9 100644
--- a/runtime/bin/secure_socket.cc
+++ b/runtime/bin/secure_socket.cc
@@ -183,10 +183,8 @@
       DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 4));
   bool require_client_certificate =
       DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 5));
-  bool send_client_certificate =
-      DartUtils::GetBooleanValue(Dart_GetNativeArgument(args, 6));
   Dart_Handle protocols_handle =
-      ThrowIfError(Dart_GetNativeArgument(args, 7));
+      ThrowIfError(Dart_GetNativeArgument(args, 6));
 
   const char* host_name = NULL;
   // TODO(whesse): Is truncating a Dart string containing \0 what we want?
@@ -209,7 +207,6 @@
                            is_server,
                            request_client_certificate,
                            require_client_certificate,
-                           send_client_certificate,
                            protocols_handle);
 }
 
@@ -890,7 +887,6 @@
                         bool is_server,
                         bool request_client_certificate,
                         bool require_client_certificate,
-                        bool send_client_certificate,
                         Dart_Handle protocols_handle) {
   is_server_ = is_server;
   if (in_handshake_) {
diff --git a/runtime/bin/secure_socket.h b/runtime/bin/secure_socket.h
index 2af0055..29adef4 100644
--- a/runtime/bin/secure_socket.h
+++ b/runtime/bin/secure_socket.h
@@ -68,7 +68,6 @@
                bool is_server,
                bool request_client_certificate,
                bool require_client_certificate,
-               bool send_client_certificate,
                Dart_Handle protocols_handle);
   void Destroy();
   void Handshake();
diff --git a/runtime/bin/secure_socket_patch.dart b/runtime/bin/secure_socket_patch.dart
index c8b0725..8d0b6bc 100644
--- a/runtime/bin/secure_socket_patch.dart
+++ b/runtime/bin/secure_socket_patch.dart
@@ -81,7 +81,6 @@
                bool is_server,
                bool requestClientCertificate,
                bool requireClientCertificate,
-               bool sendClientCertificate,
                Uint8List protocols) native "SecureSocket_Connect";
 
   void destroy() {
diff --git a/sdk/lib/io/http_impl.dart b/sdk/lib/io/http_impl.dart
index 2b2bb86..2bae836 100644
--- a/sdk/lib/io/http_impl.dart
+++ b/sdk/lib/io/http_impl.dart
@@ -1636,7 +1636,6 @@
         ? SecureSocket.connect(host,
                                port,
                                context: context,
-                               sendClientCertificate: true,
                                onBadCertificate: callback)
         : Socket.connect(host, port));
     _connecting++;
diff --git a/sdk/lib/io/secure_socket.dart b/sdk/lib/io/secure_socket.dart
index 468e1bd..5e417e5 100644
--- a/sdk/lib/io/secure_socket.dart
+++ b/sdk/lib/io/secure_socket.dart
@@ -18,6 +18,11 @@
    * [host] on port [port]. The returned Future will complete with a
    * [SecureSocket] that is connected and ready for subscription.
    *
+   * The certificate provided by the server is checked
+   * using the trusted certificates set in the SecurityContext object.
+   * The default SecurityContext object contains a built-in set of trusted
+   * root certificates for well-known certificate authorities.
+   *
    * [onBadCertificate] is an optional handler for unverifiable certificates.
    * The handler receives the [X509Certificate], and can inspect it and
    * decide (or let the user decide) whether to accept
@@ -29,7 +34,6 @@
       int port,
       {SecurityContext context,
        bool onBadCertificate(X509Certificate certificate),
-       bool sendClientCertificate,
        List<String> supportedProtocols}) {
     return RawSecureSocket.connect(host,
                                    port,
@@ -166,8 +170,9 @@
  * RawSecureServerSocket, also returns RawSecureSocket objects representing
  * the server end of a secure connection.
  * The certificate provided by the server is checked
- * using the trusted certificates set in the SecurityContext object and/or
- * the default built-in root certificates.
+ * using the trusted certificates set in the SecurityContext object.
+ * The default SecurityContext object contains a built-in set of trusted
+ * root certificates for well-known certificate authorities.
  */
 abstract class RawSecureSocket implements RawSocket {
   /**
@@ -176,15 +181,10 @@
    * RawSecureSocket when it is connected and ready for subscription.
    *
    * The certificate provided by the server is checked
-   * using the trusted certificates set in the SecurityContext object and/or
-   * the default built-in
-   * root certificates. If [sendClientCertificate] is
-   * set to true, the socket will send a client certificate if one is
-   * requested by the server. If [certificateName] is the nickname of
-   * a certificate in the certificate database, that certificate will be sent.
-   * If [certificateName] is null, which is the usual use case, an
-   * appropriate certificate will be searched for in the database and
-   * sent automatically, based on what the server says it will accept.
+   * using the trusted certificates set in the SecurityContext object
+   * If a certificate and key are set on the client, using useCertificateChain
+   * and usePrivateKey, and the server asks for a client certificate,
+   * then that client certificate is sent to the server.
    *
    * [onBadCertificate] is an optional handler for unverifiable certificates.
    * The handler receives the [X509Certificate], and can inspect it and
@@ -425,7 +425,6 @@
        List<int> bufferedData,
        bool requestClientCertificate: false,
        bool requireClientCertificate: false,
-       bool sendClientCertificate: false,
        bool onBadCertificate(X509Certificate certificate),
        List<String> supportedProtocols}) {
     _verifyFields(host, requestedPort, is_server,
@@ -513,9 +512,6 @@
                             requestClientCertificate ||
                                 requireClientCertificate,
                             requireClientCertificate,
-                            // TODO(whesse): Remove sendClientCertificate
-                            // argument, or add it to API.
-                            false, // sendClientCertificate,
                             encodedProtocols);
       _secureHandshake();
     } catch (e, s) {
@@ -1168,7 +1164,6 @@
                bool is_server,
                bool requestClientCertificate,
                bool requireClientCertificate,
-               bool sendClientCertificate,
                Uint8List protocols);
   void destroy();
   void handshake();
diff --git a/tests/standalone/io/certificates/client1.pem b/tests/standalone/io/certificates/client1.pem
index 9b4601d..429cd72 100644
--- a/tests/standalone/io/certificates/client1.pem
+++ b/tests/standalone/io/certificates/client1.pem
@@ -1,19 +1,19 @@
 -----BEGIN CERTIFICATE-----
-MIIDBzCCAe+gAwIBAgIBATANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9jbGll
-bnRhdXRob3JpdHkwHhcNMTUxMDE5MTE1NTEzWhcNMjUxMDE2MTE1NTEzWjAQMQ4w
-DAYDVQQDDAV1c2VyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKTH
-xIsQGP4MxyAt8Jv4TgOXEvWAEBjMglmw0xULTUDXZ+tj9+1M6kwU11E/DNXjnPep
-zEgq6nX2BgQWCba6TBilOqjU/hiiz1Gm5+9jaW82SByMj+9FpsVyp3Gu3ujwYFYz
-wU5PmRUCR4WTFhy06cdq4F0+ci7q0s1gIJ6UHKS41/39srKkdmNiPeIai6ZIuv8v
-lgBxMv3HShxde4w7yDkJ7mzuchSHgGyH3EpjycbqfZOLeuGqdWfVOPsM/38y+NeC
-DwowrqA5SrdWGtJhpsN5GGmVYO0qQZZtCu1oruwduqTx6nMBWkyFCQCMJ8HwShpG
-q2X0DSfT5BQNrGyTHqECAwEAAaNiMGAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUpiY9
-3N5Ylof6MW814xa/CyDxokswHwYDVR0jBBgwFoAU/ZBUqBvh6hb/ZNWYS43nch78
-vz8wEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAJDBCztQ
-xGY+QGycWrIEPC66ss2WgjPp9cU/56IggfX5YN0YG03vItYlFqm4wufL9PF5YJ2y
-hd5by0tzUmL+Y6ZKYAdzffBjHk//8hdGxsNy/6KLLDbwRycWXq0Ywo5BnGTwJcpV
-m4VTaddYUk8nDTWCf6JYQMdFfF0LUziVUsyJF21CDiAXPCTSA4aSAy5/OhRTUzXn
-1MX8yZRgY//7sNz2nqEvuHD3uJWmDHm6//qzVI9fPlwh8++0NM7WKUmDf4Ehx1ix
-Fen2k/uWJUDqb95T3IeF/COJ9FAsO3pd+cpqwzYcd2H5ZMGZI63Za0r3ypSTzSGc
-tO8Mp8b4fDVltvc=
+MIIDBzCCAe+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9jbGll
+bnRhdXRob3JpdHkwHhcNMTUxMDI3MTAyNjM1WhcNMjUxMDI0MTAyNjM1WjAQMQ4w
+DAYDVQQDDAV1c2VyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALlg
+zRZlohMtAg44+kPk04G/gIkdeyh7toUA3nR/2sS11j8EutHewezvMV8YyxBxQn8f
+8x8FkDbrE/6GYg2Dsu6TxrXIFre9Lt5jLlJi/6qEaVtXNTdP3vKO87FJ7YVLCeYe
+MxuTCdHloeUICP5x3GJz3AVdcg/S9qRWrpm8LdRdFk66l8vD+aDf+Oqe+mLVtAr6
+kqkdq1nUJOkRBp+zFMmB3Zfm28aYew6BmFQSscxemZyJxiv4dB+EDr821kEjgGBY
+IQGpdADrfh3j9JAzEr30o6sjfr6QWKHG6ZD7xhSl7rIxmx1yoKoJh8vLpcQfdv79
+7VZZT5N7xjz0xkjqTA0CAwEAAaNiMGAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUMpcX
+0o3lu3BTmaKwCfIJMO5aMs4wHwYDVR0jBBgwFoAUtyLBueMoMi7TborRvM7CnwOi
+SQ4wEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAAB1rNFg
+wdK79r7WO0OvE90uvtFf8sO2kqwW/7JIP/kcnIwIIkNiffUEfLfVr7aecK0rPer4
+DDZFAciuaOcts7dTxXRU+la1ZEPaEyx1mHaC6HJbgFYC9cG30L6GJGkZkIGOCTn+
+/yPxTM//dSc7YACc90GNTeUFVnAw6vskH91Ph4VYbdYxt7L1d1pzvBeun6Qi0eJq
+rkWQ2DOO9h9E6Rnt8Jea3w7WzX5P8pBjm74bv38YBKefawPeiiXck2Q/lUehLePV
+U1MRdy1QWC924+p6cXbR1GEhg0FZyvS/9WdpLMGIat/j/98juN6qyAbw7XXhlB1g
+fBHlfXbx+KMZAuY=
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/client1_key.pem b/tests/standalone/io/certificates/client1_key.pem
index d319a72..0e2ef5e 100644
--- a/tests/standalone/io/certificates/client1_key.pem
+++ b/tests/standalone/io/certificates/client1_key.pem
@@ -1,29 +1,29 @@
 -----BEGIN ENCRYPTED PRIVATE KEY-----
-MIIE5TAcBgoqhkiG9w0BDAEBMA4ECGrn0qDVIUHAAgIIAASCBMNOid1sDMpZtXY5
-hySSdhyUB0Q+GEJZCJQoNIQBvlStUX3rUqUyWy+8Mb0igbUQznLALrmfDCFrPAbe
-lY9hiJKO5R4vhwWUOckT6LcejgG1U91EZF8s4iu0Be9haCHeu1gbhGNZw4exXIHZ
-aL/o0r+A6uQTGY4pTWcMajWu3cx9XiQ/dUDNBZjjUZg5qBYzQgNcNwzIxcD5M/qT
-C7Is3ngJWyEFESwo8PiZ0PsiudNXk2aRYdKSU+ncugUCvyYArxRgysLTJX+eP4ak
-s1za71JxXBpqNHSEHyexeJODf7V1NT16aHXuAzz/Tszdy8vv/SqrrV04NeQmJd8K
-2SPOfRAU8Kh8OvdSor9SWujwlEuawCxn7rCyjAA/brR2SQHvMkbkkwO80X1gLvGI
-haF06C/mVcV5xaa9I2UiTb8VBgEEodANIjbeYq+DyWOLXKkcJhdqG3DTljnebp+9
-7/P9m/VnvfZz7//2y+U9HOrpPQs0+FsUD2S1/XdjRozOPY2+knTtwvX+tmnooll8
-dGFRPYnWl/4AzgGp0KzbfGnCiwtGCJNbLzgH0jAR3Znu5xPrOtU3rCPy+rskuNQB
-JVcjdudPiGT/aABs4QWZauqAiaUE7BKhperORAhoFFkvboyvIjSLCOTn8f2+YEaW
-bIGS7EYCVdSRchOMubf7EM1CYugCZw4gN2NifP1PBfnSJoZrbAWK5ZqK++THGP8l
-uIIDdelIsZ5lB1OVTfVrdRC2LA6kUdus8a+ATcHhmgHOAaGH5Sj6hEJjtBSVF4Tm
-JdI6PIIS6MFWrIEP1AHU1zXztpOZkm4f5poyuFfWROiFQbua6y6H1tBiqh8xEs6x
-2pDFlSmGdswC9ejvokea5tOMC86U4syRfkE3Mw3kmAOTdNvZsWGv/C6yBcbMw8UO
-aLWjZI3Uwh+Lh1PMayckk2sxm+bnfsa75ITJc8E4fZC8UYF+dUjgpQU8Tb61lo+J
-sZaGQTYmai8p0FKcKvikQbEKOsmQQAAGuvNgaWlP/gSMzR3JjOf4ULVBfFIaW9qA
-UwvgbUEh3YQlQW4aHs5tGWyUjkHOEPCv9V1zDeEfNQ/f76xK826jVg2EEFahUNAI
-ZP+Isl0QVjPPMVo61U4FHWYo4NdRaHD27tVh25wAjXe/7sCPHrgn4A6qtSWbVuFw
-CJUGiC1zt9qCe3M801hQOJc1Re/hjcZ7sk08dYp3GGP0+ixGzwtAaStOVKLnCq79
-Uv+BWcu/NxUqDpynoO3uh+yGx5WChySXkhY+m9zgXrZelwErGuOYUG58Z4zRKkiz
-Qxnp9yxl9iBabpoPbR+4VjJbIO2cKKtWfaDtf35z6bbsddrKS2BPKtsFTCn06b80
-eCJpn9ewF4MASyCgQjSFVTMvNZWB1fLTb6Jl6/+deh8Sd2AF1Ks45j+ckxWMGF4L
-KIn8hK6Bi9KdgqJna8pKKB4h0U2s9K3IFB11YXQ5uDHO4TXmXz2LXLQNgjriF0RM
-ZUSphNRNC5JX/2uwmiO3HqrBjoiDDWWkt0TALDGjspaiYGSjfOnuI0SSM28RP/NZ
-f4KPRO8QhMBo8Mg5LrK7uHu+vVeIeC3qEeTBtiy33QypxKZpd0k1UwBDeGOZPgM6
-dwOrZv5D4qob
+MIIE4jAcBgoqhkiG9w0BDAEBMA4ECF4ZB27y60SWAgIIAASCBMCEL3ZCzfC0q+m+
+B8gM9jQe1JFRD5reAuwK6+3speBS4KE+wjbcyQq09/5UoQu3Dci1WG1nKLB1u0Bk
+w9NuRahWCpvVLzz/GQ6Psesixq3V69zD3N6iMl/XQKymQBwGK51xIkeJO+6Skh2d
++qoyBHINTlKY9+548Zgqu+Z3mI3pGmdhd7hCiamiffDwCLEqRxbXdZdLpC9GpAP5
+HOqXHzN2aZbAGHb1GkHVxskSNzAwlEEZhh4Ibe6o7U65hoL9borewT+gj6sQohI5
+/LHL0P2bVvtRZiwBVPUX8HZWuVYIFb6GEGTTqOofNhNHvHaKUlD8Uxi5/h/Xi8fq
+xpdkjIn7VXj9e+I3TkfiphDtk0+Q+f+UkuPyuzU1PafinPfRK1J6gk+ZqAQHW/sp
+g6GVr2r4PkOrBPsA6jmCnQhs2C4MlZyR2p65qjVutdkKU5NgftW+giK9shgglcza
+38RF8i01THOnD3j+2teM/t/Ziqb2PGWv/bmvhcYqt1aG186Pe3bBCxhh/L7bqNKD
+q7sxDmaDE2pTkfyvh07udarmBQc5gvfXYqwghbqP/n7wizqjeEJgAwwHyi8LLsFV
+XreBQ/8Z2gQwXurrh5WD+7KSgvgopW/oVC8a3++8Hmf5Nkj27lACzoDWTG2/Swah
+O1MmdtPyy/KCbf5ujt2BlXM9D206Rsr6hoO9UZ1s1ohRdJReVGc4NZ4XrVWc4TKT
+gUAFTaHIKgFe/DgLaQn8L8Pqb8B/JfoSgQ74r69S434Kc+EDKui8wnkgso5bqrr1
+M07H9Xo+OtG1D6rma2EUlpoU06CAIcyqNx5fHJ3xfk9GHScQi4U6vEDCAQTNTS65
+I5AOHthZ2kZzfXvP6TF39S5D37NrV7/WJu7ZFaJx3bUGwnS2HYTwjFPABHpVLMwJ
+nBylVJs+h7bCZdBNCWgTytcn1mYMCvXVmrW8VTwBRjUQsy4rgE2wjpZuIM9rx+gZ
+HtNvy5t2RlOSqVKapyvV0ll7qbT1lwGIePxjttiWmNbgbwRBQzjv6FZ1Yo331Fl4
+qgXGcvZWgsgQFPXviKmDx+9KJ2oL35cLnDcMCRN7lLPdAhk8J/XrUq/iIYXNxud6
+f9mfVOsd0LT030je/N25IdEoPimTnps/INGGNug+FuJ3dCeIQGwB7uQB5ozoHL5h
+hzdQYq5+FWksuHPCOL1YLRJux9sH6OYxlXy2oigLtA05EHhq83Wwb2oTW6boo+rs
+gKqzc7OtFgYDsV8R1raoqlzAv3GNgkzyuHTSUakDdnJYmfcoOuK+Ch+MjVeZW5bS
+Ir7uqugUqqI/AiO/eHkvoGpQs0c67ao0qPR7ZQna/1FBj1O8J/dI4JBUtPvDa0tW
+7U+Ja/twJWri+Nn6/iEEWEuM/xx/xFmxrTb4WYza1ysrCls5l6POjQu2n6dT52+o
+cobwltkJmSNoIT2SYRuvEfgGlwyzY5p5B8U24HIAkNJIkO7hc9oD1mbq+K526HNl
+h6TG7RGUOffXIYuykrMmCTRRnv3bXmjTgsvWhVFujpCSQf9PqkQpv+KQPeFmy12h
+TA1QNtdVOZlh2GLEUgZuJVytyEz4m+3BfvBql5K9rlAUSQqsLJDKVxsmBDl132o3
+yy9JR7iC
 -----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/standalone/io/certificates/client2.pem b/tests/standalone/io/certificates/client2.pem
index 2898b7a..f34bde4 100644
--- a/tests/standalone/io/certificates/client2.pem
+++ b/tests/standalone/io/certificates/client2.pem
@@ -1,19 +1,19 @@
 -----BEGIN CERTIFICATE-----
-MIIDBzCCAe+gAwIBAgIBATANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9jbGll
-bnRhdXRob3JpdHkwHhcNMTUxMDE5MTE1NTEzWhcNMjUxMDE2MTE1NTEzWjAQMQ4w
-DAYDVQQDDAV1c2VyMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPXU
-3aFyhBspz7k2QfrykxkMR07uC7uulmXgRJvNjNcJ6GrA5d+oRGqXH+czO6Wd2KdV
-mrwxCR3mpzNViwUC8DeG22+QagkVG/MY3lq2oxADpCNEXUdWnieG6bZ7/bk1xGU9
-Kees4Dac0evBZoZINTulat28pwms/+k4hCEqIh9ikR5hOwyVTVXryTrpnUwrRKWc
-LDrtOhcTnsKD0ooJLl4X/OGkjTGmDlppLgiumF+gJC0fG0ztScFC/m+u3dlMNNTq
-tLFV7jpuknY9mZeIVHHNLGZG2ndWHpzAHj+suvQxYwiUs5zY90ZsDbdYms4GIF8V
-Bf26/nns7MkD9+yl8WcCAwEAAaNiMGAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUAuH/
-tf79clRyfVDepfCubNTGudwwHwYDVR0jBBgwFoAU/ZBUqBvh6hb/ZNWYS43nch78
-vz8wEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEbWKUUT
-U6nK4ZfRo2x8vOHLK802aKHaiCjtG2JGH5iEl1hHwS1Qtf33Sv86V4SqpM+gwN1k
-2eWd5Yb2WsVmOsoxGwazYcH/G2G43/WImUk4oyeDKEW/ZSyXhyovHADkeI5nfJKL
-hcjLApVtw2RRVbG7qlGEOMS1FbDdbY0D8lFeX137Kqrbb4iV2+PQYM9TBrm/Tb6k
-2t4VS+0+QOkYH5vehUJAxOrJgIelcM4XsdKdVdhOZBPoxv+wptsBh+XhfxyHo8ff
-hcx+AbjxAxBo/uffngQW7ae5LbZIEUG7ERPmnuuFtJ1GgITA3Se0wJnPE8pEnbIc
-HJJsyEEspfKp09w=
+MIIDBzCCAe+gAwIBAgIBAzANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9jbGll
+bnRhdXRob3JpdHkwHhcNMTUxMDI3MTAyNjM1WhcNMjUxMDI0MTAyNjM1WjAQMQ4w
+DAYDVQQDDAV1c2VyMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMay
+a0BYpNJHlwcNz6TyX+D6dKnqxUfdHQDgW9/5Hl4RiHDKAH+2iVYEsedksOmxNDlV
+HqZg4fBsyPVRzeGqia7nCsN3KlMbaqZgNI3ynvvMFIJkb3e/ZJtodg+cYzqnOu2F
+G3LijzRJG363aavTnjLdFumLnsOtSDdYnjRM43eeE3X2ajAiKkE9r6b6/wt8Ki5T
+GVIm9kG674iCloawK6dgCBA1dDPsKmzhcFoAl5UMpQSvd1OuW034qryE+RzQ0RCe
+G5u2leVgiuoq2rpmPL6fA0BHsyJ3wP1Gs74i+NhZdhiBhv+E89sfKaJOPpmDBW7b
+3jCpEmgRSm5h5SDm8KsCAwEAAaNiMGAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUj0t8
+BdHrTqd7aKIV4+OLWvT6WX4wHwYDVR0jBBgwFoAUtyLBueMoMi7TborRvM7CnwOi
+SQ4wEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABQ4PKRG
+VJYhWtktqpilP+C8CXsMArsqkEdMwHgQi8Xv3WVvXZpiLZHvO0To9J3+dgD2sOys
+MphZBXMJuOfX/+3IGerxsBxVj7Pnx37nn83g6PfCvGgVQQw7cGUjn5/Dw6apH2HH
+eO3yG+fgYeMNXyKt1KVWYeIToZfXUFvm+oMbWxxdpcctsKLRgCRvf1+r5EK9xE8+
+jYYk3S3pXvsk3qwWJz3pjg6zR3IbakkEuhE1Gl0Wrf4zZ9DOB8rd00/xirAuuYwm
+aIZ3KcFCTgVdGtB41q03D31xWNZPODCxAEADiICNE+3cuUMCi3wwBeCrybXSLhj/
+6St8K4NBvg+xL/w=
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/client2_key.pem b/tests/standalone/io/certificates/client2_key.pem
index 029ee6e..b4074f9 100644
--- a/tests/standalone/io/certificates/client2_key.pem
+++ b/tests/standalone/io/certificates/client2_key.pem
@@ -1,30 +1,29 @@
 -----BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGKwU47HxW3UCAggA
-MBQGCCqGSIb3DQMHBAg92EmnGIvChwSCBMindKIgxnxh823tDdWq1TkjJg82SFNs
-4SX2T/TIuSEwZTTfDLxStdFfu/O88x4ZfOc1H1u4ph7geJgHadf8+oCQLXcofzPS
-86iNvaaJLoycWAUkgGKS3PqtvZ+QJYnKnOs0YlocZUk1C/gfWB+xApoWDzHUgsVC
-HQcAako8scbj15dofplgUSiN2a79WfZqbxupLkky9Kz97dC4cgcSOmPA2eSQ4Kct
-exRyR8M8tv6d5l4avmzONf7T++zFkM4EiG5+F8+skDZchuYrEYAsej5hKDAIMnFB
-rwZPxcyYTABuS4zoobAAts5S0f2Vy/OoaxsFNu6pvUncZ7Kmqkkopn9+5W1PeYyO
-p0d8607AbLCLcr16qnda87gpcaXX7rZ2WROgZrZcubg1N3jjYM44ZlsZYr4gHIdY
-kUwrgJqjdjJ0EZp9RQCkdnC50H24aMG4oq0LuuhLRbgwDny5T+NNVvfgVxCgNg+4
-hCTGBud3PCfDUoFGq1M6J2e1kfgw0FikJL41LGGOpvIo22MDR0lPHOkl6ZeO2ARt
-hlhtMl7wGKJE/ToxhbfRCLz9lSsG2wbGgB1wSAXAZcDlVN4QB9/Xtn71LObs6zE3
-kG8MfRzqiFZWAsLgTiprJagq4ylFvrGLW+pptnaI8A4IVeNy8nYe4I/UslvaXYrZ
-qh4U1rx2HuOUQQo4KtKnLN2zEW86bOEFHb284TW+aavFf2lq3zU31MboSEB7X/xd
-kRDKSqrVmZbnZRSVhhqtush1vAnETbSjGxZrUvHcaHU3RcIg1pAnBFGDWosNH7MD
-Sd2pDnGrJp8P04ftR+B97CNIBmgG+5SKt196oCO0gq+ROyspSYknlcnvGruQBANk
-qMzEBsjKgcDKc0XbnSM8gB6Rwv1/mxsZy+xd27DwdEfxNZqvbugZqr1gy4HowssN
-vhbfKUE7STcur4SDGuDYSC6U2jaebgV2SIHYod+kG0AI0Xo6CwpRHQjNPwOjwzKc
-U2pRpBRtHNBATj0jeP5p05+bUGd1RYj76Qy8oeN4C6DAd/XAGgVMgCpBUsSzDMVA
-sX7b9WYrgKF4JXKQrCBKcxJKzAGwASVjdfWDtxjvN1wqy2aj4ToW+ImMvgPf0g+L
-8JqAj7elkUOs2t6LxvQEViMFHmIxXweCLtAovEKVSMdYSPEwzBmqU5l++xZHx7kr
-KYowT6sfUEJ0A6JH7SMYJndNwKyYr2FLGTfkL0qcxwlOmrCVYy2yFN3F3bdQIfNa
-2FKu3hPR6LgD1Vl11HQyu015cv/LGTukkHZUAMruyYQTBGlY/Fym0xrj8tvsU8sP
-ZHhauOhg8kg7GR4FoRLc9sS5M3bY9JHd390PISFnGenE1iVqEp7BzMV4mUelFIP7
-OzWzufiRmsAzlIt2sR44cv4BKZfgsO4l7qsQTYdn+3e/dEfWXZ0aOd5jJ/M+T2Y5
-7lAdLnY2tapxEQy/KRasdGPbzCQH8l84zGV3uoAfIxpIkFaQpRRd0053e9cZWras
-3Dj4J59Q4SUsKJeH5muXCKoFUBPkVS1g8qIJk4Y7I2XRKICskK0DYvmL62tP0Aas
-rC6qjEv8HOV6kRBt6VCzt3nFYqodPFUNdmGYh9tuidaAFPt9CBg6I78IpiB9JoxS
-YrY=
+MIIE5DAcBgoqhkiG9w0BDAEBMA4ECC/vc3ONj4KfAgIIAASCBMI1liT+B00kYYj+
+VRcEHQVrWsvD648OCd6BNQ9gKTYL5767lHUN0iG2JAdTHTKJy7XeEVVdPweU58jb
+HnS1yWbs0IuUFkCGy9wH3Lb6SkZtEScoAmzsNRdSY3WwmNhUG/yHrLITKM1SGkg3
+nf3ywIJYwO3YH22InVK0puVT/y943F1GXZSvklG/TGawR0uIyNuZOl0rg+5bsCaf
+1VSCWvt/Czgqm9Pc+Iz2PAKwyyjmvqRMBCtKvJTGNEPB63eDyHWQTtvQe0un06AF
+lvB7JYWaTXiwccSww2BuqTdJdBYKWxzPbdBfcqUT5Q9/LE0JhwvfZY/oDeJFP0HC
+HVBajuESZPJgb06xcsiX1qmk/iqAjZVZQ/CQ9K08qXem7YRFxJCy90wjLu3abjzQ
+Nvq0VsI8a8vlODQlr/Z5iXSYEKMYvUwh5Y9e8fc0BOOc1QzOYV2vxy28OVHmigOn
+tVHdj/FXK6N97QgtFzVUTjisO3YFygI2wybrz1BEys/vwqfCBiT+/hu+ur/lCrkn
+E2S6I967TyTvaxn+WCo9EW2Rb66XdI7tL09AkV2VZqJN4PTyis9YYgkr2uKjj4qX
+ySAQp/XHGEF1mmvjeptKTb2CMut0vcP+nl1bsUUXpSiKYGQ2BBcqgTcEFUEd75ms
+kcPMOuHdioaYh72nCRVzsRoDTDGF08NMTndW5PC8RpFsNS0vx8dq/A3VHAvJa2Rc
+9lP939FAU/Ck9b3NxH6hUgfDEFHQ61oW2Inpu4s3eRoClkgyf+aQEZZI7GTiNICm
+xqHosZ+hLe2mYoGk6xl1AruMk7kGeebRaPxzvS0UKfftOQDahFcDp8iEtLAcM1nx
+8Pdu4csyWFk+eBsTT6sPur2ZkD2LO0gLjR+N2nZNTqEJYy7n1jyV7M/JZBfh0fGi
+VX+sb+urTBAlDszX6b1LV7M78MDs6QwziDsrytjuClOWN47wzYbYYnSZZnDtTR+B
+CDHyK5wa8gNs4A+643HvD6sJz6zALOu2UI/9SrvuyYPltCwCUmWJ3A2XxoBmdJ/e
+yHEj/VdsNi6TtQ5qpBWqm43LpF0WAKNgksGnbFjOc/0QsUVk0txB9D6/oC9HyCd8
+u9nR8vLUC7l1dtYL0CwpocqU67qzVoRxrkkyCE4iblusKjr1ZlfstHDS0tPELodo
+8RroSs4vKXV9dzhzLQyqp6PzzdB7y/5Bpn0grxXrwln6/shoSR462h2CB4z9chGA
+Vdsp+KE8LDogIwZDT6iVVrpaBQDLoSxmX+E2IKRCUcj/l+gepEPyHbhOAn8/NxGX
+h16v89aDMtnyWqUcc/Gm2/Qep3o7goRfodyoyWvwy8nq9Lgf/wJIfEGn0lEeR0I/
+/Om/UAiId1o47C3LsGMm+qO+FcWesLA67eMQnp1WYoWpnanb3q4t8PWATzAlW05n
+cA59dYjutUmKJEjrh595AptMLXn6RM1GzA7x53+uAKvXaI+aR8wrtujiJLg9DwY2
++f4ehwfwNptBxzZX97a7/3lGZ5U7BgDeJhNo9T02VQTvXxB29H6J/v6XYyPCKpuM
+upPhiHzrs9UyMvINfDnd/fJ58qr6TvEuBi0QxMMmOCfccYlj6Q5Bfqp+iuST0igg
+SLmBml+LkIM=
 -----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/standalone/io/certificates/client_authority.pem b/tests/standalone/io/certificates/client_authority.pem
index 4bd5d3b..ae9ae5b 100644
--- a/tests/standalone/io/certificates/client_authority.pem
+++ b/tests/standalone/io/certificates/client_authority.pem
@@ -1,19 +1,19 @@
 -----BEGIN CERTIFICATE-----
 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
-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
+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
-ggEKAoIBAQDDUuYMDCw7aXr++mXOcSr57uKhpriDN4He73Lz6r1jRg43nx/yCj+I
-rlOUd4kAZcMOv67W3oitzTlLER2pIFWLvG9GwLcgXtoiWD9wyHOod75cc4qjdRz1
-QRTPBqPXOHfe20Q3csR06Z6TM70cGFad+q4QIKK0Q4M4OnD3Rn935dtd4JbfiWXM
-w8h2XagjEqDWhZCIWJr06D7Wn6b1H3ch7o7M/TvjvUoyRnrfmTWHuIiETcpHXQXX
-nNfyrmaNyvJTE+HFknirVEkyMUzNao7CLecWD74NDRDZBQieSJQsu7oiucAvhBZY
-GblIv3Mv15cs2QkIN5JNN1+jl8LCImQBAgMBAAGjezB5MBIGA1UdEwEB/wQIMAYB
-Af8CAQAwHQYDVR0OBBYEFP2QVKgb4eoW/2TVmEuN53Ie/L8/MB8GA1UdIwQYMBaA
-FP2QVKgb4eoW/2TVmEuN53Ie/L8/MA4GA1UdDwEB/wQEAwICBDATBgNVHSUEDDAK
-BggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAWBF95hJRPEfV4S2wAAupnr4s
-8nQeVb2ANnALEX1prwr/xQM6DY+cLasHH84Vp47KH10DOiCxJGH7xlUVlVx+PWzu
-EGNDiZINVyFkXytkpiKG0/jd+0jR1lnmUp1WU1Zli7uRNxFRsy0G+tsgaoD2gvk7
-14zx2en1/1beGL4lRoMLJ5yVdiSRjt/H37ZPjVtCHiHLRfernCPy6rj1KtmdL+gC
-C8Jr3I+haXvEFr9vMbNUY6PwkdJ1xITs7CTjXFZ2bka/Glnfqzg1KavkI3WsYq8R
-mFniNvRw74z/kNrcxT/W956vsD+74OFI6BoeNi8acw7J+zvYjIWUo5h3BcG8Eg==
+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
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/server_chain.pem b/tests/standalone/io/certificates/server_chain.pem
index ff6e568..341a86f 100644
--- a/tests/standalone/io/certificates/server_chain.pem
+++ b/tests/standalone/io/certificates/server_chain.pem
@@ -1,59 +1,59 @@
 -----BEGIN CERTIFICATE-----
 MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVpbnRl
-cm1lZGlhdGVhdXRob3JpdHkwHhcNMTUxMDE5MTE1NTEyWhcNMjUxMDE2MTE1NTEy
+cm1lZGlhdGVhdXRob3JpdHkwHhcNMTUxMDI3MTAyNjM1WhcNMjUxMDI0MTAyNjM1
 WjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDca2l3VIWhnlTqazrA07hiHjgXACUYS/nVox+a2Jar383kBz2kzN6B
-u4K7IwD2msym2IOBp1YT9OKPh9/KkSGvpPelu7ToCoehala32W+0ozh53CR8IpzQ
-tmh7J9oHtN2PcbLgEzHfAWyrY3xp9RpWUONjxoG8xXPedNsZL0Rj65Z3fKAjOypl
-+XJsgrqrNNAi3x0OMdhextMmLrYl+YQjgdND8UpykTSc8Q0vwngDZuLH/Nhx0cAA
-Ade0ZfXS6snwWVxrWke+zGF6yANoiV00gsBhq+WZZ50SmE2mz5LT9uj4t5WpcOI/
-2TlbV9HSjdOEAFD8cJIrK5FkEmz383E1AgMBAAGjgbQwgbEwPAYDVR0RBDUwM4IJ
+ggEKAoIBAQCkg/Qr8RQeLTOSgCkyiEX2ztgkgscX8hKGHEHdvlkmVK3JVEIIwkvu
+/Y9LtHZUia3nPAgqEEbexzTENZjSCcC0V6I2XW/e5tIE3rO0KLZyhtZhN/2SfJ6p
+KbOh0HLr1VtkKJGp1tzUmHW/aZI32pK60ZJ/N917NLPCJpCaL8+wHo3+w3oNqln6
+oJsfgxy9SUM8Bsc9WMYKMUdqLO1QKs1A5YwqZuO7Mwj+4LY2QDixC7Ua7V9YAPo2
+1SBeLvMCHbYxSPCuxcZ/kDkgax/DF9u7aZnGhMImkwBka0OQFvpfjKtTIuoobTpe
+PAG7MQYXk4RjnjdyEX/9XAQzvNo1CDObAgMBAAGjgbQwgbEwPAYDVR0RBDUwM4IJ
 bG9jYWxob3N0ggkxMjcuMC4wLjGCAzo6MYcEfwAAAYcQAAAAAAAAAAAAAAAAAAAA
-ATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQO+6Atr6tkTBmPasN4oTDUlbxQ1zAf
-BgNVHSMEGDAWgBRrkK4hOni2neySWQNmMfb9imn/+DAOBgNVHQ8BAf8EBAMCA6gw
-EwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBACdVUzrhfXoW
-wG0zI9aT6CxD7T0i0WK4fC6Yrx0Pqz53xnuiwBfvuAJ/PRXKYsJMxa2LuHGJKU/A
-nImCXGJHoUwL6x4Eor6fg7L9nPNqtIrQ6tzubxNtVPpLj4tK6Ps3IM+FICYUSX0b
-FLSfnv74afUp/2+0OHsoUVsL1rCTO2WgEkEShLERdJvdcvUSTWHfC5IQORS9vfzG
-+cZGOOPebfm8TY2DJxMYj/t7CHs1Sk550x590sKb/prwtJAYtQxGe7v0m9rihiM3
-dFKZiNh99yXbQ1ELYyhkFP8WAdK8ZTnynGqgAYJmV89Dg8k2uU8z+dahlE3foORD
-Y/Gn0CZE1NY=
+ATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSvhJo6taTggJQBukEvMo/PDk8tKTAf
+BgNVHSMEGDAWgBS98L4T5RaIToE3DkBRsoeWPil0eDAOBgNVHQ8BAf8EBAMCA6gw
+EwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAHLOt0mL2S4A
+B7vN7KsfQeGlVgZUVlEjem6kqBh4fIzl4CsQuOO8oJ0FlO1z5JAIo98hZinymJx1
+phBVpyGIKakT/etMH0op5evLe9dD36VA3IM/FEv5ibk35iGnPokiJXIAcdHd1zam
+YaTHRAnZET5S03+7BgRTKoRuszhbvuFz/vKXaIAnVNOF4Gf2NUJ/Ax7ssJtRkN+5
+UVxe8TZVxzgiRv1uF6NTr+J8PDepkHCbJ6zEQNudcFKAuC56DN1vUe06gRDrNbVq
+2JHEh4pRfMpdsPCrS5YHBjVq/XHtFHgwDR6g0WTwSUJvDeM4OPQY5f61FB0JbFza
+PkLkXmoIod8=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
-MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowIDEeMBwG
+MIIDLjCCAhagAwIBAgIBAjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
+YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNVoXDTI1MTAyNDEwMjYzNVowIDEeMBwG
 A1UEAwwVaW50ZXJtZWRpYXRlYXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA1OV9iea75DPQ18NppXxEFW26J7IfjUvp4wVnj9m7pOhsByqd
-wwS6hpjlkpEwCyugKD/t7u/VGwp2BB+BeaX7FPj6rnYY82bOJQlyB/vvDmOZfAe2
-84ug9O7QcsQHSQ7YQFuvYKaeYCKdrGjzQPVYkoVdv2js2dYTDG3QSIxpbi305Vef
-ia6Zfs5CAW/SfL36+ETo2pXNlD1ZBGRL8H3z+mMnIEj1Tbaipf+1Npr2l3xqIs1k
-RWsM3X+9xMkWGyvsDdbLIGiTTVxM9kOF0aNLdQIKb2tZsg4jRrFIgiO+5TXwp0FW
-4ldc5/GhtaoPDcsIALyIQc7CJ/PpPm9hnxIy7QIDAQABo3sweTASBgNVHRMBAf8E
-CDAGAQH/AgEAMB0GA1UdDgQWBBRrkK4hOni2neySWQNmMfb9imn/+DAfBgNVHSME
-GDAWgBRpz+jRK9iGqijrL/4WCsGsIjxoETAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
-BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBACcwiLJUPzYGIeGIYGlo
-XlP4++adiPlXvsyTxLdGVSFWJMBV5EhtiXQXaUsOs2PyC7SWxiiUdAgE8Y2tMsF3
-Bh5LY/kKxZQXZuFa+RN1kPlhlYJWdiPyqcBziSPFBtqwudWLDUVSaVAQDhYYVB3K
-5+pFaeQKfhYmPvJKR9U2nTvukOhN1fZM8GUBnm2uaiA3giQ0wxXyQIuqC9S52qbh
-x4D4ZdbshQAgThPkHBoZVmd/NF1TNzitZZy7uaU7GpGrS1dcevN7pEUwm3+KIkIT
-AOSLB2FbFOwPUg6a/lWkFPotT3gl0tdyCaqkfneGCHzVciT0JTS/AqpdYEtuxEMe
-PJk=
+AQ8AMIIBCgKCAQEA6GndRFiXk+2q+Ig7ZOWKKGta+is8137qyXz+eVFs5sA0ajMN
+ZBAMWS0TIXw/Yks+y6fEcV/tfv91k1eUN4YXPcoxTdDF97d2hO9wxumeYOMnQeDy
+VZVDKQBZ+jFMeI+VkNpMEdmsLErpZDGob/1dC8tLEuR6RuRR8X6IDGMPOCMw1jLK
+V1bQjPtzqKadTscfjLuKxuLgspJdTrzsu6hdcl1mm8K6CjTY2HNXWxs1yYmwfuQ2
+Z4/8sOMNqFqLjN+ChD7pksTMq7IosqGiJzi2bpd5f44ek/k822Y0ATncJHk4h1Z+
+kZBnW6kgcLna1gDri9heRwSZ+M8T8nlHgIMZIQIDAQABo3sweTASBgNVHRMBAf8E
+CDAGAQH/AgEAMB0GA1UdDgQWBBS98L4T5RaIToE3DkBRsoeWPil0eDAfBgNVHSME
+GDAWgBRxD5DQHTmtpDFKDOiMf5FAi6vfbzAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAD+4KpUeV5mUPw5IG/7w
+eOXnUpeS96XFGuS1JuFo/TbgntPWSPyo+rD4GrPIkUXyoHaMCDd2UBEjyGbBIKlB
+NZA3RJOAEp7DTkLNK4RFn/OEcLwG0J5brL7kaLRO4vwvItVIdZ2XIqzypRQTc0MG
+MmF08zycnSlaN01ryM67AsMhwdHqVa+uXQPo8R8sdFGnZ33yywTYD73FeImXilQ2
+rDnFUVqmrW1fjl0Fi4rV5XI0EQiPrzKvRtmF8ZqjGATPOsRd64cwQX6V+P5hNeIR
+9pba6td7AbNGausHfacRYMyoGJWWWkFPd+7jWOCPqW7Fk1tmBgdB8GzXa3inWIRM
+RUE=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIC+zCCAeOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowGDEWMBQG
+YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNFoXDTI1MTAyNDEwMjYzNFowGDEWMBQG
 A1UEAwwNcm9vdGF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMDzkcftGzdNJz5vXEAZSCAO2J6bCPz896pK3qtaViR/aF8I2vHZQm0IEoJc
-Y1NUMF3F50d6fMYCkEoORAkC0d7iAwTprhBdIg35+TxwGObcStrohDtEgwFmFRzg
-LtYeXiU0t0dBWOOQ9k2f9VGqbzKwZ2dbhOHSTXMTFoEcMStbeFc++oiOLY+QSq/J
-Xd/BXqvwVM3Mt+OwLvyUu45Kw18ENo77qubIPJUwoyaf+N2nFRqcc7bmNy0Wvk2Q
-StvQXy6DpN3KOoZx/sR7Ff8hYuHXcxbSsJ1hOO+tIJyOZyEJvU2BBOYVlKr4E4JU
-mkex0CM1IfIFqfcEkbvjwLjaojsCAwEAAaNQME4wHQYDVR0OBBYEFGnP6NEr2Iaq
-KOsv/hYKwawiPGgRMB8GA1UdIwQYMBaAFGnP6NEr2IaqKOsv/hYKwawiPGgRMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJKl4RCEaXwtosNeurZlS3b9
-owXdsXDRdnfEawcc//AbRkrS4bHCQyOJNp/3DibEKkeAXCJrJ5cvXRjE5gb3Q+rl
-0AqziLY15xuMAxUK3zv0e8Zir21PQzQ9x8zbmlucEoT/jn7KvMSSqfEoer77cXev
-BpmQDQzE3FNgKohmHIzIDoTPiU3ahv6x8IhJ1e47UmRsSPFgtqglHcdCYIEclXpY
-bHvctT6+pFZuJfIs9+BATMXPJWSX7NhlMcnyP+xdDxDKuF/nwVFy6xA+njuWnnZT
-TyiGCnx+u/VpKzOrwMfzv2DW8Db80UERoox5n6QNQLnXNWPMddUL92/p9lMzWJY=
+ggEBAMl+dcraUM/E7E6zl7+7hK9oUJYXJLnfiMtP/TRFVbH4+2aEN8vXzPbzKdR3
+FfaHczXQTwnTCaYA4u4uSDvSOsFFEfxEwYORsdKmQEM8nGpVX2NVvKsMcGIhh8kh
+ZwJfkMIOcAxmGIHGdMhF8VghonJ8uGiuqktxdfpARq0g3fqIjDHsF9/LpfshUfk9
+wsRyTF0yr90U/dsfnE+u8l7GvVl8j2Zegp0sagAGtLaNv7tP17AibqEGg2yDBrBN
+9r9ihe4CqMjx+Q2kQ2S9Gz2V2ReO/n6vm2VQxsPRB/lV/9jh7cUcS0/9mggLYrDy
+cq1v7rLLQrWuxMz1E3gOhyCYJ38CAwEAAaNQME4wHQYDVR0OBBYEFHEPkNAdOa2k
+MUoM6Ix/kUCLq99vMB8GA1UdIwQYMBaAFHEPkNAdOa2kMUoM6Ix/kUCLq99vMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABrhjnWC6b+z9Kw73C/niOwo
+9sPdufjS6tb0sCwDjt3mjvE4NdNWt+/+ZOugW6dqtvqhtqZM1q0u9pJkNwIrqgFD
+ZHcfNaf31G6Z2YE+Io7woTVw6fFobg/EFo+a/qwbvWL26McmiRL5yiSBjVjpX4a5
+kdZ+aPQUCBaLrTWwlCDqzSVIULWUQvveRWbToMFKPNID58NtEpymAx3Pgir7YjV9
+UnlU2l5vZrh1PTCqZxvC/IdRESUfW80LdHaeyizRUP+6vKxGgSz2MRuYINjbd6GO
+hGiCpWlwziW2xLV1l2qSRLko2kIafLZP18N0ThM9zKbU5ps9NgFOf//wqSGtLaE=
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/server_key.pem b/tests/standalone/io/certificates/server_key.pem
index 29a9e32..895b7d2 100644
--- a/tests/standalone/io/certificates/server_key.pem
+++ b/tests/standalone/io/certificates/server_key.pem
@@ -1,29 +1,29 @@
 -----BEGIN ENCRYPTED PRIVATE KEY-----
-MIIE5TAcBgoqhkiG9w0BDAEBMA4ECKAry4fwmB/TAgIIAASCBMNsKbVVvIs/l6/N
-/1J9WXSiA1gnRTd2n58GJUV6mkiaRUMiWu3fK+V7iHpIi7KeLeD+JGsDeqxw0bB5
-lmS/RJy0wNBP0PL0oiI8VUe3wxTUU2b5wW9fomeOTGWOIUL5VZXHkTCf5KMcFWMY
-GMnDpIN/f/m9zvz/3FogxIZlIAxG7gKKrfEcKExIShAJ5wYDbDSFZWfNcjMODGPn
-xz3W04aRsJGf3KlOQvSuNtcBpsuwXuAXezzuFETM20xrWW3iJIsO5UmqJ1OJcdet
-A+k5k0K+1/WwLkceWJYSd19O+7LNULsZhKUJ515ZSO1TJGgfd5DznkgRXYUx5ucS
-tvJLYvShGbaYulsVKn8q2nkIxnQCov3my1hIRk/qCKb+uOvRD9dIkjSlNubqaRb6
-geEOfTh1g5PCeKPlSTkVueLQqWxKMye4eWYqUxExkUNuGJ0d2ndBGJRo6bulnc7I
-kt44DzEufV5OLvyTufimpohqRm3Yzq87DWSSThCKOGkhfGutn8B7cJR8ZPrG2euT
-J7Bv4EuFjhpKDieqDi8yoXgIkWSgyzFNMsewV4lxFNP/wbvoKPFrKsU4ny6jRfzy
-WTjMN1UOTBvsyZbVvjLII79cBKLqlowHAZQ7YwuxtbjeB9FRH+ZwkzYeyn4GNHdf
-QoVwOMKAiOMjzAK9qdW7isVXy/7v9EXaZplRmwMRhCZevC9zeY2Rueahq8qpHpH1
-GPjrew5elPkBRQhxX6IiL7kI7upE65UI5hnnTnrdrZkRmMYOFEZLyLbTU4wMCxui
-4BmEiGp6qCWe3UND1b8YhG+gsRYzHK5oEJV+Ck7m+e9iU3/axggUfAhZeBmdlgqd
-bUajlzcgbtfaSgZ08XXU1YPw0aLlmJGzb+oWMFwBJHAUYpOV2uqDHiXZZt4SoAF9
-gJQaXvqMGzY8JyP5ZQauljVtPGcopA+jbix3Rbwf97lLqJHSpWoHpcCa6FrfaMqG
-dx8oQsO67WN0gm5DIN3kB2jHOj9Nf7kr3HGjyC5tPq8s1+aT6baZcHWzVfyVr10c
-9X13Pz5XzEa1oiaO7JDPkzb9T7aPJZwskATNB8h6tWfqdGyUY5eURtsCnVrtG/1p
-pAXyY/0vAksfDPjMChKLKxZ7rBbscoNzr2f7Vw4CTnIpaxA4eLEx6UdpG4/5RzYJ
-0YuR+SzCkuNti7uZGi9DCGkZkYl6VndatW+Pk/+JVBexdKt6MsER6aVsS8ev9UbW
-JG+2C8bjMlfKy21644KwYOtZbVcE9jwlsz8w+e6YbOzBvbwiPmoCi0xcMxRJPa2y
-cKMrs2hSKmhUP6uIH0b0qNcHEPA32mVzGC0MToC5R+yb6OdyvoEsisqS7tEAMfTJ
-0yowcZr2lPehaMr4efSB8JY6DuofitfgI6X6bmiIPQ9v//djxhkxkRAbpTRGmFZx
-1YIKDa72S8jUxHWlVvmoqTWI8T+jltF2pYBctS6IMKEot/CcBCHb5l1zfMyo5a0x
-73ooh5tq+vRWJGaLRMj66VVSWGQoJmfAGwWpjBpTLa0UQoHO0/J1IbfjFOj5HV3J
-bscmoGWhVwuJM5ActB0MOvXGQe9mf2X4p/1Rp+yBuipH1SJzFEzbOZ3kE50Z6aXH
-CoJJOKkcuf43
+MIIE4zAcBgoqhkiG9w0BDAEBMA4ECBMCjlg8JYZ4AgIIAASCBMFd9cBoZ5xcTock
+AVQcg/HzYJtMceKn1gtMDdC7mmXuyN0shoxhG4BpQInHkFARL+nenesXFxEm4X5e
+L603Pcgw72/ratxVpTW7hPMjiLTEBqza0GjQm7Sarbdy+Vzdp/6XFrAcPfFl1juY
+oyYzbozPsvFHz3Re44y1KmI4HAzU/qkjJUbNTTiPPVI2cDP6iYN2XXxBb1wwp8jR
+iqdZqFG7lU/wvPEbD7BVPpmJBHWNG681zb4ea5Zn4hW8UaxpiIBiaH0/IWc2SVZd
+RliAFo3NEsGxCcsnBo/n00oudGbOJxdOp7FbH5hJpeqX2WhCyJRxIeHOWmeuMAet
+03HFriiEmJ99m2nEJN1x0A3QUUM7ji6vZAb4qb1dyq7LlX4M2aaqixRnaTcQkapf
+DOxX35DEBXSKrDpyWp6Rx4wNpUyi1TKyhaVnYgD3Gn0VfC/2w86gSFlrf9PMYGM0
+PvFxTDzTyjOuPBRa728gZOGXgDOL7qvdInU/opVew7kFeRQHXxHzFCLK5dD+Vrig
+5fS3m0++f55ODkxqHXB8gbXbd3GMmsW6MrGpU7VsCNtbVPdSMW0FalovEB0M+2lj
+1VfuvL+0F5huTe+BgZAt6xgET/CIcZXdNMRPVhraqUjqWtI9Rdk4STPCpU1rDkjG
+YDl/fo4W2T6qQWFUpiC9IvVVGkVxaqfZZ4Qu+V5xPUi6vk95QiTNkN1t+m+sCCgS
+Llkea8Um0aHMy33Lj3NsfL0LMrnpniqcAks8BvcgIZwk1VRqcj7BQVCygJSYrmAR
+DBhMpjWlXuSggnyVPuduZDtnTN+8lCHLOKL3a3bDb6ySaKX49Km6GutDLfpDtEA0
+3mQvmEG4XVm7zy+AlN72qFbtSLDRi/D/uQh2q/ZrFQLOBQBQB56TvEbKouLimUDM
+ascQA3aUyhOE7e+d02NOFIFTozwc/C//CIFeA+ZEwxyfha/3Bor6Jez7PC/eHNxZ
+w7YMXzPW9NhcCcerhYGebuCJxLwzqJ+IGdukjKsGV2ytWDoB2xZiJNu096j4RKcq
+YSJoen0R7IH8N4eDujXR8m9kAl724Uqs1OoAs4VNICvzTutbsgVZ6Z+NMOcfnPw9
+jZkFhot16w8znD+OmhBR7/bzOLpaeUhk7EhNq5M6U0NNWx3WwkDlvU/jx+6/EQe3
+iLEHptH2HYBF1xscaKGbtKNtuQsfdzgWpOX0qK2YbK3yCKvL/xIm1DQmDZDKkWdW
+VNh8oGV1H96CivWlvxhAgXKz9F/83CjMw8YXRk7RJvWR4vtNvXFAvGkFIYCN9Jv9
+p+1ukaYoxSLGBik907I6gWSHqumJiCprUyAX/bVfZfNiYh4hzeA3lhwxZSax3JG4
+7QFPvyepOmF/3AAzS/Pusx6jOZnuCMCkfQi6Wpem1o3s4x+fP7kz00Xuj01ErucM
+S10ixfIh84kXBN3dTRDtDdeCyoMsBKO0W5jDBBlWL02YfdF6Opo1Q4cPh2DYgXMh
+XEszNZSK5LB0y+f3A6Kdx/hkZzHVvMONA70OyrkoZzGyWENhcB0c7ntTJyPPD2qM
+s0HRA2VwF/0ypU3OKERM1Ua5NSkTgvnnVTlV9GO90Tkn5v4fxdl8NzIuJLyGguTP
+Xc0tRM34Lg==
 -----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/standalone/io/certificates/server_trusted.pem b/tests/standalone/io/certificates/server_trusted.pem
index 96649c0..b943cf9 100644
--- a/tests/standalone/io/certificates/server_trusted.pem
+++ b/tests/standalone/io/certificates/server_trusted.pem
@@ -1,57 +1,57 @@
 -----BEGIN CERTIFICATE-----
-MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowIDEeMBwG
+MIIDLjCCAhagAwIBAgIBAjANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
+YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNVoXDTI1MTAyNDEwMjYzNVowIDEeMBwG
 A1UEAwwVaW50ZXJtZWRpYXRlYXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA1OV9iea75DPQ18NppXxEFW26J7IfjUvp4wVnj9m7pOhsByqd
-wwS6hpjlkpEwCyugKD/t7u/VGwp2BB+BeaX7FPj6rnYY82bOJQlyB/vvDmOZfAe2
-84ug9O7QcsQHSQ7YQFuvYKaeYCKdrGjzQPVYkoVdv2js2dYTDG3QSIxpbi305Vef
-ia6Zfs5CAW/SfL36+ETo2pXNlD1ZBGRL8H3z+mMnIEj1Tbaipf+1Npr2l3xqIs1k
-RWsM3X+9xMkWGyvsDdbLIGiTTVxM9kOF0aNLdQIKb2tZsg4jRrFIgiO+5TXwp0FW
-4ldc5/GhtaoPDcsIALyIQc7CJ/PpPm9hnxIy7QIDAQABo3sweTASBgNVHRMBAf8E
-CDAGAQH/AgEAMB0GA1UdDgQWBBRrkK4hOni2neySWQNmMfb9imn/+DAfBgNVHSME
-GDAWgBRpz+jRK9iGqijrL/4WCsGsIjxoETAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
-BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBACcwiLJUPzYGIeGIYGlo
-XlP4++adiPlXvsyTxLdGVSFWJMBV5EhtiXQXaUsOs2PyC7SWxiiUdAgE8Y2tMsF3
-Bh5LY/kKxZQXZuFa+RN1kPlhlYJWdiPyqcBziSPFBtqwudWLDUVSaVAQDhYYVB3K
-5+pFaeQKfhYmPvJKR9U2nTvukOhN1fZM8GUBnm2uaiA3giQ0wxXyQIuqC9S52qbh
-x4D4ZdbshQAgThPkHBoZVmd/NF1TNzitZZy7uaU7GpGrS1dcevN7pEUwm3+KIkIT
-AOSLB2FbFOwPUg6a/lWkFPotT3gl0tdyCaqkfneGCHzVciT0JTS/AqpdYEtuxEMe
-PJk=
+AQ8AMIIBCgKCAQEA6GndRFiXk+2q+Ig7ZOWKKGta+is8137qyXz+eVFs5sA0ajMN
+ZBAMWS0TIXw/Yks+y6fEcV/tfv91k1eUN4YXPcoxTdDF97d2hO9wxumeYOMnQeDy
+VZVDKQBZ+jFMeI+VkNpMEdmsLErpZDGob/1dC8tLEuR6RuRR8X6IDGMPOCMw1jLK
+V1bQjPtzqKadTscfjLuKxuLgspJdTrzsu6hdcl1mm8K6CjTY2HNXWxs1yYmwfuQ2
+Z4/8sOMNqFqLjN+ChD7pksTMq7IosqGiJzi2bpd5f44ek/k822Y0ATncJHk4h1Z+
+kZBnW6kgcLna1gDri9heRwSZ+M8T8nlHgIMZIQIDAQABo3sweTASBgNVHRMBAf8E
+CDAGAQH/AgEAMB0GA1UdDgQWBBS98L4T5RaIToE3DkBRsoeWPil0eDAfBgNVHSME
+GDAWgBRxD5DQHTmtpDFKDOiMf5FAi6vfbzAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAD+4KpUeV5mUPw5IG/7w
+eOXnUpeS96XFGuS1JuFo/TbgntPWSPyo+rD4GrPIkUXyoHaMCDd2UBEjyGbBIKlB
+NZA3RJOAEp7DTkLNK4RFn/OEcLwG0J5brL7kaLRO4vwvItVIdZ2XIqzypRQTc0MG
+MmF08zycnSlaN01ryM67AsMhwdHqVa+uXQPo8R8sdFGnZ33yywTYD73FeImXilQ2
+rDnFUVqmrW1fjl0Fi4rV5XI0EQiPrzKvRtmF8ZqjGATPOsRd64cwQX6V+P5hNeIR
+9pba6td7AbNGausHfacRYMyoGJWWWkFPd+7jWOCPqW7Fk1tmBgdB8GzXa3inWIRM
+RUE=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIC+zCCAeOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowGDEWMBQG
+YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNFoXDTI1MTAyNDEwMjYzNFowGDEWMBQG
 A1UEAwwNcm9vdGF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMDzkcftGzdNJz5vXEAZSCAO2J6bCPz896pK3qtaViR/aF8I2vHZQm0IEoJc
-Y1NUMF3F50d6fMYCkEoORAkC0d7iAwTprhBdIg35+TxwGObcStrohDtEgwFmFRzg
-LtYeXiU0t0dBWOOQ9k2f9VGqbzKwZ2dbhOHSTXMTFoEcMStbeFc++oiOLY+QSq/J
-Xd/BXqvwVM3Mt+OwLvyUu45Kw18ENo77qubIPJUwoyaf+N2nFRqcc7bmNy0Wvk2Q
-StvQXy6DpN3KOoZx/sR7Ff8hYuHXcxbSsJ1hOO+tIJyOZyEJvU2BBOYVlKr4E4JU
-mkex0CM1IfIFqfcEkbvjwLjaojsCAwEAAaNQME4wHQYDVR0OBBYEFGnP6NEr2Iaq
-KOsv/hYKwawiPGgRMB8GA1UdIwQYMBaAFGnP6NEr2IaqKOsv/hYKwawiPGgRMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJKl4RCEaXwtosNeurZlS3b9
-owXdsXDRdnfEawcc//AbRkrS4bHCQyOJNp/3DibEKkeAXCJrJ5cvXRjE5gb3Q+rl
-0AqziLY15xuMAxUK3zv0e8Zir21PQzQ9x8zbmlucEoT/jn7KvMSSqfEoer77cXev
-BpmQDQzE3FNgKohmHIzIDoTPiU3ahv6x8IhJ1e47UmRsSPFgtqglHcdCYIEclXpY
-bHvctT6+pFZuJfIs9+BATMXPJWSX7NhlMcnyP+xdDxDKuF/nwVFy6xA+njuWnnZT
-TyiGCnx+u/VpKzOrwMfzv2DW8Db80UERoox5n6QNQLnXNWPMddUL92/p9lMzWJY=
+ggEBAMl+dcraUM/E7E6zl7+7hK9oUJYXJLnfiMtP/TRFVbH4+2aEN8vXzPbzKdR3
+FfaHczXQTwnTCaYA4u4uSDvSOsFFEfxEwYORsdKmQEM8nGpVX2NVvKsMcGIhh8kh
+ZwJfkMIOcAxmGIHGdMhF8VghonJ8uGiuqktxdfpARq0g3fqIjDHsF9/LpfshUfk9
+wsRyTF0yr90U/dsfnE+u8l7GvVl8j2Zegp0sagAGtLaNv7tP17AibqEGg2yDBrBN
+9r9ihe4CqMjx+Q2kQ2S9Gz2V2ReO/n6vm2VQxsPRB/lV/9jh7cUcS0/9mggLYrDy
+cq1v7rLLQrWuxMz1E3gOhyCYJ38CAwEAAaNQME4wHQYDVR0OBBYEFHEPkNAdOa2k
+MUoM6Ix/kUCLq99vMB8GA1UdIwQYMBaAFHEPkNAdOa2kMUoM6Ix/kUCLq99vMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABrhjnWC6b+z9Kw73C/niOwo
+9sPdufjS6tb0sCwDjt3mjvE4NdNWt+/+ZOugW6dqtvqhtqZM1q0u9pJkNwIrqgFD
+ZHcfNaf31G6Z2YE+Io7woTVw6fFobg/EFo+a/qwbvWL26McmiRL5yiSBjVjpX4a5
+kdZ+aPQUCBaLrTWwlCDqzSVIULWUQvveRWbToMFKPNID58NtEpymAx3Pgir7YjV9
+UnlU2l5vZrh1PTCqZxvC/IdRESUfW80LdHaeyizRUP+6vKxGgSz2MRuYINjbd6GO
+hGiCpWlwziW2xLV1l2qSRLko2kIafLZP18N0ThM9zKbU5ps9NgFOf//wqSGtLaE=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 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
-bnRhdXRob3JpdHkwHhcNMTUxMDE5MTE1NTEyWhcNMjUxMDE2MTE1NTEyWjAaMRgw
+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
-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
+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
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/trusted_certs.pem b/tests/standalone/io/certificates/trusted_certs.pem
index 05470f6..8b5bf3e 100644
--- a/tests/standalone/io/certificates/trusted_certs.pem
+++ b/tests/standalone/io/certificates/trusted_certs.pem
@@ -1,18 +1,18 @@
 -----BEGIN CERTIFICATE-----
 MIIC+zCCAeOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowGDEWMBQG
+YXV0aG9yaXR5MB4XDTE1MTAyNzEwMjYzNFoXDTI1MTAyNDEwMjYzNFowGDEWMBQG
 A1UEAwwNcm9vdGF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMDzkcftGzdNJz5vXEAZSCAO2J6bCPz896pK3qtaViR/aF8I2vHZQm0IEoJc
-Y1NUMF3F50d6fMYCkEoORAkC0d7iAwTprhBdIg35+TxwGObcStrohDtEgwFmFRzg
-LtYeXiU0t0dBWOOQ9k2f9VGqbzKwZ2dbhOHSTXMTFoEcMStbeFc++oiOLY+QSq/J
-Xd/BXqvwVM3Mt+OwLvyUu45Kw18ENo77qubIPJUwoyaf+N2nFRqcc7bmNy0Wvk2Q
-StvQXy6DpN3KOoZx/sR7Ff8hYuHXcxbSsJ1hOO+tIJyOZyEJvU2BBOYVlKr4E4JU
-mkex0CM1IfIFqfcEkbvjwLjaojsCAwEAAaNQME4wHQYDVR0OBBYEFGnP6NEr2Iaq
-KOsv/hYKwawiPGgRMB8GA1UdIwQYMBaAFGnP6NEr2IaqKOsv/hYKwawiPGgRMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJKl4RCEaXwtosNeurZlS3b9
-owXdsXDRdnfEawcc//AbRkrS4bHCQyOJNp/3DibEKkeAXCJrJ5cvXRjE5gb3Q+rl
-0AqziLY15xuMAxUK3zv0e8Zir21PQzQ9x8zbmlucEoT/jn7KvMSSqfEoer77cXev
-BpmQDQzE3FNgKohmHIzIDoTPiU3ahv6x8IhJ1e47UmRsSPFgtqglHcdCYIEclXpY
-bHvctT6+pFZuJfIs9+BATMXPJWSX7NhlMcnyP+xdDxDKuF/nwVFy6xA+njuWnnZT
-TyiGCnx+u/VpKzOrwMfzv2DW8Db80UERoox5n6QNQLnXNWPMddUL92/p9lMzWJY=
+ggEBAMl+dcraUM/E7E6zl7+7hK9oUJYXJLnfiMtP/TRFVbH4+2aEN8vXzPbzKdR3
+FfaHczXQTwnTCaYA4u4uSDvSOsFFEfxEwYORsdKmQEM8nGpVX2NVvKsMcGIhh8kh
+ZwJfkMIOcAxmGIHGdMhF8VghonJ8uGiuqktxdfpARq0g3fqIjDHsF9/LpfshUfk9
+wsRyTF0yr90U/dsfnE+u8l7GvVl8j2Zegp0sagAGtLaNv7tP17AibqEGg2yDBrBN
+9r9ihe4CqMjx+Q2kQ2S9Gz2V2ReO/n6vm2VQxsPRB/lV/9jh7cUcS0/9mggLYrDy
+cq1v7rLLQrWuxMz1E3gOhyCYJ38CAwEAAaNQME4wHQYDVR0OBBYEFHEPkNAdOa2k
+MUoM6Ix/kUCLq99vMB8GA1UdIwQYMBaAFHEPkNAdOa2kMUoM6Ix/kUCLq99vMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBABrhjnWC6b+z9Kw73C/niOwo
+9sPdufjS6tb0sCwDjt3mjvE4NdNWt+/+ZOugW6dqtvqhtqZM1q0u9pJkNwIrqgFD
+ZHcfNaf31G6Z2YE+Io7woTVw6fFobg/EFo+a/qwbvWL26McmiRL5yiSBjVjpX4a5
+kdZ+aPQUCBaLrTWwlCDqzSVIULWUQvveRWbToMFKPNID58NtEpymAx3Pgir7YjV9
+UnlU2l5vZrh1PTCqZxvC/IdRESUfW80LdHaeyizRUP+6vKxGgSz2MRuYINjbd6GO
+hGiCpWlwziW2xLV1l2qSRLko2kIafLZP18N0ThM9zKbU5ps9NgFOf//wqSGtLaE=
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/untrusted_server_chain.pem b/tests/standalone/io/certificates/untrusted_server_chain.pem
index d2b585a..ff6e568 100644
--- a/tests/standalone/io/certificates/untrusted_server_chain.pem
+++ b/tests/standalone/io/certificates/untrusted_server_chain.pem
@@ -1,59 +1,59 @@
 -----BEGIN CERTIFICATE-----
 MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVpbnRl
-cm1lZGlhdGVhdXRob3JpdHkwHhcNMTUxMDE5MTE0NjA3WhcNMjUxMDE2MTE0NjA3
+cm1lZGlhdGVhdXRob3JpdHkwHhcNMTUxMDE5MTE1NTEyWhcNMjUxMDE2MTE1NTEy
 WjAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQC9KksWuXwx2Zh0JiU1QDj6lBZ3qJ5LNgYi/U4+yfP6KFcDw0nExUHe
-glLbdEZ3sAwthrpQaWBqA8ZvMb3My+ZSYyDhHUBaTGKxgQZylALN5Xb108OFrxLm
-xbu7YTpS1zHFaVkAGD5dhWwdP/00p0P4iVHkcefsSBltkkJRT096O0jD/cY7/Fe6
-U+ry7fCYKYpJ8x+DGf5g7mPjWW2MC9sfknUGXknHbxArzvFFIrnay2ya/0Nvoi7I
-Ch8TrkAY91mdlAiCzSFMVRulGipOqN+s5hXLd8ANDWYImH8wIxChT9YPHloAZm0P
-m/UuKW1dxfS64nub9gfUFCyxzqHxa5xTAgMBAAGjgbQwgbEwPAYDVR0RBDUwM4IJ
+ggEKAoIBAQDca2l3VIWhnlTqazrA07hiHjgXACUYS/nVox+a2Jar383kBz2kzN6B
+u4K7IwD2msym2IOBp1YT9OKPh9/KkSGvpPelu7ToCoehala32W+0ozh53CR8IpzQ
+tmh7J9oHtN2PcbLgEzHfAWyrY3xp9RpWUONjxoG8xXPedNsZL0Rj65Z3fKAjOypl
++XJsgrqrNNAi3x0OMdhextMmLrYl+YQjgdND8UpykTSc8Q0vwngDZuLH/Nhx0cAA
+Ade0ZfXS6snwWVxrWke+zGF6yANoiV00gsBhq+WZZ50SmE2mz5LT9uj4t5WpcOI/
+2TlbV9HSjdOEAFD8cJIrK5FkEmz383E1AgMBAAGjgbQwgbEwPAYDVR0RBDUwM4IJ
 bG9jYWxob3N0ggkxMjcuMC4wLjGCAzo6MYcEfwAAAYcQAAAAAAAAAAAAAAAAAAAA
-ATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTSkaw7Ct7VZ6/s/WLtKkNo3vXF8zAf
-BgNVHSMEGDAWgBTicNglV5Pq//6VpIWaOwJyKKr4EjAOBgNVHQ8BAf8EBAMCA6gw
-EwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAEuIlec3o/Dr
-0kfWCSwA+ImHkaKyEVW4RALKEnaYBSWOyk9oIzS/k7ygz4QI+ay4EW9KoJMwIxAK
-fliM/lsD+Vj78imGbLeYI1OxQDznZcsUloamivhPe5MQf7jR9q4aTZ7f0n1kZulf
-8VfSexCCvKeB8DIGS4zDtu0Fs4QOJGHtnSwwBNjYmyIyXY7SsG1+Ka95ttrMV2HF
-ZB7SQ+HdPHyn3sBcPbSbqkIwC5IGiqPZS2hiPpgE4nYU1e8brL8rrlUL/INsYnFb
-slKJApx/wi/jBBKZ6C5S9a/4LDIgQeNH2KdlD40JA920w2PAKbk95At2vy1lr3kQ
-7iIgRvcraSo=
+ATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQO+6Atr6tkTBmPasN4oTDUlbxQ1zAf
+BgNVHSMEGDAWgBRrkK4hOni2neySWQNmMfb9imn/+DAOBgNVHQ8BAf8EBAMCA6gw
+EwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBACdVUzrhfXoW
+wG0zI9aT6CxD7T0i0WK4fC6Yrx0Pqz53xnuiwBfvuAJ/PRXKYsJMxa2LuHGJKU/A
+nImCXGJHoUwL6x4Eor6fg7L9nPNqtIrQ6tzubxNtVPpLj4tK6Ps3IM+FICYUSX0b
+FLSfnv74afUp/2+0OHsoUVsL1rCTO2WgEkEShLERdJvdcvUSTWHfC5IQORS9vfzG
++cZGOOPebfm8TY2DJxMYj/t7CHs1Sk550x590sKb/prwtJAYtQxGe7v0m9rihiM3
+dFKZiNh99yXbQ1ELYyhkFP8WAdK8ZTnynGqgAYJmV89Dg8k2uU8z+dahlE3foORD
+Y/Gn0CZE1NY=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIDLjCCAhagAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNDYwN1oXDTI1MTAxNjExNDYwN1owIDEeMBwG
+YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowIDEeMBwG
 A1UEAwwVaW50ZXJtZWRpYXRlYXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA2mNFVzURk/dREoJiWUrxNjMSOtIMCl1ep/CJqC7g4QL1aOEp
-+4vJ7s+NFG6K4aafLg9UwdQ9mPLwkCkX4ETBCJDU7atD0AM7OhlGTC9q22kMDdSz
-IeT4HQ7QQntDkg4TPBz/uoUwlrDsfLUObx1VB1G/eag0wFE+1HmtwXnusT8L6xzs
-Nfbjn6NrkXIoww1F+s1Bc8AtZVlib7KSR56idhgZGo5PAIBygQT21H4W5HYlossn
-8sfj/HtHtNk+qgeqK0uIAiW3RAj1mKm7OoY/zcgTvRJPYqkRbahB5pPyPQfXlfvj
-8pBl8xBzeBNGXf2pqU8nter+2cCBT3E8MwhkOQIDAQABo3sweTASBgNVHRMBAf8E
-CDAGAQH/AgEAMB0GA1UdDgQWBBTicNglV5Pq//6VpIWaOwJyKKr4EjAfBgNVHSME
-GDAWgBQzJoFbvQyxUqLv02M/SqkjAAAk9DAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
-BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAEZg1NvkzRFh1OA5eBeP
-bgIfYRhcOJlwxBgjYa8+h6NlIrnYvJC0OCyV/2tvYkrNcJmI4AAGlchsdlPZGkP4
-gyPP/aml6f/Ys6fMggLNaT2PjO9ZozF/o9JM2H1j1/OGBa7EmMYCG4EDEzqpDrYa
-pQFjr6ULc0pvXJIHDaIWQgzqSYrvaIzO1V59zQymK0GUMFydPQreljFUHW5zi8x6
-jYvd3kgJGe0R96+ktLPF41JJwRqUJENyTqESYYd2Tu0GS7bFqEmQ0zT5aVYkr/VR
-GNhOE92EOJNymB11NWNjEfAp5nVMPsySJBIO50nlQY0igAiZZfhFz0cykrwGhuN7
-dRY=
+AQ8AMIIBCgKCAQEA1OV9iea75DPQ18NppXxEFW26J7IfjUvp4wVnj9m7pOhsByqd
+wwS6hpjlkpEwCyugKD/t7u/VGwp2BB+BeaX7FPj6rnYY82bOJQlyB/vvDmOZfAe2
+84ug9O7QcsQHSQ7YQFuvYKaeYCKdrGjzQPVYkoVdv2js2dYTDG3QSIxpbi305Vef
+ia6Zfs5CAW/SfL36+ETo2pXNlD1ZBGRL8H3z+mMnIEj1Tbaipf+1Npr2l3xqIs1k
+RWsM3X+9xMkWGyvsDdbLIGiTTVxM9kOF0aNLdQIKb2tZsg4jRrFIgiO+5TXwp0FW
+4ldc5/GhtaoPDcsIALyIQc7CJ/PpPm9hnxIy7QIDAQABo3sweTASBgNVHRMBAf8E
+CDAGAQH/AgEAMB0GA1UdDgQWBBRrkK4hOni2neySWQNmMfb9imn/+DAfBgNVHSME
+GDAWgBRpz+jRK9iGqijrL/4WCsGsIjxoETAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0l
+BAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBACcwiLJUPzYGIeGIYGlo
+XlP4++adiPlXvsyTxLdGVSFWJMBV5EhtiXQXaUsOs2PyC7SWxiiUdAgE8Y2tMsF3
+Bh5LY/kKxZQXZuFa+RN1kPlhlYJWdiPyqcBziSPFBtqwudWLDUVSaVAQDhYYVB3K
+5+pFaeQKfhYmPvJKR9U2nTvukOhN1fZM8GUBnm2uaiA3giQ0wxXyQIuqC9S52qbh
+x4D4ZdbshQAgThPkHBoZVmd/NF1TNzitZZy7uaU7GpGrS1dcevN7pEUwm3+KIkIT
+AOSLB2FbFOwPUg6a/lWkFPotT3gl0tdyCaqkfneGCHzVciT0JTS/AqpdYEtuxEMe
+PJk=
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 MIIC+zCCAeOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1yb290
-YXV0aG9yaXR5MB4XDTE1MTAxOTExNDYwNloXDTI1MTAxNjExNDYwNlowGDEWMBQG
+YXV0aG9yaXR5MB4XDTE1MTAxOTExNTUxMloXDTI1MTAxNjExNTUxMlowGDEWMBQG
 A1UEAwwNcm9vdGF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAOICaW5E0IzpRZSO3RcMT7Qsj9gIBbYPkCUT9nA4YXbW+ZPPnupmgikWjfz1
-bhSm1J/32AUqg9LngXulq0CLBVUoVGgR9yPFSUuawHKvqliKwdUiGhvAh7iKE1hZ
-x7fIqhwMm8Cbn7LmK8gbzpRkTLIMyOUFVnMMwTtttfLQpXegT9HukZ2JuvqPCpAW
-aBBCZufpime3xcNyh4AEo34sNyDPfMjaiB3j5AQIehOm2phZia9DsGmKofhhNiWU
-xuQsHMubE8ODXeWEipuz3SRzwc4znIxeCiaDDBgIaRVY/7t/JdMFhI4AfktGn3fp
-AhevaZ1AnOqJ/3fDwMWrn31USHsCAwEAAaNQME4wHQYDVR0OBBYEFDMmgVu9DLFS
-ou/TYz9KqSMAACT0MB8GA1UdIwQYMBaAFDMmgVu9DLFSou/TYz9KqSMAACT0MAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJvF47StRunE0dEvD6rx9ALO
-0GRXAB7v4iyZP+PIfbIwVLY0jjMPh9jzuyzOtkPSwEUX+mtTe83o8r9Srkf7oJEQ
-GH/tfJpzJcSsOtGkw8s33I436IT7lKAr1k2V9S0/9u+k7N4Iuo9JeYj+8BSM4cpO
-i3uN98qx5IIHI7mZ77Iv1ZXN324mBzP/isppagbw2jl8VyHfy3rUNLQaMT41nNof
-pCw/z6JpQhz6WHA+GkKlJ2sAiNhLtSOBzk2wx1080eZb3GbEkDKLXCKdR/cQf9vS
-feky5cPaFQnfnfFv0b9Ygx3DopWCZ5hg5SxwxwTQv6Cy6XlIfaaFwNkrTzuhFoE=
+ggEBAMDzkcftGzdNJz5vXEAZSCAO2J6bCPz896pK3qtaViR/aF8I2vHZQm0IEoJc
+Y1NUMF3F50d6fMYCkEoORAkC0d7iAwTprhBdIg35+TxwGObcStrohDtEgwFmFRzg
+LtYeXiU0t0dBWOOQ9k2f9VGqbzKwZ2dbhOHSTXMTFoEcMStbeFc++oiOLY+QSq/J
+Xd/BXqvwVM3Mt+OwLvyUu45Kw18ENo77qubIPJUwoyaf+N2nFRqcc7bmNy0Wvk2Q
+StvQXy6DpN3KOoZx/sR7Ff8hYuHXcxbSsJ1hOO+tIJyOZyEJvU2BBOYVlKr4E4JU
+mkex0CM1IfIFqfcEkbvjwLjaojsCAwEAAaNQME4wHQYDVR0OBBYEFGnP6NEr2Iaq
+KOsv/hYKwawiPGgRMB8GA1UdIwQYMBaAFGnP6NEr2IaqKOsv/hYKwawiPGgRMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJKl4RCEaXwtosNeurZlS3b9
+owXdsXDRdnfEawcc//AbRkrS4bHCQyOJNp/3DibEKkeAXCJrJ5cvXRjE5gb3Q+rl
+0AqziLY15xuMAxUK3zv0e8Zir21PQzQ9x8zbmlucEoT/jn7KvMSSqfEoer77cXev
+BpmQDQzE3FNgKohmHIzIDoTPiU3ahv6x8IhJ1e47UmRsSPFgtqglHcdCYIEclXpY
+bHvctT6+pFZuJfIs9+BATMXPJWSX7NhlMcnyP+xdDxDKuF/nwVFy6xA+njuWnnZT
+TyiGCnx+u/VpKzOrwMfzv2DW8Db80UERoox5n6QNQLnXNWPMddUL92/p9lMzWJY=
 -----END CERTIFICATE-----
diff --git a/tests/standalone/io/certificates/untrusted_server_key.pem b/tests/standalone/io/certificates/untrusted_server_key.pem
index a432114..29a9e32 100644
--- a/tests/standalone/io/certificates/untrusted_server_key.pem
+++ b/tests/standalone/io/certificates/untrusted_server_key.pem
@@ -1,29 +1,29 @@
 -----BEGIN ENCRYPTED PRIVATE KEY-----
-MIIE4jAcBgoqhkiG9w0BDAEBMA4ECM5Q9vG4KGZGAgIIAASCBMBiQm5+L2fG6oTd
-F4NPWJQj2ud4FjIp98E0HHmqZZjWxkTJHdHjPvHNGIrAYpyM54Hj1Av6RsOCtyEk
-/XfmlXuf6MzoY54rYSrFKxSssrRvPu6PT5BpWB0ErEs/gksRXRMXDVCVv14rvIAl
-f37j/aqaUYNQSsy7n5t/7PZ6w4icVIPYFZlKcIzYM0M6yy/vN3EarInQtgIc0U5/
-m8/87oyH83AzxtVH07Y6iYOEdTqmNFgGLnLmRaGnG6bsa/O8u8FKtP+9D468qxPD
-Te58rrkicvHPNNtKSvi1acN7jtHQ1+0asQwny/ElYrrfUr1K6ypfGWUmIL0LBxYK
-5QLYWqQTmUlisirGDmKJ29H0PyF3enUpOyKBFTzrqfGrIPLpmbHN29DlmliOcRjU
-ftbPFVH8n2dLf9Xtnhgzk9H1JoL228aYdd2nO3Lb8Kn4DV2iRS6y/4RXTbSdlRBf
-eB6FT1WgcU1Rtl+2ekxncVBrTV/akM7S/Y6XtpzwUpi41JXpUtV3aRltYH7HLXQR
-qZKfkUcma+WiBwgjjiBs9be0h2Ow6n4SX++I9xgEhGEkq8ob/HQTiIC2frH/EqVN
-/zl20GgQWmkresmJxKaesNYocsqr7cvq2yx8PbItXW6nugtm1U29YyQSEtXypIXl
-VY4PcccfaKH1iF1ia5sF7yhHQEeuG6c1WBJCXog2t1Nrru2Df3AVMgqcltTGo+K3
-6R/7BveklhFcQkAjn3HUEy8/mlq9nrblWT9YfcP7gqR4szCAZoALGXG7DYVyrheg
-yZwSraFunzlBbfVvMAhtEPakNNT9tadhEZObkQfCB1g7UeXtgZ1u7v8wtq+5xKHe
-RtECM9Jitk5Tn9HPvumdkzuM9zyagJs90WxsAUxInzB6zCWaBduiZIjEK/WZRocY
-0lK9yDEEnwZ/8uiif9Y52fvdI6cHBy041VYvXSxal08ToEye3NBbXTwhMbI6hbfp
-1drJcb0ARYIFzX16cy85YF64iwPqSBt5cQBPhwF1sDcjBPeYFeZ43qNw4KnO1M2w
-jGCmFvFcapwGhuJfFQMt9gEX3jx/8460/GUxTYm/gLvXL4Ae8OkWLRW6TMvDNw39
-esRdO/gQcfj2P5YZuBjptU0B//a9f7OaJNyyr39Hj3l5TgkDv5iV5HLZYXkn6nMT
-SiKMtYDq4qKyqeMcGVACCm0/Z1xUtPQsBYoL7+1v+ewyZpqNs9XYZJGSDpUddBzD
-EHEqUEIIUslV2fRFDnfIKDovjIfaaox3g1cpoZLzFmzQ/GYo2bFp6zMFTvqlWFTN
-RTElsHnKbX/0nlQHMNGmEwbowuPerDd1LehexSWm8GWutWCUH5SfE1k0F8UTnqwF
-AvySfhx28xY24neoj5OfM4O6j2mY9d392NrUo5xXhIWfFkXi97uFpkVvx2N7EfGF
-pjZRbnQUmf/HZ3p2N7EUnUV9q+AKume2EeFwTBS6fZdrhHvD4aYkbm41tBoNoS75
-DKpQJ7OTIdgy2uOrY4xSnKOJGuh+iJysQe5axeKKEEIr84VF23SpfqTiNFDDFec0
-749mgVHS/+tCw6UsgS/3vS+3AqMW8DgNKYkhcaDQVFYbVJLmlLGYmLZfkKBbUzy3
-Vv6uVhro
+MIIE5TAcBgoqhkiG9w0BDAEBMA4ECKAry4fwmB/TAgIIAASCBMNsKbVVvIs/l6/N
+/1J9WXSiA1gnRTd2n58GJUV6mkiaRUMiWu3fK+V7iHpIi7KeLeD+JGsDeqxw0bB5
+lmS/RJy0wNBP0PL0oiI8VUe3wxTUU2b5wW9fomeOTGWOIUL5VZXHkTCf5KMcFWMY
+GMnDpIN/f/m9zvz/3FogxIZlIAxG7gKKrfEcKExIShAJ5wYDbDSFZWfNcjMODGPn
+xz3W04aRsJGf3KlOQvSuNtcBpsuwXuAXezzuFETM20xrWW3iJIsO5UmqJ1OJcdet
+A+k5k0K+1/WwLkceWJYSd19O+7LNULsZhKUJ515ZSO1TJGgfd5DznkgRXYUx5ucS
+tvJLYvShGbaYulsVKn8q2nkIxnQCov3my1hIRk/qCKb+uOvRD9dIkjSlNubqaRb6
+geEOfTh1g5PCeKPlSTkVueLQqWxKMye4eWYqUxExkUNuGJ0d2ndBGJRo6bulnc7I
+kt44DzEufV5OLvyTufimpohqRm3Yzq87DWSSThCKOGkhfGutn8B7cJR8ZPrG2euT
+J7Bv4EuFjhpKDieqDi8yoXgIkWSgyzFNMsewV4lxFNP/wbvoKPFrKsU4ny6jRfzy
+WTjMN1UOTBvsyZbVvjLII79cBKLqlowHAZQ7YwuxtbjeB9FRH+ZwkzYeyn4GNHdf
+QoVwOMKAiOMjzAK9qdW7isVXy/7v9EXaZplRmwMRhCZevC9zeY2Rueahq8qpHpH1
+GPjrew5elPkBRQhxX6IiL7kI7upE65UI5hnnTnrdrZkRmMYOFEZLyLbTU4wMCxui
+4BmEiGp6qCWe3UND1b8YhG+gsRYzHK5oEJV+Ck7m+e9iU3/axggUfAhZeBmdlgqd
+bUajlzcgbtfaSgZ08XXU1YPw0aLlmJGzb+oWMFwBJHAUYpOV2uqDHiXZZt4SoAF9
+gJQaXvqMGzY8JyP5ZQauljVtPGcopA+jbix3Rbwf97lLqJHSpWoHpcCa6FrfaMqG
+dx8oQsO67WN0gm5DIN3kB2jHOj9Nf7kr3HGjyC5tPq8s1+aT6baZcHWzVfyVr10c
+9X13Pz5XzEa1oiaO7JDPkzb9T7aPJZwskATNB8h6tWfqdGyUY5eURtsCnVrtG/1p
+pAXyY/0vAksfDPjMChKLKxZ7rBbscoNzr2f7Vw4CTnIpaxA4eLEx6UdpG4/5RzYJ
+0YuR+SzCkuNti7uZGi9DCGkZkYl6VndatW+Pk/+JVBexdKt6MsER6aVsS8ev9UbW
+JG+2C8bjMlfKy21644KwYOtZbVcE9jwlsz8w+e6YbOzBvbwiPmoCi0xcMxRJPa2y
+cKMrs2hSKmhUP6uIH0b0qNcHEPA32mVzGC0MToC5R+yb6OdyvoEsisqS7tEAMfTJ
+0yowcZr2lPehaMr4efSB8JY6DuofitfgI6X6bmiIPQ9v//djxhkxkRAbpTRGmFZx
+1YIKDa72S8jUxHWlVvmoqTWI8T+jltF2pYBctS6IMKEot/CcBCHb5l1zfMyo5a0x
+73ooh5tq+vRWJGaLRMj66VVSWGQoJmfAGwWpjBpTLa0UQoHO0/J1IbfjFOj5HV3J
+bscmoGWhVwuJM5ActB0MOvXGQe9mf2X4p/1Rp+yBuipH1SJzFEzbOZ3kE50Z6aXH
+CoJJOKkcuf43
 -----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/standalone/io/create_sample_certificates.sh b/tests/standalone/io/create_sample_certificates.sh
index eaa62f0..7ab6f75 100755
--- a/tests/standalone/io/create_sample_certificates.sh
+++ b/tests/standalone/io/create_sample_certificates.sh
@@ -34,7 +34,7 @@
 # Sign the certificate of the intermediate authority with the root authority.
 # Add the certificate extensions marking it as a certificate authority.
 openssl x509 -req -in intermediate_authority_request.pem \
-    -out intermediate_authority.pem -set_serial 1 \
+    -out intermediate_authority.pem -set_serial 2 \
     -CA root_authority.pem -CAkey root_authority_key.pem \
     -passin $password -extfile ../sample_certificate_v3_extensions \
     -extensions intermediate_authority -days 3650
@@ -63,15 +63,23 @@
     -keyout client2_key.pem -out client2_request.pem
 
 # Sign the certificate requests with the client authority
-openssl x509 -req -in client1_request.pem -out client1.pem -set_serial 1 \
+openssl x509 -req -in client1_request.pem -out client1.pem -set_serial 2 \
     -CA client_authority.pem -CAkey client_authority_key.pem \
     -passin $password -extfile ../sample_certificate_v3_extensions \
     -extensions client_certificate -days 3650
-openssl x509 -req -in client2_request.pem -out client2.pem -set_serial 1 \
+openssl x509 -req -in client2_request.pem -out client2.pem -set_serial 3 \
     -CA client_authority.pem -CAkey client_authority_key.pem \
     -passin $password -extfile ../sample_certificate_v3_extensions \
     -extensions client_certificate -days 3650
 
+# Delete all the signing keys for the authorities, so testers that add
+# them as trusted are less vulnerable: only the sample server certificate
+# and client certificates will be signed by them. No more certificates
+# will ever be signed.
+rm root_authority_key.pem
+rm intermediate_authority.pem
+rm client_authority_key.pem
+
 # Copy the certificates we will use to the 'certificates' directory.
 CERTS=../certificates
 cat localhost.pem intermediate_authority.pem root_authority.pem \
diff --git a/tests/standalone/io/secure_server_client_certificate_test.dart b/tests/standalone/io/secure_server_client_certificate_test.dart
index 81f0995..c104dba 100644
--- a/tests/standalone/io/secure_server_client_certificate_test.dart
+++ b/tests/standalone/io/secure_server_client_certificate_test.dart
@@ -32,8 +32,8 @@
   var server = await SecureServerSocket.bind(HOST, 0, serverContext,
       requestClientCertificate: true, requireClientCertificate: required);
   var clientContext = sendCert ? clientCertContext : clientNoCertContext;
-  var clientEndFuture = SecureSocket.connect(HOST, server.port,
-      context: clientContext, sendClientCertificate: true);
+  var clientEndFuture =
+      SecureSocket.connect(HOST, server.port, context: clientContext);
   if (required && !sendCert) {
     try {
       await server.first;
diff --git a/tests/standalone/io/secure_socket_renegotiate_client.dart b/tests/standalone/io/secure_socket_renegotiate_client.dart
index 8c41458..d277012 100644
--- a/tests/standalone/io/secure_socket_renegotiate_client.dart
+++ b/tests/standalone/io/secure_socket_renegotiate_client.dart
@@ -41,8 +41,7 @@
 void runClient(int port) {
   SecureSocket.connect(HOST_NAME,
                        port,
-                       context: clientContext,
-                       sendClientCertificate: true)
+                       context: clientContext)
     .then((SecureSocket socket) {
       X509Certificate certificate = socket.peerCertificate;
       expect(certificate != null);
diff --git a/tools/VERSION b/tools/VERSION
index 0503714..6051ec3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 13
 PATCH 0
 PRERELEASE 7
-PRERELEASE_PATCH 4
+PRERELEASE_PATCH 5
diff --git a/tools/deps/dartium.deps/DEPS b/tools/deps/dartium.deps/DEPS
index 9266b01..ca01b17 100644
--- a/tools/deps/dartium.deps/DEPS
+++ b/tools/deps/dartium.deps/DEPS
@@ -13,8 +13,8 @@
   "dartium_chromium_branch": "master",
   "dartium_chromium_commit": "62a7524d4f71c9e0858d24b0aa1bbff3a2d09bff",
   "chromium_base_revision": "297060",
-  "dartium_webkit_branch": "/blink/branches/dart/dartium",
-  "dartium_webkit_revision": "202689",
+  "dartium_webkit_branch": "/blink/branches/dart/2171_4",
+  "dartium_webkit_revision": "202693",
 
   # We use mirrors of all github repos to guarantee reproducibility and
   # consistency between what users see and what the bots see.