Skip to content

MDEV-39509: Fix "invalid iv length" with OpenSSL 4.0#5029

Open
9EOR9 wants to merge 1 commit into10.6from
openssl-4.0
Open

MDEV-39509: Fix "invalid iv length" with OpenSSL 4.0#5029
9EOR9 wants to merge 1 commit into10.6from
openssl-4.0

Conversation

@9EOR9
Copy link
Copy Markdown
Contributor

@9EOR9 9EOR9 commented May 2, 2026

OpenSSL 4.0 changed the behavior of EVP_CIPHER_CTX_new: It now initializes the internal iv_len with a sentinel value of -1. When calling EVP_CipherInit_ex with the cipher, key, and IV simultaneously, the provider validates the IV against this sentinel before the cipher's default metadata is applied, triggering an error.

This patch implements a two-stage initialization for OpenSSL 4.0+:

  • Call EVP_CipherInit_ex with only the cipher to "thaw" the context and set the correct default iv_len.
  • Perform a second call to provide the actual Key and IV data.

This approach ensures compatibility with OpenSSL 4.0 while avoiding EVP_CipherInit_ex2 to maintain support for FIPS mode and older versions.

OpenSSL 4.0 changed the behavior of EVP_CIPHER_CTX_new:
It now initializes the internal iv_len with a sentinel
value of -1. When calling EVP_CipherInit_ex with the
cipher, key, and IV simultaneously, the provider validates
the IV against this sentinel before the cipher's default
metadata is applied, triggering an error.

This patch implements a two-stage initialization for OpenSSL 4.0+:
- Call EVP_CipherInit_ex with only the cipher to "thaw" the
  context and set the correct default iv_len.
- Perform a second call to provide the actual Key and IV data.

This approach ensures compatibility with OpenSSL 4.0 while
avoiding EVP_CipherInit_ex2 to maintain support for FIPS mode
and older versions.
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 2, 2026

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants