Как использовать OpenSSL 1.1.1 для реализации HDF-Extract? - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь реализовать части QUIC RFC, и они отмечают:

   initial_salt = 0xc3eef712c72ebb5a11a7d2432bb46365bef9f502
   initial_secret = HKDF-Extract(initial_salt,
                                 client_dst_connection_id)

Мне было просто интересно, как можно сопоставить это здесь: https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_CTX_set_hkdf_md.html

Iполучить это:

EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY В этом режиме вызов EVP_PKEY_derive (3) будет просто выполнять операцию извлечения. Возвращаемым значением будет промежуточный псевдослучайный ключ фиксированной длины K.

Значения дайджеста, ключа и соли должны быть установлены до получения ключа или возникновения ошибки.

НоЯ запутался здесь. Я вижу, как установить режим, алгоритм, соль, но я потерял, где установить client_dst_connection_id.

1 Ответ

1 голос
/ 01 октября 2019

HKDF описан в RFC5869, который определяет операцию HKDF-Extract следующим образом:

HKDF-Extract (соль, IKM) -> PRK

Опции: Хэш-функция хеширования;HashLen обозначает длину вывода хеш-функции в октетах

Входные данные: солт необязательное значение соли (не секретное случайное значение);если не указано иное, для него устанавливается строка из нулей HashLen. Материал ввода IKM

Вывод: PRK псевдослучайный ключ (из октетов HashLen)

Итак, вторым параметром (в данном случае client_dst_connection_id) является «материал ввода ввода».

На странице справки OpenSSL, на которую вы ссылаетесь, вы можете увидеть, что материал ключа можно установить с помощью EVP_PKEY_CTX_set1_hkdf_key().

Обратите внимание, что на странице справки также указано следующее для EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY:

Значения дайджеста, ключа и соли должны быть установлены до получения ключа или возникновения ошибки.

Таким образом, значения ключа и соли понятны. Вам также необходимо указать используемый дайджест через EVP_PKEY_CTX_set_hkdf_md()

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