blob: d6f270cf3a40adb26c17aec91db77b185e1287ed [file] [log] [blame]
// Copyright 2020 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.sys;
/// 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;
};
/// Whether or not the device should form a bluetooth bond during the pairing prodecure.
/// As described in Core Spec v5.2 | Vol 3, Part C, Sec 4.3
enum BondableMode {
/// The device will form a bond during pairing with peers
BONDABLE = 1;
/// The device will not form a bond during pairing with peers
NON_BONDABLE = 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 transport is LOW_ENERGY or DUAL_MODE, whether the device should form a bond or not during
/// pairing. If not present, the pairing will default to bondable mode.
///
/// If transport is CLASSIC, this option must be absent or otherwise the value BONDABLE.
/// NON_BONDABLE mode is not currently supported for the CLASSIC transport
// TODO(fxbug.dev/42403): Support NON_BONDABLE for the CLASSIC transport.
2: BondableMode bondable_mode;
/// If transport is LOW_ENERGY, indicate a desire to pair over the LE transport.
/// If transport is CLASSIC, indicate a desire to pair over the Br/Edr transport.
/// If transport is DUAL_MODE, indicate a desire to pair over both transports.
/// If absent, shall be interpreted as DUAL_MODE
3: TechnologyType transport;
};