0

看起来 SSL/TLS 支持最近已通过SecureSocket类添加到 Dart 中,这很棒。

所以,例如这个

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 实现。

4

1 回答 1

0

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

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

获取已连接的套接字并启动客户端 TLS 握手以确保通信安全。

于 2013-07-14T20:13:12.463 回答