Index: runtime/bin/secure_socket_patch.dart |
diff --git a/runtime/bin/secure_socket_patch.dart b/runtime/bin/secure_socket_patch.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..34edc7e12c395f9106f0374700e64937ad71b046 |
--- /dev/null |
+++ b/runtime/bin/secure_socket_patch.dart |
@@ -0,0 +1,58 @@ |
+// 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 SecureSocket { |
+ /* patch */ static void setCertificateDatabase(String certificateDatabase, |
+ [String password]) |
+ native "SecureSocket_SetCertificateDatabase"; |
+} |
+ |
+ |
+patch class _SecureFilter { |
+ /* patch */ factory _SecureFilter() => new _SecureFilterImpl(); |
+} |
+ |
+ |
+/** |
+ * _SecureFilterImpl wraps a filter that encrypts and decrypts data travelling |
+ * over an 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 _SecureFilterImpl |
+ extends NativeFieldWrapperClass1 |
+ implements _SecureFilter { |
+ _SecureFilterImpl() { |
+ buffers = new List<_ExternalBuffer>(_SecureSocket.NUM_BUFFERS); |
+ for (int i = 0; i < _SecureSocket.NUM_BUFFERS; ++i) { |
+ buffers[i] = new _ExternalBuffer(); |
+ } |
+ } |
+ |
+ void connect(String hostName, |
+ int port, |
+ bool is_server, |
+ String certificate_name) native "SecureSocket_Connect"; |
+ |
+ void destroy() { |
+ buffers = null; |
+ _destroy(); |
+ } |
+ |
+ void _destroy() native "SecureSocket_Destroy"; |
+ |
+ void handshake() native "SecureSocket_Handshake"; |
+ |
+ void init() native "SecureSocket_Init"; |
+ |
+ int processBuffer(int bufferIndex) native "SecureSocket_ProcessBuffer"; |
+ |
+ void registerHandshakeCompleteCallback(Function handshakeCompleteHandler) |
+ native "SecureSocket_RegisterHandshakeCompleteCallback"; |
+ |
+ List<_ExternalBuffer> buffers; |
+} |