【问题标题】:Enable TLS on open socket (STARTTLS)在打开的套接字上启用 TLS (STARTTLS)
【发布时间】:2013-07-14 00:58:25
【问题描述】:

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

所以,例如这个

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

【问题讨论】:

    标签: ssl dart starttls dart-io


    【解决方案1】:

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

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

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

    【讨论】:

    • 有效。不敢相信我没有在文档中看到这一点。谢谢!
    猜你喜欢
    • 2021-10-26
    • 2018-07-12
    • 2013-10-25
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2012-08-21
    相关资源
    最近更新 更多