Index: runtime/bin/tls_socket_patch.dart |
diff --git a/runtime/bin/tls_socket_patch.dart b/runtime/bin/tls_socket_patch.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..73e40e815076e40ac68ead319a8e4f350048cf5b |
--- /dev/null |
+++ b/runtime/bin/tls_socket_patch.dart |
@@ -0,0 +1,52 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+patch class TlsSocket { |
+ /* patch */ static void setCertificateDatabase(String pkcertDirectory) |
+ native "TlsSocket_SetCertificateDatabase"; |
+} |
+ |
+ |
+patch class _TlsFilter { |
+ /* patch */ factory _TlsFilter() => new _TlsFilterImpl(); |
+} |
+ |
+ |
+/** |
+ * _TlsFilterImpl wraps a filter that encrypts and decrypts data travelling |
+ * over a TLS encrypted socket. The filter also handles the handshaking |
+ * and certificate verification. |
+ * |
+ * The filter exposes its input and output buffers as Dart objects that |
+ * are backed by an external C array of bytes, so that both Dart code and |
+ * native code can access the same data. |
+ */ |
+class _TlsFilterImpl extends NativeFieldWrapperClass1 implements _TlsFilter { |
+ _TlsFilterImpl() { |
+ buffers = new List<_TlsExternalBuffer>(_TlsSocket.NUM_BUFFERS); |
+ for (int i = 0; i < _TlsSocket.NUM_BUFFERS; ++i) { |
+ buffers[i] = new _TlsExternalBuffer(); |
+ } |
+ } |
+ |
+ void connect(String hostName, int port) native "TlsSocket_Connect"; |
+ |
+ void destroy() { |
+ buffers = null; |
+ _destroy(); |
+ } |
+ |
+ void _destroy() native "TlsSocket_Destroy"; |
+ |
+ void handshake() native "TlsSocket_Handshake"; |
+ |
+ void init() native "TlsSocket_Init"; |
+ |
+ int processBuffer(int bufferIndex) native "TlsSocket_ProcessBuffer"; |
+ |
+ void registerHandshakeCompleteCallback(Function handshakeCompleteHandler) |
+ native "TlsSocket_RegisterHandshakeCompleteCallback"; |
+ |
+ List<_TlsExternalBuffer> buffers; |
+} |