You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
7.9 KiB
205 lines
7.9 KiB
/******************************************************************************
|
|
*
|
|
* Copyright 1999-2012 Broadcom Corporation
|
|
*
|
|
* 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.
|
|
*
|
|
******************************************************************************/
|
|
|
|
/******************************************************************************
|
|
*
|
|
* This file contains the SMP API function external definitions.
|
|
*
|
|
******************************************************************************/
|
|
#ifndef SMP_API_H
|
|
#define SMP_API_H
|
|
|
|
#include "bt_target.h"
|
|
#include "smp_api_types.h"
|
|
#include "types/bt_transport.h"
|
|
|
|
/*****************************************************************************
|
|
* External Function Declarations
|
|
****************************************************************************/
|
|
/* API of SMP */
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_Init
|
|
*
|
|
* Description This function initializes the SMP unit.
|
|
*
|
|
* Returns void
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_Init(void);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_SetTraceLevel
|
|
*
|
|
* Description This function sets the trace level for SMP. If called with
|
|
* a value of 0xFF, it simply returns the current trace level.
|
|
*
|
|
* Returns The new or current trace level
|
|
*
|
|
******************************************************************************/
|
|
extern uint8_t SMP_SetTraceLevel(uint8_t new_level);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_Register
|
|
*
|
|
* Description This function register for the SMP service callback.
|
|
*
|
|
* Returns void
|
|
*
|
|
******************************************************************************/
|
|
extern bool SMP_Register(tSMP_CALLBACK* p_cback);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_Pair
|
|
*
|
|
* Description This function is called to start a SMP pairing.
|
|
*
|
|
* Returns SMP_STARTED if bond started, else otherwise exception.
|
|
*
|
|
******************************************************************************/
|
|
extern tSMP_STATUS SMP_Pair(const RawAddress& bd_addr);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_BR_PairWith
|
|
*
|
|
* Description This function is called to start a SMP pairing over BR/EDR.
|
|
*
|
|
* Returns SMP_STARTED if pairing started, otherwise the reason for the
|
|
* failure.
|
|
*
|
|
******************************************************************************/
|
|
extern tSMP_STATUS SMP_BR_PairWith(const RawAddress& bd_addr);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_PairCancel
|
|
*
|
|
* Description This function is called to cancel a SMP pairing.
|
|
*
|
|
* Returns true - pairing cancelled
|
|
*
|
|
******************************************************************************/
|
|
extern bool SMP_PairCancel(const RawAddress& bd_addr);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_SecurityGrant
|
|
*
|
|
* Description This function is called to grant security process.
|
|
*
|
|
* Parameters bd_addr - peer device bd address.
|
|
* res - result of the operation SMP_SUCCESS if success.
|
|
* Otherwise, SMP_REPEATED_ATTEMPTS is too many
|
|
* attempts.
|
|
*
|
|
* Returns None
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_SecurityGrant(const RawAddress& bd_addr, tSMP_STATUS res);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_PasskeyReply
|
|
*
|
|
* Description This function is called after Security Manager submitted
|
|
* Passkey request to the application.
|
|
*
|
|
* Parameters: bd_addr - Address of the device for which PIN was requested
|
|
* res - result of the operation SMP_SUCCESS if success
|
|
* passkey - numeric value in the range of
|
|
* BTM_MIN_PASSKEY_VAL(0) -
|
|
* BTM_MAX_PASSKEY_VAL(999999(0xF423F)).
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_PasskeyReply(const RawAddress& bd_addr, uint8_t res,
|
|
uint32_t passkey);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_ConfirmReply
|
|
*
|
|
* Description This function is called after Security Manager submitted
|
|
* numeric comparison request to the application.
|
|
*
|
|
* Parameters: bd_addr - Address of the device with which numeric
|
|
* comparison was requested
|
|
* res - comparison result SMP_SUCCESS if success
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_ConfirmReply(const RawAddress& bd_addr, uint8_t res);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_OobDataReply
|
|
*
|
|
* Description This function is called to provide the OOB data for
|
|
* SMP in response to SMP_OOB_REQ_EVT
|
|
*
|
|
* Parameters: bd_addr - Address of the peer device
|
|
* res - result of the operation SMP_SUCCESS if success
|
|
* p_data - SM Randomizer C.
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_OobDataReply(const RawAddress& bd_addr, tSMP_STATUS res,
|
|
uint8_t len, uint8_t* p_data);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_SecureConnectionOobDataReply
|
|
*
|
|
* Description This function is called to provide the SC OOB data for
|
|
* SMP in response to SMP_SC_OOB_REQ_EVT
|
|
*
|
|
* Parameters: p_data - pointer to the data
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_SecureConnectionOobDataReply(uint8_t* p_data);
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_CrLocScOobData
|
|
*
|
|
* Description This function is called to generate a public key to be
|
|
* passed to a remote device via an Out of Band transport
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_CrLocScOobData();
|
|
|
|
/*******************************************************************************
|
|
*
|
|
* Function SMP_ClearLocScOobData
|
|
*
|
|
* Description This function is called to clear out the OOB stored locally.
|
|
*
|
|
******************************************************************************/
|
|
extern void SMP_ClearLocScOobData();
|
|
|
|
// Called when LTK request is received from controller.
|
|
extern bool smp_proc_ltk_request(const RawAddress& bda);
|
|
|
|
// Called when link is encrypted and notified to peripheral device.
|
|
// Proceed to send LTK, DIV and ER to central if bonding the devices.
|
|
extern void smp_link_encrypted(const RawAddress& bda, uint8_t encr_enable);
|
|
|
|
#endif /* SMP_API_H */
|