My Project
 All Classes Functions Variables Pages
BLESecurity.h
1 /*
2  * BLESecurity.h
3  *
4  * Created on: Dec 17, 2017
5  * Author: chegewara
6  */
7 
8 #ifndef COMPONENTS_CPP_UTILS_BLESECURITY_H_
9 #define COMPONENTS_CPP_UTILS_BLESECURITY_H_
10 #include "sdkconfig.h"
11 #if defined(CONFIG_BT_ENABLED)
12 
13 #include <esp_gap_ble_api.h>
14 
15 class BLESecurity {
16 public:
17  BLESecurity();
18  virtual ~BLESecurity();
19  void setAuthenticationMode(esp_ble_auth_req_t auth_req);
20  void setCapability(esp_ble_io_cap_t iocap);
21  void setInitEncryptionKey(uint8_t init_key);
22  void setRespEncryptionKey(uint8_t resp_key);
23  void setKeySize(uint8_t key_size = 16);
24  static char* esp_key_type_to_str(esp_ble_key_type_t key_type);
25 
26 private:
27  esp_ble_auth_req_t m_authReq;
28  esp_ble_io_cap_t m_iocap;
29  uint8_t m_initKey;
30  uint8_t m_respKey;
31  uint8_t m_keySize;
32 
33 }; // BLESecurity
34 
35 
36 /*
37  * @brief Callbacks to handle GAP events related to authorization
38  */
39 class BLESecurityCallbacks {
40 public:
41  virtual ~BLESecurityCallbacks() {};
42 
48  virtual uint32_t onPassKeyRequest() = 0;
49 
55  virtual void onPassKeyNotify(uint32_t pass_key) = 0;
56 
62  virtual bool onSecurityRequest() = 0 ;
66  virtual void onAuthenticationComplete(esp_ble_auth_cmpl_t) = 0;
67 
68  virtual bool onConfirmPIN(uint32_t pin) = 0;
69 }; // BLESecurityCallbacks
70 
71 #endif // CONFIG_BT_ENABLED
72 #endif // COMPONENTS_CPP_UTILS_BLESECURITY_H_