blob: c4b45a3a732e6eec2318b0c981d878c46f1ed85d [file] [log] [blame]
// Copyright 2017 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.
// The networking.castPrivate API is a private API that exposes networking
// utilities needed by cast extension and setup app.
[nodoc] namespace networking.castPrivate {
enum TDLSStatus {
// TDLS is connected.
CONNECTED,
// TDLS is not supported.
NONEXISTENT,
// TDLS is supported, but disabled.
DISABLED,
// TDLS is enabled, but not connected
DISCONNECTED,
// TDLS status is not yet determined.
UNKNOWN
};
dictionary VerificationProperties {
// A string containing a PEM-encoded (including the 'BEGIN CERTIFICATE'
// header and 'END CERTIFICATE' footer) X.509 certificate for use in
// verifying the signed data.
DOMString certificate;
// An array of PEM-encoded X.509 intermediate certificate authority
// certificates. Each PEM-encoded certificate is expected to have the
// 'BEGIN CERTIFICATE' header and 'END CERTIFICATE' footer.
DOMString[]? intermediateCertificates;
// A string containing a base64-encoded RSAPublicKey ASN.1 structure,
// representing the public key to be used by
// $(ref:verifyAndEncryptCredentials) and $(ref:verifyAndEncryptData)
// methods.
DOMString publicKey;
// A string containing a base64-encoded random binary data for use in
// verifying the signed data.
DOMString nonce;
// A string containing the identifying data string signed by the device.
DOMString signedData;
// A string containing the serial number of the device.
DOMString deviceSerial;
// A string containing the SSID of the device. Should be empty for new
// configurations.
DOMString deviceSsid;
// A string containing the BSSID of the device. Should be empty for new
// configurations.
DOMString deviceBssid;
};
callback BooleanCallback = void(boolean result);
callback StringCallback = void(DOMString result);
callback TDLSStatusCallback = void(TDLSStatus status);
interface Functions {
// Verifies that the device is a trusted device.
// |properties|: Properties of the destination to use in verifying that it
// is a trusted device.
// |callback|: A callback function that indicates whether or not the device
// is a trusted device.
static void verifyDestination(VerificationProperties properties,
BooleanCallback callback);
// Verifies that the device is a trusted device and encrypts supplied
// data with device public key.
// |properties|: Properties of the destination to use in verifying that it
// is a trusted device.
// |data|: A string containing the base64-encoded data to encrypt.
// |callback|: A callback function that receives base64-encoded encrypted
// data to send to a trusted device.
static void verifyAndEncryptData(VerificationProperties properties,
DOMString data,
StringCallback callback);
// Enables TDLS for WiFi traffic with a specified peer if available.
// |ip_or_mac_address|: The IP or MAC address of the peer with which to
// enable a TDLS connection.
// |enabled|: If true, enable TDLS, otherwise disable TDLS.
// |callback|: A callback function that receives a string with an error or
// the current TDLS status.
static void setWifiTDLSEnabledState(DOMString ip_or_mac_address,
boolean enabled,
optional TDLSStatusCallback callback);
// Returns the current TDLS status for the specified peer.
// |ip_or_mac_address|: The IP or MAC address of the peer.
// |callback|: A callback function that receives a string with the current
// TDLS status.
static void getWifiTDLSStatus(DOMString ip_or_mac_address,
TDLSStatusCallback callback);
};
};