mirror of https://github.com/ARMmbed/mbed-os.git
fix setting default values which were overriding even when unset
parent
975544f274
commit
abcc5db44b
|
@ -119,7 +119,10 @@ ble_error_t GenericSecurityManager::requestPairing(connection_handle_t connectio
|
|||
update_oob_presence(connection);
|
||||
|
||||
AuthenticationMask link_authentication(_default_authentication);
|
||||
link_authentication.set_mitm(cb->mitm_requested);
|
||||
|
||||
if (cb->mitm_requested) {
|
||||
link_authentication.set_mitm(true);
|
||||
}
|
||||
|
||||
/* by default the initiator doesn't send any keys other then identity */
|
||||
KeyDistribution initiator_distribution(
|
||||
|
@ -133,9 +136,12 @@ ble_error_t GenericSecurityManager::requestPairing(connection_handle_t connectio
|
|||
}
|
||||
|
||||
/* override default if requested */
|
||||
initiator_distribution.set_signing(
|
||||
cb->signing_override_default ? cb->signing_requested : _default_key_distribution.get_signing()
|
||||
);
|
||||
if (cb->signing_override_default) {
|
||||
initiator_distribution.set_signing(cb->signing_requested);
|
||||
} else {
|
||||
/* because _master_sends_keys might be false so we need to set this */
|
||||
initiator_distribution.set_signing(_default_key_distribution.get_signing());
|
||||
}
|
||||
|
||||
KeyDistribution responder_distribution(_default_key_distribution);
|
||||
|
||||
|
@ -161,7 +167,9 @@ ble_error_t GenericSecurityManager::acceptPairingRequest(connection_handle_t con
|
|||
update_oob_presence(connection);
|
||||
|
||||
AuthenticationMask link_authentication(_default_authentication);
|
||||
link_authentication.set_mitm(cb->mitm_requested);
|
||||
if (cb->mitm_requested) {
|
||||
link_authentication.set_mitm(true);
|
||||
}
|
||||
|
||||
KeyDistribution initiator_dist = cb->get_initiator_key_distribution();
|
||||
|
||||
|
@ -172,20 +180,22 @@ ble_error_t GenericSecurityManager::acceptPairingRequest(connection_handle_t con
|
|||
}
|
||||
|
||||
/* signing has to be offered and enabled on the link */
|
||||
initiator_dist.set_signing(
|
||||
initiator_dist.get_signing()
|
||||
&& (
|
||||
cb->signing_override_default ? cb->signing_requested : _default_key_distribution.get_signing())
|
||||
);
|
||||
if (initiator_dist.get_signing()) {
|
||||
initiator_dist.set_signing(
|
||||
cb->signing_override_default ? cb->signing_requested : _default_key_distribution.get_signing()
|
||||
);
|
||||
}
|
||||
|
||||
KeyDistribution responder_dist = cb->get_responder_key_distribution();
|
||||
KeyDistribution responder_dist(cb->get_responder_key_distribution());
|
||||
|
||||
responder_dist &= _default_key_distribution;
|
||||
|
||||
/* signing has to be requested and enabled on the link */
|
||||
responder_dist.set_signing(
|
||||
responder_dist.get_signing()
|
||||
&& (cb->signing_override_default ? cb->signing_requested : _default_key_distribution.get_signing())
|
||||
);
|
||||
if (responder_dist.get_signing()) {
|
||||
responder_dist.set_signing(
|
||||
cb->signing_override_default ? cb->signing_requested : _default_key_distribution.get_signing()
|
||||
);
|
||||
}
|
||||
|
||||
return _pal.send_pairing_response(
|
||||
connection,
|
||||
|
|
Loading…
Reference in New Issue