From 9c8b3a52e3abab278f18ea050cff495d0b70fd1d Mon Sep 17 00:00:00 2001 From: "matthias.ringwald" Date: Sun, 15 Jun 2014 10:38:00 +0000 Subject: [PATCH] don't use sm_aes128_plaintext for ltk calculation --- ble/sm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ble/sm.c b/ble/sm.c index 95f6587ca..de3cf74f0 100644 --- a/ble/sm.c +++ b/ble/sm.c @@ -1070,7 +1070,11 @@ static void sm_run(void){ case SM_STATE_PH4_LTK_GET_ENC: // already busy? if (sm_aes128_state == SM_AES128_ACTIVE) break; - sm_aes128_start(sm_persistent_er, setup->sm_aes128_plaintext); + { + sm_key_t d_prime; + sm_d1_d_prime(setup->sm_local_div, 0, d_prime); + sm_aes128_start(sm_persistent_er, d_prime); + } sm_next_responding_state(); return; @@ -1355,7 +1359,6 @@ static void sm_handle_encryption_result(uint8_t * data){ print_hex16("ediv", setup->sm_local_ediv); // PH3B4 - calculate LTK - enc // LTK = d1(ER, DIV, 0)) - sm_d1_d_prime(setup->sm_local_div, 0, setup->sm_aes128_plaintext); connection->sm_state_responding = SM_STATE_PH3_LTK_GET_ENC; return; }