acoid creattion of passkey object to do the conversion

pull/6188/head
paul-szczepanek-arm 2018-01-17 12:38:35 +00:00
parent 1a7e3faa18
commit 8197f09bd5
1 changed files with 9 additions and 5 deletions

View File

@ -62,7 +62,7 @@ public:
memset(asci, NUMBER_OFFSET, SecurityManager::PASSKEY_LEN); memset(asci, NUMBER_OFFSET, SecurityManager::PASSKEY_LEN);
} }
PasskeyAsci(const PasskeyNum& passkey) { PasskeyAsci(const PasskeyNum& passkey) {
for (int i = 5, m = 100000; i >= 0; --i, m /= 10) { for (size_t i = 5, m = 100000; i >= 0; --i, m /= 10) {
uint32_t result = passkey.number / m; uint32_t result = passkey.number / m;
asci[i] = NUMBER_OFFSET + result; asci[i] = NUMBER_OFFSET + result;
passkey.number -= result; passkey.number -= result;
@ -71,14 +71,18 @@ public:
operator PasskeyNum() { operator PasskeyNum() {
return PasskeyNum(get_number()); return PasskeyNum(get_number());
} }
uint32_t get_number() {
static uint32_t to_num(const uint8_t* asci) {
uint32_t passkey = 0; uint32_t passkey = 0;
for (int i = 0, m = 1; i < SecurityManager::PASSKEY_LEN; ++i, m *= 10) { for (size_t i = 0, m = 1; i < SecurityManager::PASSKEY_LEN; ++i, m *= 10) {
passkey += (asci[i] - NUMBER_OFFSET) * m; passkey += (asci[i] - NUMBER_OFFSET) * m;
} }
return passkey; return passkey;
} }
private: private:
uint32_t get_number() {
return to_num(asci);
}
uint8_t asci[SecurityManager::PASSKEY_LEN]; uint8_t asci[SecurityManager::PASSKEY_LEN];
}; };
@ -385,7 +389,7 @@ public:
Passkey_t passkey) { Passkey_t passkey) {
return pal.passkey_request_reply( return pal.passkey_request_reply(
connection, connection,
PasskeyAsci(passkey).get_number() PasskeyAsci::to_num(passkey)
); );
} }
@ -406,7 +410,7 @@ public:
} }
protected: protected:
GenericSecurityManager(ble::pal::SecurityManager& palImpl) : pal(palImpl), saveStateEnabled(false) { GenericSecurityManager(ble::pal::SecurityManager& palImpl) : pal(palImpl) {
_app_event_handler = &defaultEventHandler; _app_event_handler = &defaultEventHandler;
pal.set_event_handler(this); pal.set_event_handler(this);
} }