Loading system/stack/crypto_toolbox/crypto_toolbox.cc +4 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ Octet16 h7(const Octet16& salt, const Octet16& w) { return aes_cmac(salt, w.data(), w.size()); } Octet16 f4(uint8_t* u, uint8_t* v, const Octet16& x, uint8_t z) { Octet16 f4(const uint8_t* u, const uint8_t* v, const Octet16& x, uint8_t z) { constexpr size_t msg_len = BT_OCTET32_LEN /* U size */ + BT_OCTET32_LEN /* V size */ + 1 /* Z size */; Loading Loading @@ -73,7 +73,7 @@ static Octet16 calculate_mac_key_or_ltk(const Octet16& t, uint8_t counter, return aes_cmac(t, msg.data(), msg.size()); } void f5(uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, void f5(const uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, uint8_t* a2, Octet16* mac_key, Octet16* ltk) { DVLOG(2) << __func__ << "W=" << HexEncode(w, BT_OCTET32_LEN) << ", N1=" << HexEncode(n1.data(), n1.size()) Loading Loading @@ -123,7 +123,8 @@ Octet16 f6(const Octet16& w, const Octet16& n1, const Octet16& n2, return aes_cmac(w, msg.data(), msg.size()); } uint32_t g2(uint8_t* u, uint8_t* v, const Octet16& x, const Octet16& y) { uint32_t g2(const uint8_t* u, const uint8_t* v, const Octet16& x, const Octet16& y) { constexpr size_t msg_len = BT_OCTET32_LEN /* U size */ + BT_OCTET32_LEN /* V size */ + OCTET16_LEN /* Y size */; Loading system/stack/crypto_toolbox/crypto_toolbox.h +6 −4 Original line number Diff line number Diff line Loading @@ -23,14 +23,16 @@ namespace crypto_toolbox { extern Octet16 aes_128(const Octet16& key, const Octet16& message); extern Octet16 aes_cmac(const Octet16& key, const uint8_t* message, uint16_t length); extern Octet16 f4(uint8_t* u, uint8_t* v, const Octet16& x, uint8_t z); extern void f5(uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, uint8_t* a2, Octet16* mac_key, Octet16* ltk); extern Octet16 f4(const uint8_t* u, const uint8_t* v, const Octet16& x, uint8_t z); extern void f5(const uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, uint8_t* a2, Octet16* mac_key, Octet16* ltk); extern Octet16 f6(const Octet16& w, const Octet16& n1, const Octet16& n2, const Octet16& r, uint8_t* iocap, uint8_t* a1, uint8_t* a2); extern Octet16 h6(const Octet16& w, std::array<uint8_t, 4> keyid); extern Octet16 h7(const Octet16& salt, const Octet16& w); extern uint32_t g2(uint8_t* u, uint8_t* v, const Octet16& x, const Octet16& y); extern uint32_t g2(const uint8_t* u, const uint8_t* v, const Octet16& x, const Octet16& y); extern Octet16 ltk_to_link_key(const Octet16& ltk, bool use_h7); extern Octet16 link_key_to_ltk(const Octet16& link_key, bool use_h7); Loading Loading
system/stack/crypto_toolbox/crypto_toolbox.cc +4 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ Octet16 h7(const Octet16& salt, const Octet16& w) { return aes_cmac(salt, w.data(), w.size()); } Octet16 f4(uint8_t* u, uint8_t* v, const Octet16& x, uint8_t z) { Octet16 f4(const uint8_t* u, const uint8_t* v, const Octet16& x, uint8_t z) { constexpr size_t msg_len = BT_OCTET32_LEN /* U size */ + BT_OCTET32_LEN /* V size */ + 1 /* Z size */; Loading Loading @@ -73,7 +73,7 @@ static Octet16 calculate_mac_key_or_ltk(const Octet16& t, uint8_t counter, return aes_cmac(t, msg.data(), msg.size()); } void f5(uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, void f5(const uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, uint8_t* a2, Octet16* mac_key, Octet16* ltk) { DVLOG(2) << __func__ << "W=" << HexEncode(w, BT_OCTET32_LEN) << ", N1=" << HexEncode(n1.data(), n1.size()) Loading Loading @@ -123,7 +123,8 @@ Octet16 f6(const Octet16& w, const Octet16& n1, const Octet16& n2, return aes_cmac(w, msg.data(), msg.size()); } uint32_t g2(uint8_t* u, uint8_t* v, const Octet16& x, const Octet16& y) { uint32_t g2(const uint8_t* u, const uint8_t* v, const Octet16& x, const Octet16& y) { constexpr size_t msg_len = BT_OCTET32_LEN /* U size */ + BT_OCTET32_LEN /* V size */ + OCTET16_LEN /* Y size */; Loading
system/stack/crypto_toolbox/crypto_toolbox.h +6 −4 Original line number Diff line number Diff line Loading @@ -23,14 +23,16 @@ namespace crypto_toolbox { extern Octet16 aes_128(const Octet16& key, const Octet16& message); extern Octet16 aes_cmac(const Octet16& key, const uint8_t* message, uint16_t length); extern Octet16 f4(uint8_t* u, uint8_t* v, const Octet16& x, uint8_t z); extern void f5(uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, uint8_t* a2, Octet16* mac_key, Octet16* ltk); extern Octet16 f4(const uint8_t* u, const uint8_t* v, const Octet16& x, uint8_t z); extern void f5(const uint8_t* w, const Octet16& n1, const Octet16& n2, uint8_t* a1, uint8_t* a2, Octet16* mac_key, Octet16* ltk); extern Octet16 f6(const Octet16& w, const Octet16& n1, const Octet16& n2, const Octet16& r, uint8_t* iocap, uint8_t* a1, uint8_t* a2); extern Octet16 h6(const Octet16& w, std::array<uint8_t, 4> keyid); extern Octet16 h7(const Octet16& salt, const Octet16& w); extern uint32_t g2(uint8_t* u, uint8_t* v, const Octet16& x, const Octet16& y); extern uint32_t g2(const uint8_t* u, const uint8_t* v, const Octet16& x, const Octet16& y); extern Octet16 ltk_to_link_key(const Octet16& ltk, bool use_h7); extern Octet16 link_key_to_ltk(const Octet16& link_key, bool use_h7); Loading