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..e9743758 100644 --- a/src/utility/HCI.cpp +++ b/src/utility/HCI.cpp @@ -553,16 +553,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 +967,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 +1071,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 +1297,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]; 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