mirror of https://github.com/ARMmbed/mbed-os.git
all_zeros now free functions
parent
ba5b0f30d2
commit
0a494a0bbc
|
@ -261,6 +261,27 @@ private:
|
|||
uint8_t ascii[PASSKEY_LEN];
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true if every byte is equal to zero
|
||||
*/
|
||||
template <class byte_array_class>
|
||||
bool is_all_zeros(byte_array_class &byte_array) {
|
||||
for (size_t i = 0; i < byte_array.size(); i++) {
|
||||
if (byte_array[i] != 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Zero out all bytes
|
||||
*/
|
||||
template <class byte_array_class>
|
||||
void set_all_zeros(byte_array_class &byte_array) {
|
||||
memset(&byte_array[0], 0x00, byte_array.size());
|
||||
}
|
||||
|
||||
template <size_t array_size>
|
||||
struct byte_array_t {
|
||||
/**
|
||||
|
@ -324,25 +345,6 @@ struct byte_array_t {
|
|||
return _value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if every byte is equal to zero
|
||||
*/
|
||||
bool is_all_zeros() {
|
||||
for (size_t i = 0; i < array_size; i++) {
|
||||
if (_value[i] != 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Zero out all bytes
|
||||
*/
|
||||
void set_all_zeros() {
|
||||
memset(_value, 0x00, array_size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Size in byte of a data.
|
||||
*/
|
||||
|
|
|
@ -525,14 +525,14 @@ ble_error_t GenericSecurityManager::generateOOB(
|
|||
|
||||
/* Secure connections. Avoid generating if we're already waiting for it.
|
||||
* If a local random is set to 0 it means we're already calculating. */
|
||||
if (!_oob_local_random.is_all_zeros()) {
|
||||
if (!is_all_zeros(_oob_local_random)) {
|
||||
status = _pal.generate_secure_connections_oob();
|
||||
|
||||
if (status == BLE_ERROR_NONE) {
|
||||
_oob_local_address = *address;
|
||||
/* this will be updated when calculation completes,
|
||||
* a value of all zeros is an invalid random value */
|
||||
_oob_local_random.set_all_zeros();
|
||||
set_all_zeros(_oob_local_random);
|
||||
} else if (status != BLE_ERROR_NOT_IMPLEMENTED) {
|
||||
return status;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue