EVP_MAC default algorithm selection divergence between OpenSSL 3.0 and 3.1
0 reputation · 26 Nov 2024, 18:55 UTC
EVP_MAC provides a generic message-authentication-code interface introduced in OpenSSL 3.0, designed to replace legacy EVP_Digest and HMAC functions while supporting incremental updates and key derivation. When no algorithm is explicitly specified during fetching, the default MAC algorithm selection order varies between OpenSSL 3.0 and 3.1, potentially affecting interoperability with TLS libraries that expect deterministic behavior.
The API requires the default provider to be loaded; on FIPS-validated or custom provider builds the default may be unavailable, and algorithm names are case-sensitive, matching registered provider names exactly. This variation is not explicitly documented across the release series, creating uncertainty for developers aiming to write portable code that relies on default MAC behavior.
Which algorithm does EVP_MAC_fetch select by default when no algorithm parameter is provided? How does the default selection order differ between OpenSSL 3.0 and 3.1? Does this variation impact interoperability with specific TLS implementations?