コード例 #1
0
    def try_algo(self, algo):
        enc = 1
        dec = 0
        data = '123456789012345678901234'
        # Encrypt.
        mem = BIO.MemoryBuffer()
        cf = BIO.CipherStream(mem)
        cf.set_cipher(algo, 'key', 'iv', 1)
        cf.write(data)
        cf.flush()
        cf.write_close()
        cf.close()
        xxx = mem.read()

        # Decrypt.
        mem = BIO.MemoryBuffer(xxx)
        cf = BIO.CipherStream(mem)
        cf.set_cipher(algo, 'key', 'iv', 0)
        cf.write_close()
        data2 = cf.read()
        cf.close()
        assert not cf.readable()

        self.assertRaises(IOError, cf.read)
        self.assertRaises(IOError, cf.readline)
        self.assertRaises(IOError, cf.readlines)

        assert data == data2, '%s algorithm cipher test failed' % algo
コード例 #2
0
ファイル: test_bio.py プロジェクト: tayler0101/M2Crypto
    def try_algo(self, algo):
        data = b'123456789012345678901234'
        my_key = 3 * 15 * b"key"
        my_IV = 3 * 16 * b'IV'
        # Encrypt.
        mem = BIO.MemoryBuffer()
        cf = BIO.CipherStream(mem)
        cf.set_cipher(algo, my_key, my_IV, 1)
        cf.write(data)
        cf.flush()
        cf.write_close()
        cf.close()
        ciphertext = mem.read()

        # Decrypt.
        mem = BIO.MemoryBuffer(ciphertext)
        cf = BIO.CipherStream(mem)
        cf.set_cipher(algo, my_key, my_IV, 0)
        cf.write_close()
        data2 = cf.read()
        cf.close()
        self.assertFalse(cf.readable())

        with self.assertRaises(IOError):
            cf.read()
        with self.assertRaises(IOError):
            cf.readline()
        with self.assertRaises(IOError):
            cf.readlines()

        self.assertEqual(data, data2, '%s algorithm cipher test failed' % algo)