// Copyright 2018 The Chromium Authors. All rights reserved.
// 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 = kTLS1;
  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;
};
