ble_sec.h File Reference

BLE SEC API. More...

#include "ble_error.h"
#include <stdbool.h>
+ Include dependency graph for ble_sec.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ble_sec_param_t
 SEC Parameter. More...
 
struct  ble_sec_tk_t
 TK value. More...
 
struct  ble_sec_oob_t
 SEC OOB value. More...
 
union  ble_sec_cfm_enc_data_t
 SEC Confirm encryption data. More...
 
struct  ble_sec_cfm_enc_t
 SEC Confirm encryption. More...
 
struct  ble_sec_nc_t
 SEC number comparison value. More...
 
union  ble_sec_enc_req_data_t
 SEC encryption request data. More...
 
struct  ble_sec_evt_enc_req_t
 Link Encrypte Request event for BLE_SEC_EVT_LINK_ENC_REQUEST. More...
 
struct  ble_sec_evt_enc_ind_t
 Link Encrypted event for BLE_SEC_EVT_LINK_ENCRYPTED. More...
 
struct  ble_sec_evt_keypress_notify_t
 Key Press Notify event for BLE_SEC_EVT_KEY_PRESS_NTF. More...
 
struct  ble_sec_evt_key_missing_t
 Key Missing event for BLE_SEC_EVT_KEY_MISSING. More...
 
struct  ble_sec_evt_t
 BLE Security event structure. More...
 

Macros

#define BLE_SEC_AUTH_NONE   0
 No auth requirement. More...
 
#define BLE_SEC_AUTH_BOND   (1 << 0)
 Bond flag. More...
 
#define BLE_SEC_AUTH_MITM   (1 << 2)
 MITM flag. More...
 
#define BLE_SEC_AUTH_SEC_CON   (1 << 3)
 Security connection flag. More...
 
#define BLE_SEC_AUTH_KEY_PRESS_NOTIFY   (1 << 4)
 Key press notify flag. More...
 
#define BLE_SEC_AUTH_ALL   (AUTH_BOND | AUTH_MITM | AUTH_SEC_CON | AUTH_KEY_PRESS_NOTIFY)
 All authentication flags are on. More...
 
#define BLE_SEC_KDIST_NONE   0
 No key needs to be distributed. More...
 
#define BLE_SEC_KDIST_ENCKEY   (1 << 0)
 Distribute encryption and master identification info. More...
 
#define BLE_SEC_KDIST_IDKEY   (1 << 1)
 Distribute identity and address info. More...
 
#define BLE_SEC_KDIST_SIGNKEY   (1 << 2)
 Distribute signing info. More...
 
#define BLE_SEC_KDIST_LINKKEY   (1 << 3)
 Distribute link key info. More...
 
#define BLE_SEC_KDIST_ALL   (BLE_SEC_KDIST_ENCKEY | BLE_SEC_KDIST_IDKEY | BLE_SEC_KDIST_SIGNKEY )
 Distribute all info. More...
 
#define BLE_BT_SEC_KDIST_ALL   (BLE_SEC_KDIST_ENCKEY | BLE_SEC_KDIST_IDKEY | BLE_SEC_KDIST_SIGNKEY | BLE_SEC_KDIST_LINKKEY)
 Distribute all info inlcude link key. More...
 

Enumerations

enum  ble_sec_io_cap_t {
  BLE_SEC_IO_DISPLAY_ONLY = 0x00, BLE_SEC_IO_DISPLAY_YES_NO = 0x01, BLE_SEC_IO_KEYBOARD_ONLY = 0x02, BLE_SEC_IO_NO_INPUT_NO_OUTPUT = 0x03,
  BLE_SEC_IO_KEYBOARD_DISPLAY = 0x04
}
 SEC IO Capability. More...
 
enum  ble_sec_enc_req_type_t { BLE_SEC_PAIR_REQ, BLE_SEC_TK_REQ, BLE_SEC_OOB_REQ, BLE_SEC_NC_REQ }
 SEC Encryption Request Type. More...
 
enum  ble_sec_keypress_notify_t {
  BLE_SEC_KEY_PRESS_STARTED = 0x00, BLE_SEC_KEY_PRESS_ENTERED = 0x01, BLE_SEC_KEY_PRESS_ERASED = 0x02, BLE_SEC_KEY_PRESS_CLEARED = 0x03,
  BLE_SEC_KEY_PRESS_COMPLETED = 0x04
}
 SEC Key Press Notify. More...
 
enum  ble_sec_mode_level_t {
  BLE_SEC_MODE1_LEVEL1 = 0x00, BLE_SEC_MODE1_LEVEL2 = 0x01, BLE_SEC_MODE1_LEVEL3 = 0x02, BLE_SEC_MODE1_LEVEL4 = 0x03,
  BLE_SEC_MODE2_LEVEL1 = 0x04, BLE_SEC_MODE2_LEVEL2 = 0x05
}
 SEC mode and level. More...
 
enum  ble_sec_tk_type_t { BLE_SEC_TK_OOB = 0x00, BLE_SEC_TK_DISPLAY, BLE_SEC_TK_KEY_ENTRY }
 SEC TK type. More...
 
enum  ble_sec_key_missing_reason_t { BLE_SEC_BOND_INFO_LOAD_FAILED = 0x00, BLE_SEC_LTK_VALID_MASK_ERR, BLE_SEC_EDIV_RAND_VALUE_ERR }
 Key missing reason. More...
 

Functions

uint16_t ble_sec_params_set (ble_sec_param_t *p_sec_param)
 Set security parameter. More...
 
uint16_t ble_sec_enc_start (uint8_t conn_idx)
 Start security encryption, this interface is used by both slave and master. More...
 
uint16_t ble_sec_enc_cfm (uint8_t conn_idx, const ble_sec_cfm_enc_t *p_cfm_enc)
 Send the encrypt confirm information. More...
 
uint16_t ble_sec_keypress_notify_send (uint8_t conn_idx, uint8_t notify_type)
 Send key press notify. More...
 

Detailed Description

BLE SEC API.

Attention
Copyright (c) 2019 GOODIX

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of GOODIX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file ble_sec.h.