EVP_MAC-SIPHASH(7ossl)
π EVP_MAC-SIPHASH π
okay so this is the Siphash EVP_MAC implementation page, from the 7ossl manual fam β like, this is the doc you read when you need to know how to do Siphash MACs the OpenSSL way π«Ά
β¨ NAME β¨
EVP_MAC-Siphash β the Siphash EVP_MAC implementation, bestie. that's it, that's the whole thing π
π¦ DESCRIPTION π¦
So basically this is all about computing Siphash MACs through the EVP_MAC API. iconic behavior, no cap β¨
π Identity π
This implementation is identified with this name and these properties, and you use them with EVP_MAC_fetch():
"SIPHASH", "provider=default"
that's your vibe check right there β those exact strings, don't freestyle them π
πΈ Supported parameters πΈ
The general description of these parameters lives over in "PARAMETERS" in EVP_MAC(3) β go read that for the full lore, iykyk.
All of these parameters can be set with EVP_MAC_CTX_set_params(). And extra: the "size" parameter can also be retrieved with EVP_MAC_CTX_get_params(), or with EVP_MAC_CTX_get_mac_size(). oh, and the length of the "size" parameter should not exceed that of a size_t β tiny detail, but it matters, so don't come for me π
"key"(OSSL_MAC_PARAM_KEY) <octet string> β sets the MAC key. setting this parameter is identical to passing a key toEVP_MAC_init(3), so it's literally the same thing, just a different doorway πͺ"size"(OSSL_MAC_PARAM_SIZE) <unsigned integer> β sets the MAC size. yes, size matters π"c-rounds"(OSSL_MAC_PARAM_C_ROUNDS) <unsigned integer> β specifies the number of rounds per message block. by default this is2βοΈ"d-rounds"(OSSL_MAC_PARAM_D_ROUNDS) <unsigned integer> β specifies the number of finalisation rounds. by default this is4π
π₯ SEE ALSO π₯
EVP_MAC_CTX_get_params(3), EVP_MAC_CTX_set_params(3), "PARAMETERS" in EVP_MAC(3), OSSL_PARAM(3)
like, go read these next, they're the supporting cast and they ate π
π COPYRIGHT π
Copyright 2018-2021 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>.
fr fr read the license before you go wild with it, that's not a suggestion π
aaaand that's the page!! slay π this was version 3.5.9, dated 2026-09-29, and the doc is EVP_MAC-SIPHASH(7ossl) β mwah, go forth and hash, bestie ππ§ββοΈπ
π¦ 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