saving public keys

pull/6188/head
paul-szczepanek-arm 2018-02-08 16:36:06 +00:00
parent 0b15798673
commit cba77ad5d1
3 changed files with 37 additions and 21 deletions

View File

@ -331,17 +331,26 @@ public:
/**
* Return local public key.
*
* @return pointer to x and y component of public key
* @return ref to x component of public key
*/
virtual const public_key_pair_t* get_public_key() = 0;
virtual const public_key_t& get_public_key_x() = 0;
/**
* Return local public key.
*
* @return ref to y component of public key
*/
virtual const public_key_t& get_public_key_y() = 0;
/**
* Set local public key.
*
* @param[in] public_key new public key value
* @param[in] public_key_x new public key value of the x coordinate
* @param[in] public_key_y new public key value of the y coordinate
*/
virtual void set_public_key(
const public_key_pair_t* public_key
const public_key_t& public_key_x,
const public_key_t& public_key_y
) = 0;
/* list management */
@ -676,14 +685,20 @@ public:
/* public key */
virtual const public_key_pair_t* get_public_key() {
return &_public_key;
virtual const public_key_t& get_public_key_x() {
return _public_key_x;
}
virtual const public_key_t& get_public_key_y() {
return _public_key_y;
}
virtual void set_public_key(
const public_key_pair_t* public_key
const public_key_t& public_key_x,
const public_key_t& public_key_y
) {
_public_key = *public_key;
_public_key_x = public_key_x;
_public_key_y = public_key_y;
}
/* list management */
@ -787,7 +802,8 @@ private:
SecurityEntryIdentity_t _identities[MAX_ENTRIES];
SecurityEntryIdentity_t _local_identity;
csrk_t _local_csrk;
public_key_pair_t _public_key;
public_key_t _public_key_x;
public_key_t _public_key_y;
};
} /* namespace generic */

View File

@ -362,17 +362,6 @@ public:
connection_handle_t connection
) = 0;
/**
* Provide the local public key.
*
* @param[in] public_key_x newly generated public key (x coordinate)
* @param[in] public_key_y newly generated public key (y coordinate)
*/
virtual void on_public_key_generated(
const public_key_t &public_key_x,
const public_key_t &public_key_y
) = 0;
/**
* Request OOB data to be verified against received public keys.
*
@ -389,6 +378,17 @@ public:
// Keys
//
/**
* Provide the local public key.
*
* @param[in] public_key_x newly generated public key (x coordinate)
* @param[in] public_key_y newly generated public key (y coordinate)
*/
virtual void on_public_key_generated(
const public_key_t &public_key_x,
const public_key_t &public_key_y
) = 0;
/**
* Store the results of key generation of the stage 2 of secure connections pairing
* @see BLUETOOTH SPECIFICATION Version 5.0 | Vol 3, Part H - 2.3.5.6.5

View File

@ -842,7 +842,7 @@ void GenericSecurityManager::on_public_key_generated(
const public_key_t &public_key_x,
const public_key_t &public_key_y
) {
_db.set_public_key(public_key_x, public_key_y);
}
void GenericSecurityManager::on_secure_connections_ltk_generated(