最近通过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实现。
答案 0 :(得分:0)
我自己没有尝试过,但看起来SecureSocket文档中的secure
方法正是您正在寻找的(假设您想使用客户端握手,否则请参阅secureServer
):
Future<SecureSocket> secure(Socket socket, {host, bool sendClientCertificate: false, String certificateName, bool onBadCertificate(X509Certificate certificate)})
采用已连接的套接字并启动客户端TLS握手 使通信安全。