9 #ifndef __SM_CRYPTOTOOL_H__ 10 #define __SM_CRYPTOTOOL_H__ 12 #if (SM_HAL_AB1600_ENABLED) 14 #include "bt_constants.h" 18 #define SM_KEY_ID_LEBR 0 19 #define SM_KEY_ID_TMP1 1 20 #define SM_KEY_ID_BRLE 2 21 #define SM_KEY_ID_TMP2 3 22 #define SM_KEY_ID_MAX 4 24 typedef bool (*SM_Toolbox_cb)(uint8_t *dataPtr, uint8_t idx);
26 void SM_CryptoTool_SendLTKReply(uint16_t connHandle, uint8_t *ltk);
27 void SM_CryptoTool_SendLTKNegativeReply(uint16_t connHandle);
29 #if (SM_MASTER_SUPPORTED) 30 void SM_CryptoTool_StartEncryption(uint16_t connHandle, uint8_t *rand, uint8_t *ediv, uint8_t *ltk);
33 bool ah(uint8_t linkidx, uint8_t *k, uint8_t *r, EncryptionCB cb);
34 bool c1_1(uint8_t linkidx, uint8_t *k, uint8_t *r, uint8_t *p1, EncryptionCB cb);
35 bool c1_2(uint8_t linkidx, uint8_t *k, uint8_t *encData, uint8_t *p2, EncryptionCB cb);
36 bool s1(uint8_t linkidx, uint8_t *k, uint8_t *r1, uint8_t *r2, EncryptionCB cb);
38 #if (SM_SECURE_CONNECTION_SUPPORTED) 39 void SM_CryptoTool_ReadLocalP256PublicKeyComplete(uint8_t *evtPtr);
40 bool SM_CryptoTool_ReadLocalP256PublicKey(uint8_t linkidx, EncryptionCB cb);
41 void SM_CryptoTool_GenerateDHKeyComplete(uint8_t *evtPtr);
42 bool SM_CryptoTool_GenerateDHKey(uint8_t linkidx, uint8_t *pk, EncryptionCB cb);
44 bool f4(uint8_t linkidx,
51 bool f5(uint8_t linkidx,
57 EncryptionCB macKeyCB,
58 EncryptionCB ltkKeyCB);
60 bool f6(uint8_t linkidx,
70 bool g2(uint8_t linkidx,
77 bool h6(uint8_t linkidx,