diff --git a/core/tests/test_trezor.crypto.tropic.py b/core/tests/test_trezor.crypto.tropic.py new file mode 100644 index 0000000000..ce7c5dec60 --- /dev/null +++ b/core/tests/test_trezor.crypto.tropic.py @@ -0,0 +1,37 @@ +from common import * # isort:skip + +from slip39_vectors import vectors +from trezor.crypto import tropic + + +class TestCryptoTropic(unittest.TestCase): + def test_ping(self): + self.assertEqual(tropic.ping("HeLlO!"), "HeLlO!") + + def test_get_certificate(self): + self.assertEqual(len(tropic.get_certificate()), 512) + + def test_get_random(self): + self.assertEqual(len(tropic.random_get(10)), 10) + + def test_sign(self): + try: + tropic.sign(0, "ASD") + assert False + except ValueError as e: + self.assertIn("invalid length", str(e).lower()) + + # signing needs to fail because we don't have a key! + try: + tropic.sign(0, "a" * 32) + assert False + except tropic.TropicError as e: + self.assertIn("sign failed", str(e).lower()) + + tropic.key_generate(0) + + # signing should work now that we have a key + self.assertEqual(len(tropic.sign(0, "a" * 32)), 64) + +if __name__ == "__main__": + unittest.main()