blob: ba45032325e2b21a2d3522a5927ca824dc64cec9 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.bluetooth.control;
/// The security level required for this pairing - corresponds to the security
/// levels defined in the Security Manager Protocol in Vol 3, Part H, Section 2.3.1
enum PairingSecurityLevel {
/// Encrypted without MITM protection (unauthenticated)
ENCRYPTED = 1;
/// Encrypted with MITM protection (authenticated), although this level of security does not
/// fully protect against passive eavesdroppers
AUTHENTICATED = 2;
};
/// Parameters that give a caller more fine-grained control over the pairing process. All of the
/// fields of this table are optional and pairing can still succeed if none of them are set.
table PairingOptions {
/// Only relevant for LE. If present, determines the Security Manager security level to pair
/// with. If not present, defaults to PairingSecurityLevel.AUTHENTICATED.
1: PairingSecurityLevel le_security_level;
/// If not present or false, the pairing will default to bondable mode. Otherwise, setting this
/// parameter to true will initiate a non-bondable pairing.
///
/// TODO(fxb/42403): Only implemented for LE transport. Support this for BR/EDR.
2: bool non_bondable;
/// If transport is LOW_ENERGY or CLASSIC, pairing will be performed over the transport
/// corresponding to the specified technology, which must already be connected. If transport
/// is not present or DUAL_MODE, the pairing will be performed over whichever transport is
/// connected, and defaults to LE for dual-mode connections.
3: TechnologyType transport;
};