Skip to content

Commit 675fc91

Browse files
authored
Merge pull request #302 from roleroz/master
Fix warnings
2 parents 8ca5415 + 1dfbf62 commit 675fc91

File tree

4 files changed

+5
-55
lines changed

4 files changed

+5
-55
lines changed

src/local/BLELocalCharacteristic.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@
3232
BLELocalCharacteristic::BLELocalCharacteristic(const char* uuid, uint16_t permissions, int valueSize, bool fixedLength) :
3333
BLELocalAttribute(uuid),
3434
_properties((uint8_t)(permissions&0x000FF)),
35+
_permissions((uint8_t)((permissions&0xFF00)>>8)),
3536
_valueSize(min(valueSize, 512)),
3637
_valueLength(0),
3738
_fixedLength(fixedLength),
3839
_handle(0x0000),
3940
_broadcast(false),
4041
_written(false),
41-
_cccdValue(0x0000),
42-
_permissions((uint8_t)((permissions&0xFF00)>>8))
42+
_cccdValue(0x0000)
4343
{
4444
memset(_eventHandlers, 0x00, sizeof(_eventHandlers));
4545

src/utility/HCI.cpp

+1-34
Original file line numberDiff line numberDiff line change
@@ -553,16 +553,12 @@ int HCIClass::readStoredLK(uint8_t BD_ADDR[], uint8_t read_all ){
553553
}
554554

555555
int HCIClass::tryResolveAddress(uint8_t* BDAddr, uint8_t* address){
556-
uint8_t iphone[16] = {0xA6, 0xD2, 0xD, 0xD3, 0x4F, 0x13, 0x42, 0x4F, 0xE1, 0xC1, 0xFD, 0x22, 0x2E, 0xC5, 0x6A, 0x2D};
557-
uint8_t irk[16];
558-
for(int i=0; i<16; i++) irk[15-i] = iphone[i];
559556
bool foundMatch = false;
560557
if(HCI._getIRKs!=0){
561558
uint8_t nIRKs = 0;
562559
uint8_t** BDAddrType = new uint8_t*;
563560
uint8_t*** BADDRs = new uint8_t**;
564561
uint8_t*** IRKs = new uint8_t**;
565-
uint8_t* memcheck;
566562

567563

568564
if(!HCI._getIRKs(&nIRKs, BDAddrType, BADDRs, IRKs)){
@@ -971,33 +967,12 @@ void HCIClass::handleEventPkt(uint8_t /*plen*/, uint8_t pdata[])
971967
data += 2;
972968
}
973969
}
974-
else if(eventHdr->evt == EVT_RETURN_LINK_KEYS)
975-
{
976-
uint8_t num_keys = (uint8_t)pdata[sizeof(HCIEventHdr)];
977-
// Serial.print("N keys: ");
978-
// Serial.println(num_keys);
979-
uint8_t BD_ADDRs[num_keys][6];
980-
uint8_t LKs[num_keys][16];
981-
auto nAddresss = [pdata](uint8_t nAddr)->uint8_t*{
982-
return (uint8_t*) &pdata[sizeof(HCIEventHdr)] + 1 + nAddr*6 + nAddr*16;
983-
};
984-
auto nLK = [pdata](uint8_t nLK)->uint8_t*{
985-
return (uint8_t*) &pdata[sizeof(HCIEventHdr)] + 1 + (nLK+1)*6 + nLK*16;
986-
};
987-
// Serial.println("Stored LKs are: ");
988-
// for(int i=0; i<num_keys; i++){
989-
// Serial.print("Address : ");
990-
// btct.printBytes(nAddresss(i),6);
991-
// Serial.print("LK : ");
992-
// btct.printBytes(nLK(i),16);
993-
// }
994-
}
995970
else if(eventHdr->evt == 0x10)
996971
{
972+
#ifdef _BLE_TRACE_
997973
struct __attribute__ ((packed)) CmdHardwareError {
998974
uint8_t hardwareCode;
999975
} *cmdHardwareError = (CmdHardwareError*)&pdata[sizeof(HCIEventHdr)];
1000-
#ifdef _BLE_TRACE_
1001976
Serial.print("Bluetooth hardware error.");
1002977
Serial.print(" Code: 0x");
1003978
Serial.println(cmdHardwareError->hardwareCode, HEX);
@@ -1096,9 +1071,6 @@ void HCIClass::handleEventPkt(uint8_t /*plen*/, uint8_t pdata[])
10961071
leConnectionComplete->supervisionTimeout,
10971072
leConnectionComplete->masterClockAccuracy);
10981073
}
1099-
uint8_t address[6];
1100-
uint8_t BDAddr[6];
1101-
for(int i=0; i<6; i++) BDAddr[5-i] = leConnectionComplete->peerBdaddr[i];
11021074
// leReadPeerResolvableAddress(leConnectionComplete->peerBdaddrType,BDAddr,address);
11031075
// Serial.print("Resolving address: ");
11041076
// btct.printBytes(BDAddr, 6);
@@ -1325,11 +1297,6 @@ void HCIClass::handleEventPkt(uint8_t /*plen*/, uint8_t pdata[])
13251297

13261298
// Send Pairing confirm response
13271299
HCI.sendAclPkt(connectionHandle, SECURITY_CID, sizeof(pairingConfirm), &pairingConfirm);
1328-
// Start calculating DH Key
1329-
uint8_t remotePublicKeyReversed[sizeof(HCI.remotePublicKeyBuffer)];
1330-
for(int i=0; i<sizeof(HCI.remotePublicKeyBuffer); i++){
1331-
remotePublicKeyReversed[sizeof(HCI.remotePublicKeyBuffer)-i] = HCI.remotePublicKeyBuffer[i];
1332-
}
13331300

13341301
HCI.sendCommand( (OGF_LE_CTL << 10) | LE_COMMAND::GENERATE_DH_KEY_V1, sizeof(HCI.remotePublicKeyBuffer), HCI.remotePublicKeyBuffer);
13351302
}else{

src/utility/L2CAPSignaling.cpp

+2-7
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,12 @@ void L2CAPSignalingClass::handleSecurityData(uint16_t connectionHandle, uint8_t
264264
}
265265
else if(code == CONNECTION_PAIRING_FAILED)
266266
{
267+
#ifdef _BLE_TRACE_
267268
struct __attribute__ ((packed)) PairingFailed
268269
{
269270
uint8_t code;
270271
uint8_t reason;
271272
} *pairingFailed = (PairingFailed*)data;
272-
#ifdef _BLE_TRACE_
273273
Serial.print("Pairing failed with code: 0x");
274274
Serial.println(pairingFailed->reason,HEX);
275275
#endif
@@ -293,7 +293,7 @@ void L2CAPSignalingClass::handleSecurityData(uint16_t connectionHandle, uint8_t
293293
} *identityAddress = (IdentityAddress*)data;
294294
// we can save this information now.
295295
uint8_t peerAddress[6];
296-
for(int i; i<6; i++) peerAddress[5-i] = identityAddress->address[i];
296+
for(int i=0; i<6; i++) peerAddress[5-i] = identityAddress->address[i];
297297

298298
HCI.saveNewAddress(identityAddress->addressType, peerAddress, ATT.peerIRK, ATT.localIRK);
299299
if(HCI._storeLTK!=0){
@@ -315,11 +315,6 @@ void L2CAPSignalingClass::handleSecurityData(uint16_t connectionHandle, uint8_t
315315
};
316316
memcpy(generateDHKeyCommand.x,connectionPairingPublicKey->x,32);
317317
memcpy(generateDHKeyCommand.y,connectionPairingPublicKey->y,32);
318-
struct __attribute__ ((packed)) ReadPublicKeyCommand {
319-
uint8_t code;
320-
} readPublicKeyCommand = {
321-
LE_COMMAND::READ_LOCAL_P256,
322-
};
323318

324319
if(ATT.setPeerEncryption(connectionHandle, ATT.getPeerEncryption(connectionHandle) | PEER_ENCRYPTION::REQUESTED_ENCRYPTION)){
325320
#ifdef _BLE_TRACE_

src/utility/btct.cpp

-12
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,8 @@ int BluetoothCryptoToolbox::f5(uint8_t DHKey[],uint8_t N_master[], uint8_t N_sla
6060
printBytes(BD_ADDR_slave, ADDR_LEN);
6161
#endif
6262

63-
uint8_t ADD_M[7];
64-
uint8_t ADD_S[7];
6563
uint8_t T[16];
6664

67-
for(int i=0; i<6; i++){
68-
ADD_M[1+i] = BD_ADDR_master[i];
69-
ADD_M[0] = 0x00;
70-
ADD_S[i+1] = BD_ADDR_slave[i];
71-
ADD_S[0] = 0x00;
72-
}
7365
struct __attribute__ ((packed)) CmacInput
7466
{
7567
uint8_t counter;
@@ -135,11 +127,8 @@ int BluetoothCryptoToolbox::ah(uint8_t k[16], uint8_t r[3], uint8_t* result)
135127
void BluetoothCryptoToolbox::testAh()
136128
{
137129
uint8_t irk[16] = {0xec,0x02,0x34,0xa3,0x57,0xc8,0xad,0x05,0x34,0x10,0x10,0xa6,0x0a,0x39,0x7d,0x9b};
138-
uint8_t r[3] = {0x70,0x81,0x94};
139-
uint8_t expected_AES[16] = {0x15,0x9d,0x5f,0xb7,0x2e,0xbe,0x23,0x11,0xa4,0x8c,0x1b,0xdc,0xc4,0x0d,0xfb,0xaa};
140130
uint8_t expected_final[3] = {0x0d,0xfb,0xaa};
141131

142-
for(int i=0; i<3; i++) r[2-i] = expected_final[3+i];
143132
uint8_t ourResult[3];
144133
ah(irk, expected_final, ourResult);
145134

@@ -170,7 +159,6 @@ void BluetoothCryptoToolbox::testg2(){
170159
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};
171160
uint8_t X[16] = {0xd5,0xcb,0x84,0x54,0xd1,0x77,0x73,0x3e,0xff,0xff,0xb2,0xec,0x71,0x2b,0xae,0xab};
172161
uint8_t Y[16] = {0xa6,0xe8,0xe7,0xcc,0x25,0xa7,0x5f,0x6e,0x21,0x65,0x83,0xf7,0xff,0x3d,0xc4,0xcf};
173-
uint8_t AES[16] = {0x15,0x36,0xd1,0x8d,0xe3,0xd2,0x0d,0xf9,0x9b,0x70,0x44,0xc1,0x2f,0x9e,0xd5,0xba};
174162
uint8_t out[4];
175163

176164

0 commit comments

Comments
 (0)