dart:io
库中RawSecureSocket.secure
方法的用法介绍如下。
用法:
Future<RawSecureSocket> secure(
RawSocket socket,
{StreamSubscription<RawSocketEvent>? subscription,
dynamic host,
SecurityContext? context,
bool onBadCertificate(
X509Certificate certificate
)?,
void keyLog(
String line
)?,
List<String>? supportedProtocols}
)
在现有连接上启动 TLS。
获取已连接的socket
并启动客户端 TLS 握手以确保通信安全。当返回的未来完成时,RawSecureSocket
已完成 TLS 握手。使用此函数需要连接的另一端为 TLS 握手做好准备。
如果 socket
已有订阅,请在 subscription
参数中传递现有订阅。 secure 操作将通过用它自己的安全处理替换处理程序来接管订阅。调用者不得再触摸此订阅。传递暂停的订阅是一个错误。
如果传递了 host
参数,它将用作 TLS 握手的主机名。如果未传递host
,则将使用来自socket
的主机名。 host
可以是 String 或 InternetAddress 。
onBadCertificate
是不可验证证书的可选处理程序。处理程序接收到 X509Certificate ,并且可以检查它并决定(或让用户决定)是否接受连接。处理程序应返回 true 以继续 SecureSocket 连接。
keyLog
是一个可选回调,当与服务器交换新的 TLS key 时将调用该回调。每次调用keyLog
将在NSS Key Log Format 中接收一行文本。将这些行写入文件将允许工具(例如 Wireshark )解密通过此套接字发送的内容。这意味着允许network-level 调试安全套接字,不应在生产代码中使用。例如:
final log = File('keylog.txt');
final socket = await SecureSocket.connect('www.example.com', 443,
keyLog: (line) => log.writeAsStringSync(line, mode: FileMode.append));
supportedProtocols
是在与服务器进行 ALPN 协议协商期间使用的可选协议列表(按优先级降序排列)。示例值为 "http/1.1" 或 "h2"。可以通过 SecureSocket.selectedProtocol 获得所选协议。
调用此函数将 not
导致 DNS 主机查找。如果传递的host
是String,则生成的SecureSocket 的InternetAddress 将在host
作为其主机值和已连接套接字的互联网地址作为其地址值。
有关参数的更多信息,请参阅connect。
相关用法
- Dart RawSecureSocket.connect用法及代码示例
- Dart RawReceivePort.handler用法及代码示例
- Dart Random用法及代码示例
- Dart Random.nextDouble用法及代码示例
- Dart Random.nextInt用法及代码示例
- Dart Random.nextBool用法及代码示例
- Dart RegExp.pattern用法及代码示例
- Dart RegExp.isCaseSensitive用法及代码示例
- Dart RegExp.allMatches用法及代码示例
- Dart RtcStatsReport.containsKey用法及代码示例
- Dart RtcStatsReport.containsValue用法及代码示例
- Dart RuneIterator.moveNext用法及代码示例
- Dart Runes用法及代码示例
- Dart RtcStatsReport.remove用法及代码示例
- Dart RtcStatsReport.putIfAbsent用法及代码示例
- Dart RtcStatsReport.addAll用法及代码示例
- Dart RegExp.hasMatch用法及代码示例
- Dart Rectangle构造函数用法及代码示例
- Dart RegExp用法及代码示例
- Dart RegExp构造函数用法及代码示例
- Dart RegExp.stringMatch用法及代码示例
- Dart Rectangle.fromPoints用法及代码示例
- Dart RtcStatsReport.clear用法及代码示例
- Dart RegExp.firstMatch用法及代码示例
- Dart RegExpMatch用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 secure method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。