示例#1
0
 def setUp(self):
     self.listenAddr = ("127.0.0.1", getValidAddr()[1])
     password = randomPwd()
     self.cipher = Cipher.NewCipher(password)
     self.loop = asyncio.new_event_loop()
     self.server = Server(loop=self.loop,
                          pwd=password,
                          listenAddr=self.listenAddr)
示例#2
0
 def setUp(self):
     self.ls_local, self.ls_server = socket.socketpair()
     password = randomPwd()
     self.loop = asyncio.new_event_loop()
     self.cipher = Cipher.NewCipher(password)
     self.securesocket = SecureSocket(loop=self.loop, cipher=self.cipher)
     self.msg = bytearray(b"hello world")
     self.encripted_msg = self.msg.copy()
     self.cipher.encode(self.encripted_msg)
示例#3
0
    def test_dumps_and_loads_fail(self):
        password = randomPwd()
        password[random.randint(1, 255)] = 0
        with self.assertRaises(InvalidPasswordErr):
            dumpsPwd(password)

        string = base64.encodebytes(password).decode("utf8", errors="strict")
        with self.assertRaises(InvalidPasswordErr):
            loadsPwd(string)

        password = randomPwd()
        password = password[:-2]
        with self.assertRaises(InvalidPasswordErr):
            dumpsPwd(password)

        string = dumpsPwd(IDENTITY_PASSWORD)
        string = string[:-3]
        with self.assertRaises(InvalidPasswordErr):
            loadsPwd(string)
示例#4
0
def run_server():
    loop = asyncio.get_event_loop()
    listenAddr = ("0.0.0.0", 8388)
    pwd = randomPwd()
    server = Server(loop=loop, pwd=pwd, listenAddr=listenAddr)

    def didListen(address):
        print("Listen to %s:%d\n" % address)
        print(f"password is {dumpsPwd(pwd)}")

    asyncio.ensure_future(server.listen(didListen))
    loop.run_forever()
示例#5
0
    def test_encryption(self):
        password = randomPwd()
        original_data = bytearray()
        for _ in range(0xFFFF):
            original_data.append(random.randint(0, 255))
        cipher = Cipher.NewCipher(password)
        data = original_data.copy()

        cipher.encode(data)
        self.assertNotEqual(data, original_data)
        cipher.decode(data)
        self.assertEqual(data, original_data)
示例#6
0
 def setUp(self):
     self.listenAddr = ("127.0.0.1", 11111)
     self.remoteAddr = ("127.0.0.1", 22222)
     self.remoteServer = socket.socket()
     self.remoteServer.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
     self.remoteServer.bind(self.remoteAddr)
     self.remoteServer.listen(socket.SOMAXCONN)
     self.remoteServer.setblocking(False)
     pwd = randomPwd()
     self.cipher = Cipher.NewCipher(pwd)
     self.loop = asyncio.new_event_loop()
     self.local = Local(
         loop=self.loop,
         pwd=pwd,
         listenAddr=self.listenAddr,
         remoteAddr=self.remoteAddr,
     )
     self.msg = bytearray(b"hello world")
     self.encrypted_msg = self.msg.copy()
     self.cipher.encode(self.encrypted_msg)
示例#7
0
 def test_dumps_and_loads_succeed(self):
     password = randomPwd()
     string = dumpsPwd(password)
     loaded_password = loadsPwd(string)
     self.assertEqual(password, loaded_password)
示例#8
0
 def test_randomPassword(self):
     for idx in range(0xFF):
         with self.subTest(idx):
             password = randomPwd()
             isValid = validatePwd(password)
             self.assertTrue(isValid)