From f9f8d2c690f58f86a1603688035f2f5c8ae3901e Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Mon, 12 Aug 2019 09:07:10 -0700 Subject: [PATCH] [key-manager] update ComputeKey to use BigEndian::WriteUnit32 (#4087) --- src/core/thread/key_manager.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/core/thread/key_manager.cpp b/src/core/thread/key_manager.cpp index 5173f5f8c..3367392bc 100644 --- a/src/core/thread/key_manager.cpp +++ b/src/core/thread/key_manager.cpp @@ -34,6 +34,7 @@ #include "key_manager.hpp" #include "common/code_utils.hpp" +#include "common/encoding.hpp" #include "common/instance.hpp" #include "common/locator-getters.hpp" #include "common/timer.hpp" @@ -158,14 +159,11 @@ exit: void KeyManager::ComputeKey(uint32_t aKeySequence, uint8_t *aKey) { Crypto::HmacSha256 hmac; - uint8_t keySequenceBytes[4]; + uint8_t keySequenceBytes[sizeof(uint32_t)]; hmac.Start(mMasterKey.m8, sizeof(mMasterKey.m8)); - keySequenceBytes[0] = (aKeySequence >> 24) & 0xff; - keySequenceBytes[1] = (aKeySequence >> 16) & 0xff; - keySequenceBytes[2] = (aKeySequence >> 8) & 0xff; - keySequenceBytes[3] = aKeySequence & 0xff; + Encoding::BigEndian::WriteUint32(aKeySequence, keySequenceBytes); hmac.Update(keySequenceBytes, sizeof(keySequenceBytes)); hmac.Update(kThreadString, sizeof(kThreadString));