2013-07-14 2 views
0

Похоже, что поддержка SSL/TLS недавно была added в Dart через класс SecureSocket, что отлично.Включить TLS на открытой розетке (STARTTLS)

Так, например, это

SecureSocket.connect(_host, _port).then(
     (Socket socket) { 
      ... 

открывает сокет с TLS включен сразу. Однако то, что я хотел бы сделать, это открыть обычный (не защищенный) сокет, сначала отправить и получить некоторые незашифрованные данные, а позже включить TLS.

Вот как это можно сделать в PHP:

$socket = fsockopen($server, $port, $errno, $errstr); 
// ... do some unencrypted stuff... 
stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT); 

Любой способ сделать это в Дарта?

EDIT: Я думаю, что я ищу, это реализация Дарт STARTTLS.

ответ

0

Я не пробовал сам, но это выглядит как метод secure в документации SecureSocket это именно то, что вы ищете (если вы хотите использовать на сторону клиента рукопожатие, в противном случае см secureServer):

Future<SecureSocket> secure(Socket socket, {host, 
     bool sendClientCertificate: false, String certificateName, bool 
     onBadCertificate(X509Certificate certificate)}) 

принимает уже подключенный сокет и начинает на стороне клиента TLS рукопожатие для обеспечения защиты связи.

+0

Работы. Не могу поверить, что я не видел этого в доке. Благодаря! – Max

Смежные вопросы