From 9aa695e95ef1fe39884bd49f8810afd50dcda01f Mon Sep 17 00:00:00 2001 From: Joso Eterovic Date: Sun, 28 May 2023 21:55:01 -0700 Subject: [PATCH 1/2] Fix warnings: - Reorder member initialization on BLELocalCharacteristic - Remove unused variables in: - HCIClass::tryResolveAddress - HCIClass::handleEventPkt (the whole else if statement did nothing) - L2CAPSignalingClass::handleSecurityData (one initialization should be inside of _BLE_TRACE_ - BluetoothCryptoToolbox::f5 - BluetoothCryptoToolbox::testAh - BluetoothCryptoToolbox::testg2 - Uninitialized variable in L2CAPSignalingClass::handleSecurityData --- src/local/BLELocalCharacteristic.cpp | 4 ++-- src/utility/HCI.cpp | 34 +--------------------------- src/utility/L2CAPSignaling.cpp | 9 ++------ src/utility/btct.cpp | 12 ---------- 4 files changed, 5 insertions(+), 54 deletions(-) diff --git a/src/local/BLELocalCharacteristic.cpp b/src/local/BLELocalCharacteristic.cpp index ef19e726..207425bd 100644 --- a/src/local/BLELocalCharacteristic.cpp +++ b/src/local/BLELocalCharacteristic.cpp @@ -32,14 +32,14 @@ BLELocalCharacteristic::BLELocalCharacteristic(const char* uuid, uint16_t permissions, int valueSize, bool fixedLength) : BLELocalAttribute(uuid), _properties((uint8_t)(permissions&0x000FF)), + _permissions((uint8_t)((permissions&0xFF00)>>8)), _valueSize(min(valueSize, 512)), _valueLength(0), _fixedLength(fixedLength), _handle(0x0000), _broadcast(false), _written(false), - _cccdValue(0x0000), - _permissions((uint8_t)((permissions&0xFF00)>>8)) + _cccdValue(0x0000) { memset(_eventHandlers, 0x00, sizeof(_eventHandlers)); diff --git a/src/utility/HCI.cpp b/src/utility/HCI.cpp index 1902abe7..af9ffad8 100644 --- a/src/utility/HCI.cpp +++ b/src/utility/HCI.cpp @@ -554,15 +554,12 @@ int HCIClass::readStoredLK(uint8_t BD_ADDR[], uint8_t read_all ){ int HCIClass::tryResolveAddress(uint8_t* BDAddr, uint8_t* address){ uint8_t iphone[16] = {0xA6, 0xD2, 0xD, 0xD3, 0x4F, 0x13, 0x42, 0x4F, 0xE1, 0xC1, 0xFD, 0x22, 0x2E, 0xC5, 0x6A, 0x2D}; - uint8_t irk[16]; - for(int i=0; i<16; i++) irk[15-i] = iphone[i]; bool foundMatch = false; if(HCI._getIRKs!=0){ uint8_t nIRKs = 0; uint8_t** BDAddrType = new uint8_t*; uint8_t*** BADDRs = new uint8_t**; uint8_t*** IRKs = new uint8_t**; - uint8_t* memcheck; if(!HCI._getIRKs(&nIRKs, BDAddrType, BADDRs, IRKs)){ @@ -971,33 +968,12 @@ void HCIClass::handleEventPkt(uint8_t /*plen*/, uint8_t pdata[]) data += 2; } } - else if(eventHdr->evt == EVT_RETURN_LINK_KEYS) - { - uint8_t num_keys = (uint8_t)pdata[sizeof(HCIEventHdr)]; - // Serial.print("N keys: "); - // Serial.println(num_keys); - uint8_t BD_ADDRs[num_keys][6]; - uint8_t LKs[num_keys][16]; - auto nAddresss = [pdata](uint8_t nAddr)->uint8_t*{ - return (uint8_t*) &pdata[sizeof(HCIEventHdr)] + 1 + nAddr*6 + nAddr*16; - }; - auto nLK = [pdata](uint8_t nLK)->uint8_t*{ - return (uint8_t*) &pdata[sizeof(HCIEventHdr)] + 1 + (nLK+1)*6 + nLK*16; - }; - // Serial.println("Stored LKs are: "); - // for(int i=0; ievt == 0x10) { +#ifdef _BLE_TRACE_ struct __attribute__ ((packed)) CmdHardwareError { uint8_t hardwareCode; } *cmdHardwareError = (CmdHardwareError*)&pdata[sizeof(HCIEventHdr)]; -#ifdef _BLE_TRACE_ Serial.print("Bluetooth hardware error."); Serial.print(" Code: 0x"); Serial.println(cmdHardwareError->hardwareCode, HEX); @@ -1096,9 +1072,6 @@ void HCIClass::handleEventPkt(uint8_t /*plen*/, uint8_t pdata[]) leConnectionComplete->supervisionTimeout, leConnectionComplete->masterClockAccuracy); } - uint8_t address[6]; - uint8_t BDAddr[6]; - for(int i=0; i<6; i++) BDAddr[5-i] = leConnectionComplete->peerBdaddr[i]; // leReadPeerResolvableAddress(leConnectionComplete->peerBdaddrType,BDAddr,address); // Serial.print("Resolving address: "); // btct.printBytes(BDAddr, 6); @@ -1325,11 +1298,6 @@ void HCIClass::handleEventPkt(uint8_t /*plen*/, uint8_t pdata[]) // Send Pairing confirm response HCI.sendAclPkt(connectionHandle, SECURITY_CID, sizeof(pairingConfirm), &pairingConfirm); - // Start calculating DH Key - uint8_t remotePublicKeyReversed[sizeof(HCI.remotePublicKeyBuffer)]; - for(int i=0; ireason,HEX); #endif @@ -293,7 +293,7 @@ void L2CAPSignalingClass::handleSecurityData(uint16_t connectionHandle, uint8_t } *identityAddress = (IdentityAddress*)data; // we can save this information now. uint8_t peerAddress[6]; - for(int i; i<6; i++) peerAddress[5-i] = identityAddress->address[i]; + for(int i=0; i<6; i++) peerAddress[5-i] = identityAddress->address[i]; HCI.saveNewAddress(identityAddress->addressType, peerAddress, ATT.peerIRK, ATT.localIRK); if(HCI._storeLTK!=0){ @@ -315,11 +315,6 @@ void L2CAPSignalingClass::handleSecurityData(uint16_t connectionHandle, uint8_t }; memcpy(generateDHKeyCommand.x,connectionPairingPublicKey->x,32); memcpy(generateDHKeyCommand.y,connectionPairingPublicKey->y,32); - struct __attribute__ ((packed)) ReadPublicKeyCommand { - uint8_t code; - } readPublicKeyCommand = { - LE_COMMAND::READ_LOCAL_P256, - }; if(ATT.setPeerEncryption(connectionHandle, ATT.getPeerEncryption(connectionHandle) | PEER_ENCRYPTION::REQUESTED_ENCRYPTION)){ #ifdef _BLE_TRACE_ diff --git a/src/utility/btct.cpp b/src/utility/btct.cpp index b4faf053..6829494c 100644 --- a/src/utility/btct.cpp +++ b/src/utility/btct.cpp @@ -60,16 +60,8 @@ int BluetoothCryptoToolbox::f5(uint8_t DHKey[],uint8_t N_master[], uint8_t N_sla printBytes(BD_ADDR_slave, ADDR_LEN); #endif - uint8_t ADD_M[7]; - uint8_t ADD_S[7]; uint8_t T[16]; - for(int i=0; i<6; i++){ - ADD_M[1+i] = BD_ADDR_master[i]; - ADD_M[0] = 0x00; - ADD_S[i+1] = BD_ADDR_slave[i]; - ADD_S[0] = 0x00; - } struct __attribute__ ((packed)) CmacInput { uint8_t counter; @@ -135,11 +127,8 @@ int BluetoothCryptoToolbox::ah(uint8_t k[16], uint8_t r[3], uint8_t* result) void BluetoothCryptoToolbox::testAh() { uint8_t irk[16] = {0xec,0x02,0x34,0xa3,0x57,0xc8,0xad,0x05,0x34,0x10,0x10,0xa6,0x0a,0x39,0x7d,0x9b}; - uint8_t r[3] = {0x70,0x81,0x94}; - uint8_t expected_AES[16] = {0x15,0x9d,0x5f,0xb7,0x2e,0xbe,0x23,0x11,0xa4,0x8c,0x1b,0xdc,0xc4,0x0d,0xfb,0xaa}; uint8_t expected_final[3] = {0x0d,0xfb,0xaa}; - for(int i=0; i<3; i++) r[2-i] = expected_final[3+i]; uint8_t ourResult[3]; ah(irk, expected_final, ourResult); @@ -170,7 +159,6 @@ void BluetoothCryptoToolbox::testg2(){ uint8_t V[32] = {0x55,0x18,0x8b,0x3d,0x32,0xf6,0xbb,0x9a,0x90,0x0a,0xfc,0xfb,0xee,0xd4,0xe7,0x2a,0x59,0xcb,0x9a,0xc2,0xf1,0x9d,0x7c,0xfb,0x6b,0x4f,0xdd,0x49,0xf4,0x7f,0xc5,0xfd}; uint8_t X[16] = {0xd5,0xcb,0x84,0x54,0xd1,0x77,0x73,0x3e,0xff,0xff,0xb2,0xec,0x71,0x2b,0xae,0xab}; uint8_t Y[16] = {0xa6,0xe8,0xe7,0xcc,0x25,0xa7,0x5f,0x6e,0x21,0x65,0x83,0xf7,0xff,0x3d,0xc4,0xcf}; - uint8_t AES[16] = {0x15,0x36,0xd1,0x8d,0xe3,0xd2,0x0d,0xf9,0x9b,0x70,0x44,0xc1,0x2f,0x9e,0xd5,0xba}; uint8_t out[4]; From 1dfbf629d6b86d9e58a594d3588d5d0850783856 Mon Sep 17 00:00:00 2001 From: Joso Eterovic Date: Sun, 28 May 2023 21:58:22 -0700 Subject: [PATCH 2/2] Remove another unused variable --- src/utility/HCI.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/utility/HCI.cpp b/src/utility/HCI.cpp index af9ffad8..e9743758 100644 --- a/src/utility/HCI.cpp +++ b/src/utility/HCI.cpp @@ -553,7 +553,6 @@ int HCIClass::readStoredLK(uint8_t BD_ADDR[], uint8_t read_all ){ } int HCIClass::tryResolveAddress(uint8_t* BDAddr, uint8_t* address){ - uint8_t iphone[16] = {0xA6, 0xD2, 0xD, 0xD3, 0x4F, 0x13, 0x42, 0x4F, 0xE1, 0xC1, 0xFD, 0x22, 0x2E, 0xC5, 0x6A, 0x2D}; bool foundMatch = false; if(HCI._getIRKs!=0){ uint8_t nIRKs = 0; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy