Chromium Code Reviews| Index: runtime/bin/secure_socket.h |
| diff --git a/runtime/bin/secure_socket.h b/runtime/bin/secure_socket.h |
| index 70a24378395171a258510dfc109bd78b8fe26d5a..75ac0024f5b843f694fd31584316074e29d57b29 100644 |
| --- a/runtime/bin/secure_socket.h |
| +++ b/runtime/bin/secure_socket.h |
| @@ -9,125 +9,16 @@ |
| #error "secure_socket.h can only be included on builds with SSL enabled" |
| #endif |
| -#include <stdio.h> |
| -#include <stdlib.h> |
| -#include <string.h> |
| -#include <sys/types.h> |
| - |
| -#include <openssl/bio.h> |
| -#include <openssl/err.h> |
| -#include <openssl/ssl.h> |
| -#include <openssl/x509.h> |
| - |
| -#include "bin/builtin.h" |
| -#include "bin/dartutils.h" |
| -#include "bin/socket.h" |
| -#include "bin/thread.h" |
| -#include "bin/utils.h" |
| - |
| -namespace dart { |
| -namespace bin { |
| - |
| -/* These are defined in root_certificates.cc. */ |
| -extern const unsigned char* root_certificates_pem; |
| -extern unsigned int root_certificates_pem_length; |
| - |
| -/* |
| - * SSLFilter encapsulates the NSS SSL(TLS) code in a filter, that communicates |
| - * with the containing _SecureFilterImpl Dart object through four shared |
| - * ExternalByteArray buffers, for reading and writing plaintext, and |
| - * reading and writing encrypted text. The filter handles handshaking |
| - * and certificate verification. |
| - */ |
| -class SSLFilter { |
| - public: |
| - // These enums must agree with those in sdk/lib/io/secure_socket.dart. |
| - enum BufferIndex { |
| - kReadPlaintext, |
| - kWritePlaintext, |
| - kReadEncrypted, |
| - kWriteEncrypted, |
| - kNumBuffers, |
| - kFirstEncrypted = kReadEncrypted |
| - }; |
| - |
| - SSLFilter() |
| - : callback_error(NULL), |
| - ssl_(NULL), |
| - socket_side_(NULL), |
| - string_start_(NULL), |
| - string_length_(NULL), |
| - handshake_complete_(NULL), |
| - bad_certificate_callback_(NULL), |
| - in_handshake_(false), |
| - hostname_(NULL) { } |
| - |
| - ~SSLFilter(); |
| - |
| - Dart_Handle Init(Dart_Handle dart_this); |
| - void Connect(const char* hostname, |
| - SSL_CTX* context, |
| - bool is_server, |
| - bool request_client_certificate, |
| - bool require_client_certificate, |
| - Dart_Handle protocols_handle); |
| - void Destroy(); |
| - void Handshake(); |
| - void GetSelectedProtocol(Dart_NativeArguments args); |
| - void Renegotiate(bool use_session_cache, |
| - bool request_client_certificate, |
| - bool require_client_certificate); |
| - void RegisterHandshakeCompleteCallback(Dart_Handle handshake_complete); |
| - void RegisterBadCertificateCallback(Dart_Handle callback); |
| - Dart_Handle bad_certificate_callback() { |
| - return Dart_HandleFromPersistent(bad_certificate_callback_); |
| - } |
| - int ProcessReadPlaintextBuffer(int start, int end); |
| - int ProcessWritePlaintextBuffer(int start, int end); |
| - int ProcessReadEncryptedBuffer(int start, int end); |
| - int ProcessWriteEncryptedBuffer(int start, int end); |
| - bool ProcessAllBuffers(int starts[kNumBuffers], |
| - int ends[kNumBuffers], |
| - bool in_handshake); |
| - Dart_Handle PeerCertificate(); |
| - static void InitializeLibrary(); |
| - Dart_Handle callback_error; |
| - |
| - static CObject* ProcessFilterRequest(const CObjectArray& request); |
| - |
| - // The index of the external data field in _ssl that points to the SSLFilter. |
| - static int filter_ssl_index; |
| - |
| - // TODO(whesse): make private: |
| - SSL* ssl_; |
| - BIO* socket_side_; |
| - |
| - private: |
| - static bool library_initialized_; |
| - static Mutex* mutex_; // To protect library initialization. |
| - |
| - uint8_t* buffers_[kNumBuffers]; |
| - int buffer_size_; |
| - int encrypted_buffer_size_; |
| - Dart_PersistentHandle string_start_; |
| - Dart_PersistentHandle string_length_; |
| - Dart_PersistentHandle dart_buffer_objects_[kNumBuffers]; |
| - Dart_PersistentHandle handshake_complete_; |
| - Dart_PersistentHandle bad_certificate_callback_; |
| - bool in_handshake_; |
| - bool is_server_; |
| - char* hostname_; |
| - |
| - static bool isBufferEncrypted(int i) { |
| - return static_cast<BufferIndex>(i) >= kFirstEncrypted; |
| - } |
| - Dart_Handle InitializeBuffers(Dart_Handle dart_this); |
| - void InitializePlatformData(); |
| - |
| - DISALLOW_COPY_AND_ASSIGN(SSLFilter); |
| -}; |
| - |
| -} // namespace bin |
| -} // namespace dart |
| +#include "platform/globals.h" |
| +// Declare the OS-specific types ahead of defining the generic class. |
|
Ivan Posva
2016/03/21 20:38:01
There seems to be no "generic class" being defined
zra
2016/03/21 22:32:58
Removed comment
|
| +#if defined(TARGET_OS_ANDROID) || \ |
| + defined(TARGET_OS_LINUX) || \ |
| + defined(TARGET_OS_WINDOWS) |
| +#include "bin/secure_socket_boringssl.h" |
| +#elif defined(TARGET_OS_MACOS) |
| +#include "bin/secure_socket_macos.h" |
| +#else |
| +#error Unknown target os. |
| +#endif |
| #endif // BIN_SECURE_SOCKET_H_ |