TI BLE5-Stack API Documentation  2.01.00.00
gapbondmgr.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  Group: WCS, BTS
4  $Target Device: DEVICES $
5 
6  ******************************************************************************
7  $License: BSD3 2010 $
8  ******************************************************************************
9  $Release Name: PACKAGE NAME $
10  $Release Date: PACKAGE RELEASE DATE $
11  *****************************************************************************/
12 
21 #ifndef GAPBONDMGR_H
22 #define GAPBONDMGR_H
23 
24 #ifdef __cplusplus
25 extern "C"
26 {
27 #endif
28 
29 /*-------------------------------------------------------------------
30  * INCLUDES
31  */
32 #include "gap.h"
33 
34 /*-------------------------------------------------------------------
35  * CONSTANTS
36  */
37 
43 // This is a common file for the legacy and sysconfig examples,
44 // the parameters under ifndef SYSCFG are defined in this file for
45 // the legacy examples and generated using the sysconfig tool for
46 // the sysconfig examples
47 #ifndef SYSCFG
48 #if !defined ( GAP_BONDINGS_MAX )
49 #define GAP_BONDINGS_MAX 10
51 #endif
52 
53 #if !defined ( GAP_CHAR_CFG_MAX )
54 #define GAP_CHAR_CFG_MAX 4
56 #endif
57 #endif //SYSCFG
58 
78 #define GAPBOND_PAIRING_MODE 0x400
79 
89 #define GAPBOND_MITM_PROTECTION 0x402
90 
100 #define GAPBOND_IO_CAPABILITIES 0x403
101 
111 #define GAPBOND_OOB_ENABLED 0x404
112 
123 #define GAPBOND_OOB_DATA 0x405
124 
134 #define GAPBOND_BONDING_ENABLED 0x406
135 
148 #define GAPBOND_KEY_DIST_LIST 0x407
149 
155 #define GAPBOND_ERASE_ALLBONDS 0x409
156 
158 #define GAPBOND_AUTO_FAIL_PAIRING 0x40A
159 #define GAPBOND_AUTO_FAIL_REASON 0x40B
160 
171 #define GAPBOND_KEYSIZE 0x40C
172 
186 #define GAPBOND_AUTO_SYNC_WL 0x40D
187 
195 #define GAPBOND_BOND_COUNT 0x40E
196 
207 #define GAPBOND_BOND_FAIL_ACTION 0x40F
208 
218 #define GAPBOND_ERASE_SINGLEBOND 0x410
219 
233 #define GAPBOND_SECURE_CONNECTION 0x411
234 
253 #define GAPBOND_ECCKEY_REGEN_POLICY 0x412
254 
276 #define GAPBOND_ECC_KEYS 0x413
277 
287 #define GAPBOND_SC_HOST_DEBUG 0x414
288 
302 #define GAPBOND_LRU_BOND_REPLACEMENT 0x418
303 
312 #define GAPBOND_ERASE_LOCAL_INFO 0x41A
313 
324 #define GAPBOND_PAIRING_MODE_NO_PAIRING 0x00
326 #define GAPBOND_PAIRING_MODE_WAIT_FOR_REQ 0x01
328 #define GAPBOND_PAIRING_MODE_INITIATE 0x02
330 
336 #define GAPBOND_IO_CAP_DISPLAY_ONLY 0x00
338 #define GAPBOND_IO_CAP_DISPLAY_YES_NO 0x01
340 #define GAPBOND_IO_CAP_KEYBOARD_ONLY 0x02
342 #define GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT 0x03
344 #define GAPBOND_IO_CAP_KEYBOARD_DISPLAY 0x04
346 
352 #define GAPBOND_KEYDIST_SENCKEY 0x01
354 #define GAPBOND_KEYDIST_SIDKEY 0x02
356 #define GAPBOND_KEYDIST_SSIGN 0x04
358 #define GAPBOND_KEYDIST_SLINK 0x08
360 #define GAPBOND_KEYDIST_MENCKEY 0x10
362 #define GAPBOND_KEYDIST_MIDKEY 0x20
364 #define GAPBOND_KEYDIST_MSIGN 0x40
366 #define GAPBOND_KEYDIST_MLINK 0x80
368 
387 #define GAPBOND_PAIRING_STATE_STARTED 0x00
388 
408 #define GAPBOND_PAIRING_STATE_COMPLETE 0x01
409 
427 #define GAPBOND_PAIRING_STATE_ENCRYPTED 0x02
428 #define GAPBOND_PAIRING_STATE_BOND_SAVED 0x03
430 #define GAPBOND_PAIRING_STATE_CAR_READ 0x04
432 #define GAPBOND_PAIRING_STATE_RPAO_READ 0x05
434 #define GAPBOND_GENERATE_ECC_DONE 0x06
436 
451 #define SMP_PAIRING_FAILED_PASSKEY_ENTRY_FAILED 0x01
452 #define SMP_PAIRING_FAILED_OOB_NOT_AVAIL 0x02
454 
458 #define SMP_PAIRING_FAILED_AUTH_REQ 0x03
459 #define SMP_PAIRING_FAILED_CONFIRM_VALUE 0x04
461 #define SMP_PAIRING_FAILED_NOT_SUPPORTED 0x05
463 
467 #define SMP_PAIRING_FAILED_ENC_KEY_SIZE 0x06
468 #define SMP_PAIRING_FAILED_CMD_NOT_SUPPORTED 0x07
470 #define SMP_PAIRING_FAILED_UNSPECIFIED 0x08
472 
476 #define SMP_PAIRING_FAILED_REPEATED_ATTEMPTS 0x09
477 
481 #define SMP_PAIRING_FAILED_INVALID_PARAMETERS 0x0A
482 
486 #define SMP_PAIRING_FAILED_DHKEY_CHECK_FAILED 0x0B
487 
491 #define SMP_PAIRING_FAILED_NUM_COMPARISON_FAILED 0x0C
492 
498 #define GAPBOND_FAIL_NO_ACTION 0x00
500 #define GAPBOND_FAIL_INITIATE_PAIRING 0x01
502 #define GAPBOND_FAIL_TERMINATE_LINK 0x02
504 
508 #define GAPBOND_FAIL_TERMINATE_ERASE_BONDS 0x03
509 
515 #define GAPBOND_SECURE_CONNECTION_NONE 0x00
517 #define GAPBOND_SECURE_CONNECTION_ALLOW 0x01
519 #define GAPBOND_SECURE_CONNECTION_ONLY 0x02
521 
531 #define GAPBOND_REGENERATE_ALWAYS 0x00
533 #define GAPBOND_REGENERATE_NEVER 0xFF
535 
537 #define ECC_KEYLEN 32
539 
542 /*-------------------------------------------------------------------
543  * TYPEDEFS
544  */
545 
569 typedef void (*pfnPasscodeCB_t)
570 (
571  uint8_t *deviceAddr,
572  uint16_t connectionHandle,
573  uint8_t uiInputs,
574  uint8_t uiOutputs,
575  uint32_t numComparison
576 );
577 
589 typedef void (*pfnPairStateCB_t)
590 (
591  uint16_t connectionHandle,
592  uint8_t state,
593  uint8_t status
594 );
595 
602 typedef struct
603 {
606 } gapBondCBs_t;
607 
615 typedef struct
617 {
618  uint8_t privateKey[ECC_KEYLEN];
619  uint8_t publicKeyX[ECC_KEYLEN];
620  uint8_t publicKeyY[ECC_KEYLEN];
622 
623 //structure of OOB data
624 typedef struct gapBondOOBData
625 {
626  uint8 confirm[KEYLEN]; //calculated/received confirm value
627  uint8 rand[KEYLEN]; //calculated/received random number
628 } gapBondOOBData_t;
629 
631 /*-------------------------------------------------------------------
632  * API's
633  */
634 
640 extern void GAPBondMgr_Register(gapBondCBs_t *pCB);
641 
658 extern bStatus_t GAPBondMgr_SetParameter(uint16_t param, uint8_t len,
659  void *pValue);
660 
675 extern bStatus_t GAPBondMgr_GetParameter(uint16_t param, void *pValue);
676 
695 extern bStatus_t GAPBondMgr_Pair(uint16_t connHandle);
696 
725 extern bStatus_t GAPBondMgr_FindAddr(uint8_t *pDevAddr,
726  GAP_Peer_Addr_Types_t addrType,
727  uint8_t *pIdx,
728  GAP_Peer_Addr_Types_t *pIdentityAddrType,
729  uint8_t *pIdentityAddr);
730 
743 extern bStatus_t GAPBondMgr_ServiceChangeInd(uint16_t connectionHandle,
744  uint8_t setParam);
745 
760 extern bStatus_t GAPBondMgr_PasscodeRsp(uint16_t connectionHandle,
761  uint8_t status, uint32_t passcode);
762 
773 extern bStatus_t GAPBondMgr_SCGetLocalOOBParameters(gapBondOOBData_t *localOobData);
774 
787 extern bStatus_t GAPBondMgr_SCSetRemoteOOBParameters(gapBondOOBData_t *remoteOobData,
788  uint8 OOBDataFlag);
789 
790 /*********************************************************************
791  * @fn GAPBondMgr_GenerateEccKeys
792  *
793  * @brief Generates ECC keys.
794  *
795  * @return SUCCESS - if processing.
796  * FAILURE - if SM is pairing
797  */
798 extern bStatus_t GAPBondMgr_GenerateEccKeys( void );
799 
800 /*-------------------------------------------------------------------
801 -------------------------------------------------------------------*/
802 #ifdef __cplusplus
803 }
804 #endif
805 
806 #endif /* GAPBONDMGR_H */
807 
GAP_Peer_Addr_Types_t
Address types used for specifying peer address type.
Definition: gap.h:591
Public and Private ECC Keys.
Definition: gapbondmgr.h:616
bStatus_t GAPBondMgr_Pair(uint16_t connHandle)
bStatus_t GAPBondMgr_GetParameter(uint16_t param, void *pValue)
bStatus_t GAPBondMgr_PasscodeRsp(uint16_t connectionHandle, uint8_t status, uint32_t passcode)
void(* pfnPairStateCB_t)(uint16_t connectionHandle, uint8_t state, uint8_t status)
Definition: gapbondmgr.h:590
pfnPasscodeCB_t passcodeCB
Passcode callback.
Definition: gapbondmgr.h:604
bStatus_t GAPBondMgr_FindAddr(uint8_t *pDevAddr, GAP_Peer_Addr_Types_t addrType, uint8_t *pIdx, GAP_Peer_Addr_Types_t *pIdentityAddrType, uint8_t *pIdentityAddr)
Search for an address in the bonding table. If the address is a random private resolvable address...
void GAPBondMgr_Register(gapBondCBs_t *pCB)
Definition: gapbondmgr.h:602
void(* pfnPasscodeCB_t)(uint8_t *deviceAddr, uint16_t connectionHandle, uint8_t uiInputs, uint8_t uiOutputs, uint32_t numComparison)
Definition: gapbondmgr.h:570
uint32_t len
Image length in bytes.
Definition: oad_image_header.h:602
GAP layer interface.
bStatus_t GAPBondMgr_ServiceChangeInd(uint16_t connectionHandle, uint8_t setParam)
bStatus_t GAPBondMgr_SetParameter(uint16_t param, uint8_t len, void *pValue)
Status_t bStatus_t
BLE Generic Status return.
Definition: bcomdef.h:246
#define ECC_KEYLEN
ECC Key Length: 256 bit keys.
Definition: gapbondmgr.h:538
#define KEYLEN
Default key length.
Definition: bcomdef.h:111
pfnPairStateCB_t pairStateCB
Pairing state callback.
Definition: gapbondmgr.h:605
© Copyright 1995-2019, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale