def test_parse(self): srp_extension = SRPExtension() p = Parser(bytearray(b'\x00')) srp_extension = srp_extension.parse(p) self.assertEqual(bytearray(0), srp_extension.identity)
def test_create(self): srp_extension = SRPExtension() srp_extension = srp_extension.create() self.assertEqual(None, srp_extension.identity) self.assertEqual(12, srp_extension.ext_type) self.assertEqual(bytearray(0), srp_extension.ext_data)
def test_create(self): srp_extension = SRPExtension() srp_extension = srp_extension.create() self.assertIsNone(srp_extension.identity) self.assertEqual(12, srp_extension.extType) self.assertEqual(bytearray(0), srp_extension.extData)
def test_parse(self): srp_extension = SRPExtension() p = Parser(bytearray(b'\x08' + b'username')) srp_extension = srp_extension.parse(p) self.assertEqual(bytearray(b'username'), srp_extension.identity)
def test_parse_with_length_long_by_one(self): srp_extension = SRPExtension() p = Parser(bytearray( b'\x09' + b'username')) with self.assertRaises(SyntaxError): srp_extension = srp_extension.parse(p)
def test_create_with_name(self): srp_extension = SRPExtension() srp_extension = srp_extension.create(bytearray(b'username')) self.assertEqual(bytearray(b'username'), srp_extension.identity) self.assertEqual(bytearray( b'\x08' + # length of string - 8 bytes b'username'), srp_extension.ext_data)
def test_write(self): srp_extension = SRPExtension() srp_extension = srp_extension.create(bytearray(b'username')) self.assertEqual(bytearray( b'\x00\x0c' + # type of extension - SRP (12) b'\x00\x09' + # length of extension - 9 bytes b'\x08' + # length of encoded name b'username'), srp_extension.write())
def test_create_with_name(self): srp_extension = SRPExtension() srp_extension = srp_extension.create(bytearray(b'username')) self.assertEqual(bytearray(b'username'), srp_extension.identity) self.assertEqual( bytearray(b'\x08' + # length of string - 8 bytes b'username'), srp_extension.extData)
def test_write(self): srp_extension = SRPExtension() srp_extension = srp_extension.create(bytearray(b'username')) self.assertEqual( bytearray(b'\x00\x0c' + # type of extension - SRP (12) b'\x00\x09' + # length of extension - 9 bytes b'\x08' + # length of encoded name b'username'), srp_extension.write())
def test_parse_with_SRP_extension(self): p = Parser( bytearray( # we don't include the type of message as it is handled by the # hello protocol parser #b'x01' + # type of message - client_hello b'\x00' * 2 + b'\x35' + # length - 53 bytes b'\x01\x01' + # protocol version - arbitrary (invalid) b'\x00' * 32 + # client random b'\x00' + # session ID length b'\x00' * 2 + # cipher suites length b'\x00' + # compression methods length b'\x00\x0d' + # extensions length - 13 bytes b'\x00\x0c' + # extension type - SRP (12) b'\x00\x09' + # extension length - 9 bytes b'\x08' + # length of name - 8 bytes b'username' # UTF-8 encoding of "username" :) )) client_hello = ClientHello() client_hello = client_hello.parse(p) self.assertEqual((1, 1), client_hello.client_version) self.assertEqual(bytearray(32), client_hello.random) self.assertEqual(bytearray(0), client_hello.session_id) self.assertEqual([], client_hello.cipher_suites) self.assertEqual([], client_hello.compression_methods) self.assertEqual(bytearray(b'username'), client_hello.srp_username) srp = SRPExtension().create(bytearray(b'username')) self.assertEqual([srp], client_hello.extensions)
def test___repr__(self): srp_extension = SRPExtension() srp_extension = srp_extension.create(bytearray(b'user')) self.assertEqual("SRPExtension(identity=bytearray(b'user'))", repr(srp_extension))
def test_create_with_too_long_name(self): srp_extension = SRPExtension() with self.assertRaises(ValueError): srp_extension = srp_extension.create(bytearray(b'a'*256))
def test_parse_with_length_long_by_one(self): srp_extension = SRPExtension() p = Parser(bytearray(b'\x09' + b'username')) with self.assertRaises(SyntaxError): srp_extension = srp_extension.parse(p)
def test_create_with_too_long_name(self): srp_extension = SRPExtension() with self.assertRaises(ValueError): srp_extension = srp_extension.create(bytearray(b'a' * 256))
def test___init___(self): srp_extension = SRPExtension() self.assertEqual(None, srp_extension.identity) self.assertEqual(12, srp_extension.extType) self.assertEqual(bytearray(0), srp_extension.extData)