mirror of
https://github.com/jtesta/ssh-audit.git
synced 2025-06-22 02:33:40 +02:00
Implement mpint1 read/write. Optimize mpint writing. Test mpint1.
This commit is contained in:
@ -15,23 +15,27 @@ class TestProtocol(object):
|
||||
data = [int(v[i * 2:i * 2 + 2], 16) for i in range(len(v) // 2)]
|
||||
return bytes(bytearray(data))
|
||||
|
||||
def test_mpint2_write(self):
|
||||
wbuf, _b = self.wbuf(), self._b
|
||||
mpint = lambda x: wbuf.write_mpint2(x).write_flush()
|
||||
assert mpint(0x0) == _b('00 00 00 00')
|
||||
assert mpint(0x80) == _b('00 00 00 02 00 80')
|
||||
assert mpint(0x9a378f9b2e332a7) == _b('00 00 00 08 09 a3 78 f9 b2 e3 32 a7')
|
||||
assert mpint(-0x1234) == _b('00 00 00 02 ed cc')
|
||||
assert mpint(-0xdeadbeef) == _b('00 00 00 05 ff 21 52 41 11')
|
||||
assert mpint(-0x80) == _b('00 00 00 01 80')
|
||||
def test_mpint1(self):
|
||||
mpint1w = lambda x: self.wbuf().write_mpint1(x).write_flush()
|
||||
mpint1r = lambda x: self.rbuf(x).read_mpint1()
|
||||
tc = [(0x0, '00 00'),
|
||||
(0x1234, '00 0d 12 34'),
|
||||
(0x12345, '00 11 01 23 45')]
|
||||
for p in tc:
|
||||
assert mpint1w(p[0]) == self._b(p[1])
|
||||
assert mpint1r(self._b(p[1])) == p[0]
|
||||
|
||||
def test_mpint2_read(self):
|
||||
rbuf, _b = self.rbuf, self._b
|
||||
mpint = lambda x: rbuf(x).read_mpint2()
|
||||
assert mpint(_b('00 00 00 00')) == 0x00
|
||||
assert mpint(_b('00 00 00 02 00 80')) == 0x80
|
||||
assert mpint(_b('00 00 00 08 09 a3 78 f9 b2 e3 32 a7')) == 0x9a378f9b2e332a7
|
||||
assert mpint(_b('00 00 00 02 ed cc')) == -0x1234
|
||||
assert mpint(_b('00 00 00 05 ff 21 52 41 11')) == -0xdeadbeef
|
||||
assert mpint(_b('00 00 00 01 80')) == -0x80
|
||||
assert mpint(_b('00 00 00 02 ff 80')) == -0x80
|
||||
def test_mpint2(self):
|
||||
mpint2w = lambda x: self.wbuf().write_mpint2(x).write_flush()
|
||||
mpint2r = lambda x: self.rbuf(x).read_mpint2()
|
||||
tc = [(0x0, '00 00 00 00'),
|
||||
(0x80, '00 00 00 02 00 80'),
|
||||
(0x9a378f9b2e332a7, '00 00 00 08 09 a3 78 f9 b2 e3 32 a7'),
|
||||
(-0x1234, '00 00 00 02 ed cc'),
|
||||
(-0xdeadbeef, '00 00 00 05 ff 21 52 41 11'),
|
||||
(-0x8000, '00 00 00 02 80 00'),
|
||||
(-0x80, '00 00 00 01 80')]
|
||||
for p in tc:
|
||||
assert mpint2w(p[0]) == self._b(p[1])
|
||||
assert mpint2r(self._b(p[1])) == p[0]
|
||||
assert mpint2r(self._b('00 00 00 02 ff 80')) == -0x80
|
||||
|
Reference in New Issue
Block a user