root/branch/BTSniff/tests/testcrack.py @ 5143

Revision 5143, 2.2 kB (checked in by qsy, 4 years ago)

Added simple testing harness; makes use of nosetests. Tests PinCrackRunner? in module crack

Line 
1
2
3import unittest
4
5import umit.bluetooth.sniff as sniff
6import umit.bluetooth.crack as crack
7import umit.bluetooth.sniffcommon as sniffcommon
8
9class CrackTest(unittest.TestCase):
10    '''Test internal functions of crack'''
11   
12    MASTER_ADD = [0x00, 0x1b, 0xaf, 0xaf, 0x84, 0x9e]
13    SLAVE_ADD = [0x00, 0x1b, 0xaf, 0xaf, 0x96, 0xa4]
14    IN_RAND = [0xb4, 0xf6, 0x89, 0xce, 0x76, 0x91, 0x15, 0x96, 0x49, 0x7f, 0x99,
15                   0xdf, 0x93, 0xc4, 0x79, 0x32]
16    M_COMB_KEY = [0x00, 0xa7, 0x61, 0x01, 0x10, 0x52, 0x0b, 0x21, 0x2f, 0x20, 0x50,
17                      0x04, 0xac, 0x04, 0xce, 0x5a]
18    S_COMB_KEY = [0x44, 0x9c, 0xe7, 0x36, 0x26, 0xe8, 0xdc, 0x1a, 0xb1, 0x00, 0x2b,
19                      0x70, 0xa9, 0x88, 0x69, 0x53]
20    M_AU_RAND = [0x13, 0x8d, 0xfb, 0xb7, 0x68, 0x8a, 0x49, 0xd1, 0xac, 0xa3, 0xc6, 0x74,
21                     0xe1, 0xe1, 0x9b, 0xd5]
22    S_AU_RAND = [0x0e, 0xfa, 0xd5, 0x21, 0x1a, 0x35, 0x03, 0x20, 0xd9, 0xfc, 0x14,
23                     0xfe, 0x41, 0xe9,  0xab, 0x23]
24    M_SRES = [0x89, 0xef, 0x46, 0x6e]
25    S_SRES = [0xa6, 0x78, 0xdf, 0x62]
26
27    def setUp(self):
28        self.session = sniffcommon.SniffSession(sniff.State(), 
29                                                self.MASTER_ADD, 
30                                                self.SLAVE_ADD, 
31                                                'hci0', None) 
32        self.pincrackdata = sniffcommon.PinCrackData()
33        self.pincrackdata.in_rand  = self.IN_RAND
34        self.pincrackdata.m_comb_key = self.M_COMB_KEY
35        self.pincrackdata.s_comb_key = self.S_COMB_KEY
36        self.pincrackdata.m_au_rand = self.M_AU_RAND
37        self.pincrackdata.s_au_rand = self.S_AU_RAND
38        self.pincrackdata.m_sres = self.M_SRES
39        self.pincrackdata.s_sres = self.S_SRES
40       
41    def tearDown(self):
42        del self.session
43
44class PinCrackRunnerTest(CrackTest):
45   
46    pcr = crack.PinCrackRunner()
47   
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')
54
55
56
57if __name__ == "__main__":
58    unittest.main()
Note: See TracBrowser for help on using the browser.