enabling signing

pull/6188/head
paul-szczepanek-arm 2018-01-22 14:54:17 +00:00
parent 1208dc7c34
commit 2ae05ea6aa
1 changed files with 20 additions and 1 deletions

View File

@ -176,7 +176,7 @@ public:
/* local csrk */
virtual const csrk_t& get_local_csrk();
virtual const csrk_t* get_local_csrk();
virtual void set_local_csrk(
const csrk_t csrk
);
@ -228,6 +228,9 @@ public:
authentication.set_keypress_notification(true);
key_distribution.set_signing(signing);
if (signing) {
initSigning();
}
return BLE_ERROR_NONE;
}
@ -244,6 +247,19 @@ public:
return BLE_ERROR_NONE;
}
virtual ble_error_t initSigning() {
/* TODO: store init bit to avoid rerunning needlessly*/
csrk_t* pcsrk = db.get_local_csrk();
if (!pcsrk) {
csrk_t csrk;
/* TODO: generate csrk */
pcsrk = &csrk;
db.set_local_csrk(*pcsrk);
}
pal.set_csrk(*pcsrk);
return BLE_ERROR_NONE;
}
////////////////////////////////////////////////////////////////////////////
// List management
//
@ -387,8 +403,11 @@ public:
}
if (!entry->signing_key && enabled) {
initSigning();
KeyDistribution distribution = key_distribution;
distribution.set_signing(enabled);
return pal.send_pairing_request(
connection,
entry->oob,