def test_aes_homomorphic(self): """Make sure AES is homomorphic.""" payload = u'\u66f4\u7a33\u5b9a\u7684\u4ea4\u6613\u5e73\u53f0' password = u'secret' for version in SUPPORTED_PW_HASH_VERSIONS: enc = crypto.pw_encode(payload, password, version=version) dec = crypto.pw_decode(enc, password, version=version) self.assertEqual(dec, payload)
def test_aes_decode_with_invalid_password(self): """pw_decode raises an Exception when supplied an invalid password.""" payload = u"blah" password = u"uber secret" wrong_password = u"not the password" for version in SUPPORTED_PW_HASH_VERSIONS: enc = crypto.pw_encode(payload, password, version=version) with self.assertRaises(InvalidPassword): crypto.pw_decode(enc, wrong_password, version=version)
def test_aes_encode_without_password(self): """When not passed a password, pw_encode is noop on the payload.""" payload = u'\u66f4\u7a33\u5b9a\u7684\u4ea4\u6613\u5e73\u53f0' for version in SUPPORTED_PW_HASH_VERSIONS: enc = crypto.pw_encode(payload, None, version=version) self.assertEqual(payload, enc)