Я пытаюсь использовать 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