EVP_MAC-POLY1305(7SSL)

πŸ’– EVP_MAC-POLY1305 πŸ’–

okay bestie, so this is the OpenSSL manual page for EVP_MAC-Poly1305, living in section 7SSL. It's short, it's sweet, and it's literally the whole tea on the Poly1305 MAC implementation. Let's get into it 🫢


✨ NAME ✨

EVP_MAC-Poly1305 β€” the Poly1305 EVP_MAC implementation. that's it, that's the name πŸ’…


🌸 DESCRIPTION 🌸

So basically this page is all about support for computing Poly1305 MACs through the EVP_MAC API. iconic API, very demure, very mindful ✨

πŸŽ€ Identity

This implementation is identified with this name and properties, and you're gonna use it with EVP_MAC_fetch():

"POLY1305", "provider=default"

that's its whole government name, no cap πŸ‘‘

πŸ¦‹ Supported parameters

The general description of these parameters lives in "PARAMETERS" in EVP_MAC(3). Go read that for the big picture, fr fr.

The following parameter can be set with EVP_MAC_CTX_set_params():

  • "key" (OSSL_MAC_PARAM_KEY) <octet string> β€” sets the MAC key. Setting this parameter is identical to passing a key to EVP_MAC_init(3). same energy, different doorway πŸšͺ

The following parameters can be retrieved with EVP_MAC_CTX_get_params():

  • "size" (OSSL_MAC_PARAM_SIZE) <unsigned integer> β€” gets the MAC size. she's just telling you how big she is πŸ’…

The "size" parameter can also be retrieved with EVP_MAC_CTX_get_mac_size(). And heads up: the length of the "size" parameter should not exceed that of an unsigned int. that's the rule, don't test it πŸ™ˆ


πŸ’€ NOTES πŸ’€

The OpenSSL implementation of the Poly 1305 MAC corresponds to RFC 7539. slay πŸ‡ΊπŸ‡³

CRITICAL, bestie, I am so serious right now: it is critical to never reuse the key. The security implication noted in RFC 8439 applies equally to the OpenSSL implementation. Reuse the key and you're not the main character anymore, you're the cautionary tale 😭

πŸ‘‘ SEE ALSO πŸ‘‘


Copyright 2018-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 whole page, periodt πŸŽ€ this was OpenSSL version 4.0.3, dated 2026-09-29, page EVP_MAC-POLY1305(7SSL) β€” don't reuse your keys, drink water, ily bye πŸ’œβœ¨

πŸ“¦ where this page comes from