blob: 09bcd74327bd6a45ea97916f123390ea30feb1fe [file] [log] [blame]
/*
* Copyright 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#pragma once
#include <cstdint>
#include "stack/include/bt_dev_class.h"
#include "stack/include/bt_name.h"
#include "stack/include/bt_octets.h"
#include "stack/include/btm_api_types.h"
#include "stack/include/btm_status.h"
#include "types/raw_address.h"
/*****************************************************************************
* SECURITY MANAGEMENT FUNCTIONS
****************************************************************************/
/*******************************************************************************
*
* Function BTM_SecAddDevice
*
* Description Add/modify device. This function will be normally called
* during host startup to restore all required information
* stored in the NVRAM.
* dev_class, bd_name, link_key, and features are NULL if
* unknown
*
* Returns true if added OK, else false
*
******************************************************************************/
bool BTM_SecAddDevice(const RawAddress& bd_addr, DEV_CLASS dev_class,
const BD_NAME& bd_name, uint8_t* features,
LinkKey* link_key, uint8_t key_type, uint8_t pin_length);
/** Free resources associated with the device associated with |bd_addr| address.
*
* *** WARNING ***
* tBTM_SEC_DEV_REC associated with bd_addr becomes invalid after this function
* is called, also any of its fields. i.e. if you use p_dev_rec->bd_addr, it is
* no longer valid!
* *** WARNING ***
*
* Returns true if removed OK, false if not found or ACL link is active.
*/
bool BTM_SecDeleteDevice(const RawAddress& bd_addr);
/*******************************************************************************
*
* Function BTM_SecClearSecurityFlags
*
* Description Reset the security flags (mark as not-paired) for a given
* remove device.
*
******************************************************************************/
void BTM_SecClearSecurityFlags(const RawAddress& bd_addr);
/*******************************************************************************
*
* Function btm_sec_is_a_bonded_dev
*
* Description Is the specified device is a bonded device
*
* Returns true - dev is bonded
*
******************************************************************************/
bool btm_sec_is_a_bonded_dev(const RawAddress& bda);
/*******************************************************************************
*
* Function BTM_DeleteStoredLinkKey
*
* Description This function is called to delete link key for the specified
* device addresses from the NVRAM storage attached to the
* Bluetooth controller.
*
* Parameters: bd_addr - Addresses of the devices
* p_cb - Call back function to be called to return
* the results
*
******************************************************************************/
tBTM_STATUS BTM_DeleteStoredLinkKey(const RawAddress* bd_addr,
tBTM_CMPL_CB* p_cb);
/*******************************************************************************
*
* Function BTM_BleSirkConfirmDeviceReply
*
* Description This procedure confirms requested to validate set device.
*
* Parameter bd_addr - BD address of the peer
* res - confirmation result BTM_SUCCESS if success
*
* Returns void
*
******************************************************************************/
void BTM_BleSirkConfirmDeviceReply(const RawAddress& bd_addr, uint8_t res);
uint8_t btm_ble_read_sec_key_size(const RawAddress& bd_addr);