Lines Matching refs:self
28 def __init__(self, transport, trace, initiator, IRKm, IRKs=None): argument
29 self.transport = transport;
30 self.initiator = initiator;
31 self.trace = trace;
32 self.IRKm = IRKm;
33 self.IRKs = IRKs;
34 self.rand = self.ediv = self.ltk = 0;
43 def __request(self, idx, txData): argument
44 status = le_data_write(self.transport, idx, self.initiator.handles[idx], 0, 0, txData, 100);
49 dataSent = has_event(self.transport, idx, 100)[0];
52 event = get_event(self.transport, idx, 100);
64 def __response(self, idx): argument
67 dataReady = le_data_ready(self.transport, idx, 100);
69 rxPBFlags, rxBCFlags, rxData = le_data_read(self.transport, idx, 100)[2:];
79 def __random(self, idx): argument
80 status, rand = le_rand(self.transport, idx, 100);
82 event = get_event(self.transport, idx, 100);
92 def __random128(self, idx): argument
93 success, randL = self.__random(idx);
95 success, randU = self.__random(idx);
107 def __encrypt(self, idx, key, plaintext): argument
108 …status, encrypted = le_encrypt(self.transport, idx, toArray(key, 16), toArray(plaintext, 16), 2000…
110 event = get_event(self.transport, idx, 100);
131 def __calcConfirm(self, idx, tk, rand, preq, pres, ia, ra): argument
135 success, p1 = self.__encrypt(idx, tk, p1);
137 success, p1 = self.__encrypt(idx, tk, p1);
155 def __calcSTK(self, idx, tk, r1, r2): argument
159 success, r1 = self.__encrypt(idx, tk, r1);
179 def __calcLTK(self, idx, er, div): argument
180 success, d1 = self.__encrypt(idx, er, div & 0xFFFF);
198 def __calcDIVMask(self, idx, k, r): argument
199 success, dm = self.__encrypt(idx, k, r);
218 def __generateEDIV(self, idx, dhk, rand, div): argument
219 success, y = self.__calcDIVMask(idx, dhk, rand);
238 def __recoverDIV(self, idx, dhk, rand, ediv): argument
239 success, y = self.__calcDIVMask(idx, dhk, rand);
257 def __calculateKeys(self, idx): argument
260 success, dhk = self.__encrypt(idx, ir, 0x02);
261 success, div = self.__random128(idx);
262 success, ltk = self.__calcLTK(idx, er, div);
263 success, rand = self.__random(idx);
264 success, ediv = self.__generateEDIV(idx, dhk, rand, div);
269 def __publicKey(self): argument
278 def __capabilities(self, authRequest): argument
285 success = self.__request( self.initiator.initiator, txiData );
287 if not self.initiator.peer is None:
288 success, rxrData = self.__response( self.initiator.peer );
296 success = self.__request( self.initiator.peer, txrData );
300 success, rxiData = self.__response( self.initiator.initiator );
308 self.pRequest = toNumber(txiData[4:]);
309 self.pResponse = toNumber(rxiData[4:]);
325 def __legacyPairing(self, ia, ra): argument
331 success, mRand = self.__random128( self.initiator.initiator );
334 …success, mConfirm = self.__calcConfirm( self.initiator.initiator, 0, mRand, self.pRequest, self.pR…
338 success = self.__request( self.initiator.initiator, txData );
344 if not self.initiator.peer is None:
345 success, rxData = self.__response( self.initiator.peer );
352 success, sRand = self.__random128( self.initiator.peer );
355 …success, sConfirm = self.__calcConfirm( self.initiator.peer, 0, sRand, self.pRequest, self.pRespon…
359 success = self.__request( self.initiator.peer, txData );
361 success, rxData = self.__response( self.initiator.initiator );
372 success = self.__request( self.initiator.initiator, txData );
378 if not self.initiator.peer is None:
379 success, rxData = self.__response( self.initiator.peer );
387 …success, xConfirm = self.__calcConfirm( self.initiator.peer, 0, mRand, self.pRequest, self.pRespon…
393 success = self.__request( self.initiator.peer, txData );
396 success = self.__request( self.initiator.peer, txData );
400 success, rxData = self.__response( self.initiator.initiator );
410 …success, xConfirm = self.__calcConfirm( self.initiator.initiator, 0, sRand, self.pRequest, self.pR…
416 self.__request( self.initiator.initiator, txData );
419 success, stk = self.__calcSTK( self.initiator.initiator, 0, sRand, mRand );
429 def __encryptLink(self, rand, ediv, ltk): argument
430 …status = le_start_encryption(self.transport, self.initiator.initiator, self.initiator.handles[0], …
432 event = get_event(self.transport, self.initiator.initiator, 100);
433 self.trace.trace(7, str(event));
437 if not self.initiator.peer is None:
438 success = has_event(self.transport, self.initiator.peer, 100)[0];
440 event = get_event(self.transport, self.initiator.peer, 100);
441 self.trace.trace(7, str(event));
446 …status, handle = le_long_term_key_request_reply(self.transport, self.initiator.peer, handle, toArr…
450 event = get_event(self.transport, self.initiator.peer, 100);
451 self.trace.trace(7, str(event));
455 success = has_event(self.transport, self.initiator.peer, 1000)[0];
458 event = get_event(self.transport, self.initiator.peer, 100);
459 self.trace.trace(7, str(event));
473 success = has_event(self.transport, self.initiator.initiator, 1000)[0];
476 event = get_event(self.transport, self.initiator.initiator, 100)[1:];
477 self.trace.trace(7, str(event));
496 def __sendInitiatorKeys(self, ltk, ediv, rand, irk): argument
500 success = self.__request( self.initiator.initiator, txData );
503 success = self.__request( self.initiator.initiator, txData );
507 success = self.__request( self.initiator.initiator, txData );
510 …code( SMPOpcode.SMP_IDENTITY_ADDRESS_INFORMATION, self.initiator.initiatorAddress.type, toNumber( …
511 success = self.__request( self.initiator.initiator, txData );
520 def __sendResponderKeys(self, ltk, ediv, rand, irk): argument
524 success = self.__request( self.initiator.peer, txData );
527 success = self.__request( self.initiator.peer, txData );
531 success = self.__request( self.initiator.peer, txData );
534 ….encode( SMPOpcode.SMP_IDENTITY_ADDRESS_INFORMATION, self.initiator.peerAddress.type, toNumber( se…
535 success = self.__request( self.initiator.peer, txData );
544 def __recvResponderKeys(self): argument
555 success, rxData = self.__response( self.initiator.initiator );
588 def __recvInitiatorKeys(self): argument
599 success, rxData = self.__response( self.initiator.peer );
635 def pair(self): argument
640 success, reply = self.__capabilities( authRequest );
654 self.trace.trace(6,"Both Initiator and Responder supports Secure Connections...");
656 …success, self.stk = self.__legacyPairing( self.initiator.initiatorAddress, self.initiator.peerAddr…
659 success = self.__encryptLink( 0, 0, self.stk );
663 if not self.initiator.peer is None:
664 success, ediv, rand, ltk = self.__calculateKeys( self.initiator.peer );
667 success = self.__sendResponderKeys( ltk, ediv, rand, self.IRKs );
671 …success, self.LTKs, self.EDIVs, self.RANDs, self.IRKs, address, addressType = self.__recvResponder…
675 self.trace.trace(6, "Responders LTK = 0x%032X" % self.LTKs);
676 self.trace.trace(6, "Responders EDIV = 0x%04X" % self.EDIVs);
677 self.trace.trace(6, "Responders RAND = 0x%016X" % self.RANDs);
678 self.trace.trace(6, "Responders IRK = 0x%032X" % self.IRKs);
679 … self.trace.trace(6, "Responders ADDR = %s" % formatAddress(toArray(address, 6), addressType));
681 … success, self.ediv, self.rand, self.ltk = self.__calculateKeys( self.initiator.initiator );
684 success = self.__sendInitiatorKeys( self.ltk, self.ediv, self.rand, self.IRKm );
686 self.trace.trace(6, "Initiators LTK = 0x%032X" % self.ltk);
687 self.trace.trace(6, "Initiators EDIV = 0x%04X" % self.ediv);
688 self.trace.trace(6, "Initiators RAND = 0x%016X" % self.rand);
693 if not self.initiator.peer is None:
694 … success, LTKm, EDIVm, RANDm, IRKm, address, addressType = self.__recvInitiatorKeys( );
708 def pause(self): argument
709 success = self.__encryptLink( 0, 0, self.stk );
721 def resume(self): argument