| 42 | | del self.session |
| | 50 | del self.pincrackdata |
| | 51 | |
| | 52 | class pincrackrunnerInternalTest(CrackTest): |
| | 53 | |
| | 54 | # pcr = crack._pincrackrunner(self.pincrackdata, self.MASTER_ADD, self.SLAVE_ADD) |
| | 55 | |
| | 56 | def testRuncrack(self): |
| | 57 | |
| | 58 | import tempfile |
| | 59 | tmpfile = tempfile.TemporaryFile() |
| | 60 | # self.pcr.runcrack(self.pincrackdata, self.MASTER_ADD, self.SLAVE_ADD, |
| | 61 | # tmpfile) |
| | 62 | self.pcr = crack._pincrackrunner(self.pincrackdata, self.MASTER_ADD, self.SLAVE_ADD) |
| | 63 | self.pcr.run() |
| | 64 | i = 0 |
| | 65 | while not self.pcr.is_done(): |
| | 66 | i += 1 |
| | 67 | if i < 3: |
| | 68 | _show("Sleep") |
| | 69 | import time |
| | 70 | time.sleep(5) |
| | 71 | pin = self.pcr.getpin() |
| | 72 | _show("testRuncrack: pin: %s" % pin) |
| | 73 | self.assertEqual(pin, '1234') |
| | 74 | |
| 46 | | pcr = crack.PinCrackRunner() |
| | 78 | def setUp(self): |
| | 79 | super(PinCrackRunnerTest, self).setUp() |
| | 80 | self.pcr = crack.PinCrackRunner(self.MASTER_ADD, self.SLAVE_ADD) |
| | 81 | lp1 = BtRaw() |
| | 82 | lp1.rawdata = self.IN_RAND |
| | 83 | lp2 = BtRaw() |
| | 84 | lp2.rawdata = self.M_COMB_KEY |
| | 85 | lp3 = BtRaw() |
| | 86 | lp3.rawdata = self.S_COMB_KEY |
| | 87 | lp4 = BtRaw() |
| | 88 | lp4.rawdata = self.M_AU_RAND |
| | 89 | lp5 = BtRaw() |
| | 90 | lp5.rawdata = self.S_AU_RAND |
| | 91 | lp6 = BtRaw() |
| | 92 | lp6.rawdata = self.M_SRES |
| | 93 | lp7 = BtRaw() |
| | 94 | lp7.rawdata = self.S_SRES |
| | 95 | self.payloads = [lp1, lp2, lp3, lp4, lp5, lp7, lp6] |
| | 96 | |
| | 97 | lh1 = LMPHeader(tid=1, op1=8) |
| | 98 | lh2 = LMPHeader(tid=1, op1=9) |
| | 99 | lh3 = LMPHeader(tid=1, op1=9) |
| | 100 | lh4 = LMPHeader(tid=1, op1=11) |
| | 101 | lh5 = LMPHeader(tid=1, op1=11) |
| | 102 | lh6 = LMPHeader(tid=1, op1=12) |
| | 103 | lh7 = LMPHeader(tid=1, op1=12) |
| | 104 | |
| | 105 | self.headers = [lh1, lh2, lh3, lh4, lh5, lh7, lh6] |
| | 106 | self.sources = ['M', 'M', 'S', 'M', 'S', 'S', 'M'] |
| | 107 | self.lmps = [] |
| | 108 | for header, payload in zip(self.headers, self.payloads): |
| | 109 | self.lmps.append(LMP(header = header, payload = payload)) |
| | 110 | |
| 48 | | def testRuncrack(self): |
| 49 | | import tempfile |
| 50 | | tmpfile = tempfile.TemporaryFile() |
| 51 | | self.pcr.runcrack(self.pincrackdata, self.session.master, self.session.slave, |
| 52 | | tmpfile).wait() |
| 53 | | self.assertEqual(self.pcr.getpin(), '1234') |
| | 112 | def test_try_crack(self): |
| | 113 | for i, lmp in zip(range(len(self.lmps)), self.lmps): |
| | 114 | _show('LMP %d' % i) |
| | 115 | if self.pcr.try_crack(lmp, True if self.sources[i] == 'M' else False): |
| | 116 | pin = self.pcr.getpin() |
| | 117 | _show('try_crack_test: Done! Pin: %s' % pin) |
| | 118 | self.assertEqual(pin, '1234') |
| | 119 | else: |
| | 120 | time.sleep(1) |
| | 121 | # First time failed |
| | 122 | # Keep trying for 30 seconds |
| | 123 | if self.pcr.pincrackdata is not None: |
| | 124 | _show("test_try_crack: pincrackdata ready") |
| | 125 | self.assertEqual(self.pincrackdata.in_rand, self.pcr.pincrackdata.in_rand) |
| | 126 | self.assertEqual(self.pincrackdata.s_comb_key, self.pcr.pincrackdata.s_comb_key) |
| | 127 | self.assertEqual(self.pincrackdata.m_comb_key, self.pcr.pincrackdata.m_comb_key) |
| | 128 | self.assertEqual(self.pincrackdata.s_au_rand, self.pcr.pincrackdata.s_au_rand) |
| | 129 | self.assertEqual(self.pincrackdata.m_au_rand, self.pcr.pincrackdata.m_au_rand) |
| | 130 | self.assertEqual(self.pincrackdata.m_sres, self.pcr.pincrackdata.m_sres) |
| | 131 | self.assertEqual(self.pincrackdata.s_sres, self.pcr.pincrackdata.s_sres) |