Spec-Zone.ru › Dart 2

dart:io

статический метод connect

Future<RawSecureSocket> connect(
  1. dynamic host,
  2. int port,
  3. {SecurityContext? context,
  4. bool onBadCertificate(
    1. X509Certificate certificate
    )?,
  5. void keyLog(
    1. String line
    )?,
  6. List<String>? supportedProtocols,
  7. Duration? timeout}
)
override

Создает новый защищенный клиентский сокет и подключает его к указанному узлу через указанный порт.

Возвращенный Future завершается значением RawSecureSocket, когда сокет подключен и готов к подписке.

Сертификат, предоставленный сервером, проверяется с использованием доверенных сертификатов, заданных в объекте SecurityContext. Если на клиенте установлен сертификат и ключ с помощью SecurityContext.useCertificateChain и SecurityContext.usePrivateKey, и сервер запрашивает сертификат клиента, этот сертификат отправляется серверу.

onBadCertificate — необязательный обработчик непроверяемых сертификатов. Обработчик получает X509Certificate, может проверить его и решить (или предоставить пользователю возможность решить), принимать ли соединение. Для продолжения соединения RawSecureSocket обработчик должен вернуть true.

onBadCertificate — необязательный обработчик непроверяемых сертификатов. Обработчик получает X509Certificate, может проверить его и решить (или предоставить пользователю возможность решить), принимать ли соединение. Для продолжения соединения SecureSocket обработчик должен вернуть true.

keyLog — необязательный обратный вызов, который вызывается при обмене новыми ключами TLS с сервером. При каждом вызове keyLog получает одну строку в формате журнала ключей NSS. Запись этих строк в файл позволит инструментам (например, Wireshark) расшифровывать данные, передаваемые через этот сокет. Это предназначено для отладки защищенных сокетов на сетевом уровне и не должно использоваться в рабочем коде. Например:

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". Выбранный протокол можно получить с помощью RawSecureSocket.selectedProtocol.

Реализация

static Future<RawSecureSocket> connect(host, int port,
    {SecurityContext? context,
    bool onBadCertificate(X509Certificate certificate)?,
    void keyLog(String line)?,
    List<String>? supportedProtocols,
    Duration? timeout}) {
  _RawSecureSocket._verifyFields(host, port, false, false);
  return RawSocket.connect(host, port, timeout: timeout).then((socket) {
    return secure(socket,
        context: context,
        onBadCertificate: onBadCertificate,
        keyLog: keyLog,
        supportedProtocols: supportedProtocols);
  });
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/RawSecureSocket/connect.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API