From 67d1148a56585d56158735af8c42513768d24ce4 Mon Sep 17 00:00:00 2001 From: paul-szczepanek-arm <33840200+paul-szczepanek-arm@users.noreply.github.com> Date: Tue, 9 Jan 2018 16:55:12 +0000 Subject: [PATCH] added timeout changed pointers to refs --- features/FEATURE_BLE/ble/SecurityManager.h | 13 +++++++++++- .../FEATURE_BLE/ble/pal/PalSecurityManager.h | 20 +++++++++---------- .../source/generic/GenericSecurityManager.cpp | 18 +++++++++++++---- 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/features/FEATURE_BLE/ble/SecurityManager.h b/features/FEATURE_BLE/ble/SecurityManager.h index a6bfb45030..5943b75933 100644 --- a/features/FEATURE_BLE/ble/SecurityManager.h +++ b/features/FEATURE_BLE/ble/SecurityManager.h @@ -152,7 +152,7 @@ public: return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porters: override this API if security is supported. */ } - virtual ble_error_t getLinkSecurity(Gap::Handle_t handle, SecurityMode_t *mode) { + virtual ble_error_t getLinkSecurity(Gap::Handle_t handle, SecurityMode_t &mode) { (void) handle; (void) mode; return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porters: override this API if security is supported. */ @@ -212,6 +212,17 @@ public: return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porters: override this API if security is supported. */ } + virtual ble_error_t setAuthenticationTimeout(connection_handle_t handle, uint32_t timeout_in_ms) { + (void) handle; + (void) timeout_in_ms; + return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porters: override this API if security is supported. */ + } + virtual ble_error_t getAuthenticationTimeout(connection_handle_t handle, uint32_t *timeout_in_ms) { + (void) handle; + (void) timeout_in_ms; + return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porters: override this API if security is supported. */ + } + virtual ble_error_t setSecureConnectionsSupport(bool enabled, bool secure_connections_only = false) { (void) enabled; (void) secure_connections_only; diff --git a/features/FEATURE_BLE/ble/pal/PalSecurityManager.h b/features/FEATURE_BLE/ble/pal/PalSecurityManager.h index 00278c6806..b4dd201402 100644 --- a/features/FEATURE_BLE/ble/pal/PalSecurityManager.h +++ b/features/FEATURE_BLE/ble/pal/PalSecurityManager.h @@ -97,7 +97,7 @@ public: virtual ble_error_t refresh_encryption_key(connection_handle_t) = 0; virtual ble_error_t set_authentication_timeout(connection_handle_t, uint16_t timeout /*x10 ms*/) = 0; - virtual ble_error_t get_authentication_timeout(connection_handle_t, uint16_t *timeout /*x10 ms*/) = 0; + virtual ble_error_t get_authentication_timeout(connection_handle_t, uint16_t &timeout /*x10 ms*/) = 0; virtual ble_error_t set_pin_code(uint8_t pin_length, uint8_t *pin_code, bool static_pin = false) = 0; virtual ble_error_t set_passkey(passkey_num_t passkey) = 0; @@ -105,9 +105,9 @@ public: /* feature support */ virtual ble_error_t set_secure_connections_support(bool enabled, bool secure_connections_only = false) = 0; - virtual ble_error_t get_secure_connections_support(bool *enabled, bool *secure_connections_only) = 0; + virtual ble_error_t get_secure_connections_support(bool &enabled, bool &secure_connections_only) = 0; - virtual ble_error_t get_encryption_key_size(connection_handle_t, uint8_t *size) = 0; + virtual ble_error_t get_encryption_key_size(connection_handle_t, uint8_t &size) = 0; /* security level */ @@ -115,7 +115,7 @@ public: SecurityIOCapabilities_t iocaps = IO_CAPS_NONE, bool send_keypresses = false) = 0; - virtual ble_error_t set_oob_data_usage(Gap::Handle_t connectionHandle, bool useOOB, bool OOBProvidesMITM) = 0; + virtual ble_error_t set_oob_data_usage(connection_handle_t connectionHandle, bool useOOB, bool OOBProvidesMITM) = 0; /* triggers pairing if required */ virtual ble_error_t set_security_mode(connection_handle_t handle, @@ -123,11 +123,11 @@ public: virtual ble_error_t get_security_mode(connection_handle_t handle, - SecurityMode_t *mode) = 0; + SecurityMode_t &mode) = 0; virtual ble_error_t get_encryption_status(connection_handle_t handle, - LinkSecurityStatus_t *mode) = 0; + LinkSecurityStatus_t &mode) = 0; virtual ble_error_t request_pairing(bool authentication_required = true) = 0; virtual ble_error_t accept_pairing_request(bool accept = true, bool authentication_required = true) = 0; @@ -142,10 +142,10 @@ public: virtual ble_error_t passkey_entered(connection_handle_t, Passkey_t passkey) = 0; virtual ble_error_t send_keypress_notification(connection_handle_t, Keypress_t keypress) = 0; - virtual ble_error_t set_oob(connection_handle_t handle, C192_t*, R192_t*) = 0; - virtual ble_error_t set_extended_oob(connection_handle_t handle, C192_t*, R192_t*, C256_t*, R256_t*) = 0; - virtual ble_error_t get_local_oob_data(connection_handle_t handle, C192_t*, R192_t*) = 0; - virtual ble_error_t get_local_extended_oob_data(connection_handle_t handle, C192_t*, R192_t*, C256_t*, R256_t*) = 0; + virtual ble_error_t set_oob(connection_handle_t handle, C192_t&, R192_t&) = 0; + virtual ble_error_t set_extended_oob(connection_handle_t handle, C192_t&, R192_t&, C256_t&, R256_t&) = 0; + virtual ble_error_t get_local_oob_data(connection_handle_t handle, C192_t&, R192_t&) = 0; + virtual ble_error_t get_local_extended_oob_data(connection_handle_t handle, C192_t&, R192_t&, C256_t&, R256_t&) = 0; /* Entry points for the underlying stack to report events back to the user. */ public: diff --git a/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp b/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp index 88e31af399..8cc8ad91c7 100644 --- a/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp +++ b/features/FEATURE_BLE/source/generic/GenericSecurityManager.cpp @@ -18,7 +18,7 @@ #define __GENERIC_SECURITY_MANAGER_H__ #include "SecurityManager.h" -#include "PalSm.h" +#include "PalSecurityManager.h" namespace ble { namespace generic { @@ -34,7 +34,7 @@ public: (void)requireMITM; loadState(); pal.set_security_settings(enableBonding, iocaps); - pal.set_passkey(passkey); + setPasskey(passkey); return BLE_ERROR_NONE; } @@ -51,8 +51,18 @@ public: } } + virtual ble_error_t setAuthenticationTimeout(connection_handle_t handle, uint32_t timeout_in_ms) { + return pal.set_authentication_timeout(handle, timeout_in_ms / 10); + } + virtual ble_error_t getAuthenticationTimeout(connection_handle_t handle, uint32_t *timeout_in_ms) { + uint16_t timeout_in_10ms; + ble_error_t status = pal.get_authentication_timeout(handle, timeout_in_10ms); + timeout_in_ms = 10 * timeout_in_10ms; + return status; + } + virtual ble_error_t getLinkSecurity(Gap::Handle_t connectionHandle, LinkSecurityStatus_t *securityStatusP) { - return pal.get_encryption_status(connectionHandle, securityStatusP); + return pal.get_encryption_status(connectionHandle, *securityStatusP); } ble_error_t setLinkSecurity(Gap::Handle_t connectionHandle, SecurityMode_t securityMode) { @@ -77,7 +87,7 @@ public: return BLE_ERROR_NONE; } - ble_error_t setPinCode(uint8_t pinLength, uint8_t * pinCode, bool isStatic = false) { + ble_error_t setPinCode(uint8_t pinLength, uint8_t *pinCode, bool isStatic = false) { return pal.set_pin_code(pinLength, pinCode, isStatic); }