class EncryptionTests(TestCase): def setUp(self): self.pkl = EncryptingPickleSerializer() @override_settings(SECRET_KEY='', ENCRYPTED_COOKIE_KEY='') def test_empty_secret_key_not_allowed(self): with self.assertRaises(ValueError): self.pkl.dumps('summat') def test_encrypt_decrypt(self): plaintext_bytes = 'adsfasdfw34wras' encrypted = self.pkl.dumps(plaintext_bytes) self.assertNotEqual(plaintext_bytes, encrypted) decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted) def test_multiple_encrypt_decrypt(self): """ Make sure that crypto isn't invalidly reusing a same cipher object in a feedback mode (this test was for the pycrypto implementation) """ plaintext_bytes = 'adsfasdfw34wras' encrypted = self.pkl.dumps(plaintext_bytes) self.pkl.dumps('asdf') decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted) @override_settings(COMPRESS_ENCRYPTED_COOKIE=True) def test_compressed_encrypt_decrypt(self): plaintext_bytes = 'adsfasdfw34wras' encrypted = self.pkl.dumps(plaintext_bytes) self.assertNotEqual(plaintext_bytes, encrypted) decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted) def test_recover_from_uncompressed_value(self): plaintext_bytes = 'adsfasdfw34wras' with override_settings(COMPRESS_ENCRYPTED_COOKIE=False): encrypted = self.pkl.dumps(plaintext_bytes) with override_settings(COMPRESS_ENCRYPTED_COOKIE=True): # Make sure this doesn't raise an exception. decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted)
class EncryptionTests(Base): def setUp(self): self.pkl = EncryptingPickleSerializer() @override_settings(ENCRYPTED_COOKIE_KEYS=None) def test_empty_key_not_allowed(self): with self.assertRaises(ImproperlyConfigured): self.pkl.dumps('summat') def test_encrypt_decrypt(self): plaintext_bytes = 'adsfasdfw34wras' encrypted = self.pkl.dumps(plaintext_bytes) self.assertNotEqual(plaintext_bytes, encrypted) decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted) @override_settings(ENCRYPTED_COOKIE_KEYS=['nope']) def test_incorrect_key_value(self): with self.assertRaises(ValueError): self.pkl.dumps('summat') @override_settings(COMPRESS_ENCRYPTED_COOKIE=True) def test_compressed_encrypt_decrypt(self): plaintext_bytes = 'adsfasdfw34wras' encrypted = self.pkl.dumps(plaintext_bytes) self.assertNotEqual(plaintext_bytes, encrypted) decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted) def test_recover_from_uncompressed_value(self): plaintext_bytes = 'adsfasdfw34wras' with override_settings(COMPRESS_ENCRYPTED_COOKIE=False): encrypted = self.pkl.dumps(plaintext_bytes) with override_settings(COMPRESS_ENCRYPTED_COOKIE=True): # Make sure this doesn't raise an exception. decrypted = self.pkl.loads(encrypted) self.assertEqual(plaintext_bytes, decrypted)