Расчет хэшей STREEBOG256 и STREEBOG512 с использованием c ++ и openssl - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь использовать openssl для вычисления STREEBOG256 и STREEBOG512 хешей в c++.

Я могу сделать это для MD5, SHA *, RIPEMD160 и т. Д. Без проблем.Openssl определенно может сделать это через интерфейс командной строки (см. Ниже), но я не могу понять, как добавить поддержку в мою программу на c ++.Используя MD5 в качестве примера, этого можно достичь, включив заголовок openssl/md5.h, сделав вызовы MD5_Init, MD5_Update, MD5_Final и связавшись с libcrypto.

Хотя openssl перечисляет STREEBOG256 и STREEBOG512 в качестве поддерживаемых алгоритмов хеширования в приложении командной строки, я не могу найти ссылки на них в исходном коде.Там нет упоминания о STREEBOG ни в одном из тестов, которые я вижу.

Небольшое исследование показывает, что STREEBOG определен в стандарте ГОСТ Р 34.11-2012.Я подумал, что, возможно, на него ссылается его стандартное имя в источнике.Я вижу ссылки на 34.11-94, но не на 2012, так что это был тупик.

Я явно упускаю что-то очевидное здесь.Любая помощь с благодарностью.

>openssl dgst -streebog256 <myfile> 
streebog256(<myfile>)= 62c091360b1c75abcf2a4230146b1d0e752c12c89543c22ee2773b60e54fd447

>openssl dgst -streebog512 <myfile> 
streebog512(<myfile>)= af6e5261de459192028db6595299742a2f19b9ee84c821661861ad89d82a907b195aff841f2d81f91576e62c3741c59362ec2633b10c4732267f61ed5aacc7b3

1 Ответ

0 голосов
/ 01 января 2019

Как указано в комментариях, опции -streebogXXX предоставляются LibreSSL, но не OpenSSL.

Команда openssl фактически предоставляется LibreSSL вместо OpenSSL в системах, использующих ветвь LibreSSL OpenSSL.

Чтобы найти реализацию хэш-функции, следует обратиться к источникам LibreSSL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...