cubicweb/test/unittest_crypto.py
author Jérémy Bobbio <jeremy.bobbio@irq7.fr>
Wed, 19 Jun 2019 18:43:38 +0200
changeset 12682 da36da3f89f1
parent 12615 7abe23cbfda1
permissions -rw-r--r--
[tests] Use 16 bytes key when testing Blowfish The version of Cryptodome currently in Debian only accepts Blowfish keys with at least 5 bytes. This is a bug (it should accept 4 as it did before) that has since been fixed upstream: https://github.com/Legrandin/pycryptodome/commit/93912230f3c39e09f4038cb17e301468687c6538 So we work around this issue by using a 16 bytes key instead (which happens to be the minimum recommended length).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12615
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     1
from unittest import TestCase
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     2
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     3
from cubicweb import crypto
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     4
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     5
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     6
class CryptoTC(TestCase):
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     7
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     8
    def test_encrypt_decrypt_roundtrip(self):
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     9
        data = {'a': u'ah', 'b': [1, 2]}
12682
da36da3f89f1 [tests] Use 16 bytes key when testing Blowfish
Jérémy Bobbio <jeremy.bobbio@irq7.fr>
parents: 12615
diff changeset
    10
        seed = 's' * 16
12615
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    11
        crypted = crypto.encrypt(data, seed)
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    12
        decrypted = crypto.decrypt(crypted, seed)
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    13
        self.assertEqual(decrypted, data)
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    14
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    15
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    16
if __name__ == '__main__':
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    17
    import unittest
7abe23cbfda1 Make crypto module python3-compatible
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    18
    unittest.main()