在打开的套接字上启用TLS(STARTTLS)

时间:2013-07-14 00:58:26

标签: ssl dart starttls dart-io

最近通过added类向Dart提供SSL / TLS支持SecureSocket,这很棒。

所以,例如这个

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);

在Dart中有什么办法吗?

编辑:我想我正在寻找的是STARTTLS的Dart实现。

1 个答案:

答案 0 :(得分:0)

我自己没有尝试过,但看起来SecureSocket文档中的secure方法正是您正在寻找的(假设您想使用客户端握手,否则请参阅secureServer):

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

采用已连接的套接字并启动客户端TLS握手   使通信安全。