display passkey handling, added null check to passkey contructor

pull/6188/head
paul-szczepanek-arm 2018-01-17 11:09:54 +00:00
parent 00b1b17e62
commit 1bf0d7b921
1 changed files with 11 additions and 6 deletions

View File

@ -51,7 +51,11 @@ public:
static const uint8_t NUMBER_OFFSET = '0';
PasskeyAsci(uint8_t* passkey) {
memcpy(asci, passkey, SecurityManager::PASSKEY_LEN);
if (passkey) {
memcpy(asci, passkey, SecurityManager::PASSKEY_LEN);
} else {
memset(asci, NUMBER_OFFSET, SecurityManager::PASSKEY_LEN);
}
}
PasskeyAsci() {
memset(asci, NUMBER_OFFSET, SecurityManager::PASSKEY_LEN);
@ -92,6 +96,7 @@ struct SecurityEntry_t {
uint8_t encrypt_data:1;
uint8_t oob_mitm_protection:1;
uint8_t oob:1;
uint8_t secure_connections:1;
};
struct SecurityEntryKeys_t {
@ -183,7 +188,7 @@ public:
bondable = initBondable;
mitm = initMITM;
iocaps = initIocaps;
passkey = PasskeyAsci(initPasskey);
displayPasskey = PasskeyAsci(initPasskey);
legacyPairingAllowed = true;
return BLE_ERROR_NONE;
@ -228,9 +233,9 @@ public:
// Security settings
//
ble_error_t setPasskey(const Passkey_t passkeyASCI, bool isStatic = false) {
// FIXME: ADD API in the pal to set default passkey!
return BLE_ERROR_NOT_IMPLEMENTED;
virtual ble_error_t setDisplayPasskey(const Passkey_t passkey) {
displayPasskey = passkey;
return BLE_ERROR_NONE;
}
ble_error_t setAuthenticationTimeout(connection_handle_t connection,
@ -396,7 +401,7 @@ private:
SecurityDb db;
SecurityIOCapabilities_t iocaps;
PasskeyNum passkey;
PasskeyNum displayPasskey;
bool mitm;
bool bondable;