Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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())
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    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())
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
    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))
Exemplo n.º 12
0
    def test_create_with_too_long_name(self):
        srp_extension = SRPExtension()

        with self.assertRaises(ValueError):
            srp_extension = srp_extension.create(bytearray(b'a'*256))
Exemplo n.º 13
0
    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))
Exemplo n.º 14
0
    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)
Exemplo n.º 15
0
    def test_create_with_too_long_name(self):
        srp_extension = SRPExtension()

        with self.assertRaises(ValueError):
            srp_extension = srp_extension.create(bytearray(b'a' * 256))
Exemplo n.º 16
0
    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)