Метод secure
Future<SecureSocket> secure(Принимает уже подключенное socket и запускает TLS-рукопожатие со стороны клиента, чтобы обеспечить безопасность связи. Когда возвращаемое будущее завершается, SecureSocket завершает TLS-рукопожатие. Использование этой функции требует, чтобы другой конец подключения был подготовлен к TLS-рукопожатию.
Если у socket уже есть подписка, эта подписка больше не будет получать и обрабатывать события. В большинстве случаев вызов pause для этой подписки перед запуском TLS-рукопожатия является правильным действием.
Переданное socket закрывается и больше не может использоваться.
Если передан аргумент host, он будет использоваться в качестве имени хоста для TLS-рукопожатия. Если host не передан, будет использовано имя хоста из socket. host может быть строкой String или объектом InternetAddress.
Вызов этой функции не приведет к DNS-поиску хоста. Если переданный host является строкой String, InternetAddress для результирующего SecureSocket будет иметь переданное host в качестве значения хоста и адрес интернет-соединения уже подключенного сокета в качестве значения адреса.
См. connect для получения дополнительной информации об аргументах.
Источник
static Future<SecureSocket> secure(Socket socket,
{host,
SecurityContext context,
bool onBadCertificate(X509Certificate certificate)}) {
return ((socket as dynamic /*_Socket*/)._detachRaw() as Future)
.then<RawSecureSocket>((detachedRaw) {
return RawSecureSocket.secure(detachedRaw[0] as RawSocket,
subscription: detachedRaw[1] as StreamSubscription<RawSocketEvent>,
host: host,
context: context,
onBadCertificate: onBadCertificate);
}).then<SecureSocket>((raw) => new SecureSocket._(raw));
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-io/SecureSocket/secure.html