LESC 적용

- 기존 Legacy -> LE Secure Connections(양산 모드인 경우)
This commit is contained in:
2026-04-15 17:42:38 +09:00
parent 825d9f7424
commit c539b0c756

View File

@@ -7,6 +7,7 @@
#include "ble_quick_security.h" #include "ble_quick_security.h"
#include "peer_manager_handler.h" #include "peer_manager_handler.h"
#include "nrf_ble_lesc.h"
#include "app_error.h" #include "app_error.h"
#include <string.h> #include <string.h>
@@ -35,6 +36,10 @@ void ble_security_quick_init(bool development_mode)
err_code = pm_init(); err_code = pm_init();
APP_ERROR_CHECK(err_code); APP_ERROR_CHECK(err_code);
// Initialize LESC module (ECDH P-256 key pair generation)
err_code = nrf_ble_lesc_init();
APP_ERROR_CHECK(err_code);
// Configure security parameters // Configure security parameters
memset(&sec_params, 0, sizeof(ble_gap_sec_params_t)); memset(&sec_params, 0, sizeof(ble_gap_sec_params_t));
@@ -61,7 +66,7 @@ void ble_security_quick_init(bool development_mode)
// ===== PRODUCTION MODE: Full security ===== // ===== PRODUCTION MODE: Full security =====
sec_params.bond = 1; // Enable bonding sec_params.bond = 1; // Enable bonding
sec_params.mitm = 1; // Enable MITM sec_params.mitm = 1; // Enable MITM
sec_params.lesc = 0; // Standard pairing sec_params.lesc = 1; // LE Secure Connections (ECDH P-256)
sec_params.keypress = 0; sec_params.keypress = 0;
sec_params.io_caps = BLE_GAP_IO_CAPS_DISPLAY_ONLY; // Show passkey sec_params.io_caps = BLE_GAP_IO_CAPS_DISPLAY_ONLY; // Show passkey
sec_params.oob = 0; sec_params.oob = 0;
@@ -112,9 +117,15 @@ void ble_security_quick_pm_handler(pm_evt_t const *p_evt)
case PM_EVT_CONN_SEC_SUCCEEDED: case PM_EVT_CONN_SEC_SUCCEEDED:
if (m_state.dev_mode) { if (m_state.dev_mode) {
DBG_PRINTF("DEV: Connected (no security)\r\n"); DBG_PRINTF("DEV: Connected (no security)\r\n");
} else {
pm_conn_sec_status_t status;
if (pm_conn_sec_status_get(p_evt->conn_handle, &status) == NRF_SUCCESS) {
DBG_PRINTF("PROD: Link secured - LESC=%d MITM=%d bonded=%d\r\n",
status.lesc, status.mitm_protected, status.bonded);
} else { } else {
DBG_PRINTF("PROD: Link secured (bonded)\r\n"); DBG_PRINTF("PROD: Link secured (bonded)\r\n");
} }
}
break; break;
case PM_EVT_CONN_SEC_FAILED: case PM_EVT_CONN_SEC_FAILED: