chromium/services/network/public/mojom/tls_socket.mojom

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module network.mojom;

import "services/network/public/mojom/ip_endpoint.mojom";
import "services/network/public/mojom/ssl_config.mojom";

// Represents a connected TLS client socket. Writes and Reads are through the
// data pipes supplied upon construction. Consumer should use SocketObserver
// interface to get notified about any error occurred during reading or writing
// to data pipes. Consumer can close the socket by destroying the interface
// pointer.
interface TLSClientSocket {
};

// Represents the options that consumers can specify when requesting a
// TLSClientSocket.
struct TLSClientSocketOptions {
  SSLVersion version_min = kTLS12;
  SSLVersion version_max = kTLS13;

  // If true, the SSLInfo will be returned in the UpgradeToTLS callback on
  // success.
  bool send_ssl_info = false;

  // If true, the SSLInfo will also be returned in the UpgradeToTLS callback.
  bool unsafely_skip_cert_verification = false;
};