mirror of https://github.com/ARMmbed/mbed-os.git
sign counter kept track by the class using it
parent
deeb0ea7e0
commit
4fff20583d
|
|
@ -216,13 +216,26 @@ public:
|
|||
AttcSignedWriteCmd(
|
||||
connection_handle,
|
||||
attribute_handle,
|
||||
/*TODO: get sign counter from cordio sm */0,
|
||||
_local_sign_counter,
|
||||
value.size(),
|
||||
const_cast<uint8_t*>(value.data())
|
||||
);
|
||||
_local_sign_counter++;
|
||||
return BLE_ERROR_NONE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialises the counter used to sign messages. Counter will be incremented every
|
||||
* time a message is signed.
|
||||
*
|
||||
* @param sign_counter initialise the signing counter to this value
|
||||
*/
|
||||
virtual void set_sign_counter(
|
||||
sign_count_t sign_counter
|
||||
) {
|
||||
_local_sign_counter = sign_counter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ble::pal::AttClient::prepare_write_request
|
||||
*/
|
||||
|
|
@ -612,6 +625,8 @@ private:
|
|||
);
|
||||
}
|
||||
};
|
||||
private:
|
||||
sign_count_t _local_sign_counter;
|
||||
};
|
||||
|
||||
} // cordio
|
||||
|
|
|
|||
|
|
@ -324,7 +324,6 @@ public:
|
|||
private:
|
||||
bool _use_default_passkey;
|
||||
passkey_num_t _default_passkey;
|
||||
sign_count_t _local_sign_counter;
|
||||
bool _lesc_keys_generated;
|
||||
uint8_t _public_key_x[SEC_ECC_KEY_LEN];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "CordioPalSecurityManager.h"
|
||||
#include "CordioBLE.h"
|
||||
#include "dm_api.h"
|
||||
#include "att_api.h"
|
||||
#include "smp_api.h"
|
||||
|
|
@ -31,7 +32,6 @@ CordioSecurityManager::CordioSecurityManager() :
|
|||
::ble::pal::SecurityManager(),
|
||||
_use_default_passkey(false),
|
||||
_default_passkey(0),
|
||||
_local_sign_counter(0),
|
||||
_lesc_keys_generated(false),
|
||||
_public_key_x()
|
||||
{
|
||||
|
|
@ -272,7 +272,7 @@ ble_error_t CordioSecurityManager::set_csrk(
|
|||
const csrk_t& csrk,
|
||||
sign_count_t sign_counter
|
||||
) {
|
||||
_local_sign_counter = sign_counter;
|
||||
CordioAttClient::get_client().set_sign_counter(sign_counter);
|
||||
DmSecSetLocalCsrk(const_cast<uint8_t*>(csrk.data()));
|
||||
return BLE_ERROR_NONE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue