LINUX.ORG.RU

Просветите насчёт hmac в openssl

 ,


0

1

Пытаюсь заставить openssl заставить считать hmac для разных хэш-функций. И вроде всё идёт неплохо, но есть тонкости.

Во первых, вот официальное руководство:

https://www.openssl.org/docs/manmaster/crypto/hmac.html

Я смотрю и никак не могу понять, какой интерфейс считается deprecated?

Через HMAC_Init_ex() хэшировать хоть петабайт можно. Но это, типа, устарело, пользуйтесь единой функцией HMAC()?

Как через последнюю получить хэш для пустого ключа и данных? В википедии приводятся образцы, те же результаты выдают всякие online-калькуляторы на JavaScript. Но если я передаю в функцию null, null и нули в качестве длины ключа и данных, то на выходе получаю нифига. Результирующий буфер как был заполнен нулями, так и остаётся...

★★★★★

Последнее исправление: atrus (всего исправлений: 1)

ничего не знаю про Openssl, но 1) может все-таки взять libressl/boringssl и 2) передавать вместо null пустые строки или массивы нулевой длины?

phoenix ★★★★
()

Так, вопрос частично снят. Deprecated HMAC_Init(), а не HMAC_Init_ex().

atrus ★★★★★
() автор топика
Ответ на: комментарий от phoenix

передавать вместо null пустые строки

Похоже, вы правы. Залез в исходники, а там...

if <...> (key == NULL || len < 0) <...>
        return 0;

Зла просто нехватает. Какое мудло так пишет? Если длина 0, то какое тебе дело, что там дальше по коду? Тем более, что дальше всё равно «if (md != NULL)».

:(

atrus ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.