EVP_SIGNATURE-HMAC(7ossl)
π EVP_SIGNATURE-HMAC: the legacy MAC-signature situation (OpenSSL, bestie)
okay so you're looking at EVP_SIGNATURE-HMAC(7ossl) β that's the OpenSSL manual page, and it covers a whole little squad of algorithms. Buckle up π
β¨ NAME β¨
EVP_SIGNATURE-HMAC, EVP_SIGNATURE-Siphash, EVP_SIGNATURE-Poly1305, EVP_SIGNATURE-CMAC β these are the legacy EVP_PKEY MAC signature implementations. That's the whole vibe. They're the old-school crew π«Ά
πΈ DESCRIPTION πΈ
So here's the tea β β the algorithms on this page have legacy support for creating MACs using EVP_DigestSignInit(3) and its related functions.
β οΈ But listen. This is not the preferred way of creating MACs. Not even close, bestie. Instead you should use the newer EVP_MAC_init(3) functions. The legacy path is literally just hanging around for backwards compatibility with older versions of OpenSSL. It's giving "still invited to the party but only because it's been there since the beginning" π
The same signature parameters can be set using EVP_PKEY_CTX_set_params() as can be set via EVP_MAC_CTX_set_params() for the underlying EVP_MAC. Slay, consistency β¨
Peep these for the deets:
And if you want the details about parameters that are supported during the creation of an EVP_PKEY, go look at:
π the FIPS tea (HMAC & CMAC only, iykyk)
For HMAC and CMAC, the OpenSSL FIPS provider also makes the following parameter available with EVP_PKEY_CTX_get_params(3):
"fips-indicator"(OSSL_SIGNATURE_PARAM_FIPS_APPROVED_INDICATOR) <integer> β returns1if the operation is FIPS approved, or0otherwise. Like a vibe check but for compliance π See"FIPS indicators"infips_module(7)for more information.
π¦ SEE ALSO π¦
okay here's the whole friend group, go say hi π
EVP_MAC_init(3)EVP_DigestSignInit(3)EVP_PKEY-HMAC(7)EVP_PKEY-Siphash(7)EVP_PKEY-Poly1305(7)EVP_PKEY-CMAC(7)EVP_MAC-HMAC(7)EVP_MAC-Siphash(7)EVP_MAC-Poly1305(7)EVP_MAC-CMAC(7)provider-signature(7)
(yes, with a trailing comma, that's just how the original rolls π )
π COPYRIGHT π
Copyright 2020-2026 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
and that's the page, bestie π§β¨ it's version 3.5.9, dated 2026-09-29, and yeah β EVP_SIGNATURE-HMAC(7ossl) said what it said. go use EVP_MAC_init(3), ily, bye ππ
π¦ where this page comes from
- alpine 3.23: openssl-doc 3.5.9-r0 Β· Apache-2.0
- alpine 3.24: openssl-doc 3.5.9-r0 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms