mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-27 01:48:17 +00:00
41 lines
1.9 KiB
Python
41 lines
1.9 KiB
Python
from common import *
|
|
|
|
from trezor.crypto import rfc6979
|
|
from trezor.crypto.hashlib import sha256
|
|
|
|
|
|
class TestCryptoRfc6979(unittest.TestCase):
|
|
|
|
def test_vectors(self):
|
|
|
|
vectors = [
|
|
("c9afa9d845ba75166b5c215767b1d6934e50c3db36e89b127b8a622b120f6721",
|
|
"sample",
|
|
"a6e3c57dd01abe90086538398355dd4c3b17aa873382b0f24d6129493d8aad60"),
|
|
("cca9fbcc1b41e5a95d369eaa6ddcff73b61a4efaa279cfc6567e8daa39cbaf50",
|
|
"sample",
|
|
"2df40ca70e639d89528a6b670d9d48d9165fdc0febc0974056bdce192b8e16a3"),
|
|
("0000000000000000000000000000000000000000000000000000000000000001",
|
|
"Satoshi Nakamoto",
|
|
"8f8a276c19f4149656b280621e358cce24f5f52542772691ee69063b74f15d15"),
|
|
("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",
|
|
"Satoshi Nakamoto",
|
|
"33a19b60e25fb6f4435af53a3d42d493644827367e6453928554f43e49aa6f90"),
|
|
("f8b8af8ce3c7cca5e300d33939540c10d45ce001b8f252bfbc57ba0342904181",
|
|
"Alan Turing", "525a82b70e67874398067543fd84c83d30c175fdc45fdeee082fe13b1d7cfdf1"),
|
|
("0000000000000000000000000000000000000000000000000000000000000001",
|
|
"All those moments will be lost in time, like tears in rain. Time to die...",
|
|
"38aa22d72376b4dbc472e06c3ba403ee0a394da63fc58d88686c611aba98d6b3"),
|
|
("e91671c46231f833a6406ccbea0e3e392c76c167bac1cb013f6f1013980455c2",
|
|
"There is a computer disease that anybody who works with computers knows about. It's a very serious disease and it interferes completely with the work. The trouble with computers is that you 'play' with them!",
|
|
"1f4b84c23a86a221d233f2521be018d9318639d5b8bbd6374a8a59232d16ad3d"),
|
|
]
|
|
|
|
for key, msg, k in vectors:
|
|
rng = rfc6979(unhexlify(key), sha256(msg).digest())
|
|
self.assertEqual(rng.next(), unhexlify(k))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|