Skip to content

Conversation

@igaw
Copy link
Collaborator

@igaw igaw commented Sep 16, 2025

linux: use EVP_PKEY_CTX_add1_hkdf_info only once in compat function

OpenSSL prior to 3.3.1 had an issue with EVP_PKEY_CTX_add1_hkdf_info()
where it acted like a 'set1' function instead of an 'add1' as
documented. Work around that by building the entire info vector outside
of the OpenSSL API and only calling this function once.

This is the same workaround used in commit eff0ffe ("linux: fix
HKDF TLS key derivation back to OpenSSL 3.0.8").

Signed-off-by: Daniel Wagner wagi@kernel.org

Fixes: #1053

hreinecke and others added 2 commits September 16, 2025 18:12
Newer GCC complain about 'digest' being an empty argument, which
is technically true, but in practice can only happen if version == 0,
which we already check. So add a warning to keep GCC happy.

Signed-off-by: Hannes Reinecke <hare@suse.de>
OpenSSL prior to 3.3.1 had an issue with EVP_PKEY_CTX_add1_hkdf_info()
where it acted like a 'set1' function instead of an 'add1' as
documented.  Work around that by building the entire info vector outside
of the OpenSSL API and only calling this function once.

This is the same workaround used in commit eff0ffe ("linux: fix
HKDF TLS key derivation back to OpenSSL 3.0.8").

Signed-off-by: Daniel Wagner <wagi@kernel.org>
The EVP_PKEY_CTX_add1_hkdf_info implementation had a bug in the past
which made it behave like a set instead of add function. When linking
against external builds warn about it. The libnvme implementation works
around this problem, but it's better to have this logged during the
configure step, so there is chance to debug this.

Signed-off-by: Daniel Wagner <wagi@kernel.org>
@igaw igaw merged commit c804c2f into linux-nvme:master Sep 17, 2025
12 checks passed
@hreinecke
Copy link
Collaborator

Thanks for doing this!

@bkuhls bkuhls mentioned this pull request Nov 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TLS key generation not comptiable with OpenSSL 3.0.x LTS.

2 participants