Согласование реализации Python 3 blake2b со ссылочной реализацией C - PullRequest
0 голосов
/ 22 мая 2018

Я использую реализацию Pyke для Blake2b (https://docs.python.org/3/library/hashlib.html#blake2) примерно так:

>>> from hashlib import blake2b
>>>
>>> hashGenerator = blake2b()
>>> hashFN = hashGenerator.copy()
>>> hashFN.update(b'hi ho! hi ho! off to code I go...')
>>> hashFN.hexdigest()
'bd68fa3ae182a5485ae97bac10913c595358bd761a0ce91a14699907abf49dab29cba198903d80c1c25cc4b73eaa1c00d07a0c1572df04ef232cadddac8c381a'
>>>
>>> hashGenerator = blake2b(digest_size=16)
>>> hashFN = hashGenerator.copy()
>>> hashFN.update(b'hi ho! hi ho! off to code I go...')
>>> hashFN.hexdigest()
'626d821bd03ae3d7a523b04162c08468'

После загрузки и компиляции программы b2sum, включенной в код ссылки RFC 7693 (отсюда https://github.com/BLAKE2/BLAKE2), мы наблюдаем (примечание: LANG = en_US.UTF-8):

MacBookMax:b2sum jlh$ echo "hi ho! hi ho! off to code I go..." | ./b2sum -a blake2b
9b6372572a562989055fdf2837fa086c1ccc7c3c72e3d8bbb1785a0691bdd582499466d1dc6f513a4000f59c74619ca1e631a6a81f03c67a3771702e2d1b0b62  -
MacBookMax:b2sum jlh$ echo "hi ho! hi ho! off to code I go..." | ./b2sum -a blake2b -l 128
602a0bfeab058e6e5c9806a27bed4e72  -
MacBookMax:b2sum jlh$

Они не согласны ... Я пробовал разные кодировки символов и параметры методов для скрипта Python, ноЯ не могу достичь соглашения.

Поскольку я использую несколько языков для обработки одного и того же потока данных, было бы очень полезно узнать, как заставить реализацию Python согласиться с эталонной реализацией Си.

Заранее спасибо за любую помощь.

...