EVP_MD-SHA1(7SSL)
π EVP_MD-SHA1 β the SHA1 glow-up, explained
okay bestie, come sit with me, because this is the manual page for EVP_MD-SHA1 (that's the OpenSSL one, manual name EVP_MD-SHA1(7SSL) if you're doing citations for your little assignment π), and it's literally just the SHA1 EVP_MD implementation. That's the name section, that's the whole vibe, no notes. β¨
π DESCRIPTION π
So here's the tea: this is the support for computing SHA1 digests through the EVP_MD API. That's it, that's the job, and it does it flawlessly. πββοΈ
πͺͺ Identities πͺͺ
This implementation is out here living its double life β it's available with the FIPS provider and the default provider, like a girl who's in two friend groups and thriving in both. π«Ά
And it answers to two names, both of them iconic:
"SHA1""SHA-1"
(the hyphen is giving β¨aestheticβ¨, ngl)
π Gettable Parameters π
This implementation supports the common gettable parameters described over in EVP_MD-common(7). So if you want the deets on those, that's your page, go drink from that fountain. π
ποΈ Settable Context Parameters ποΈ
Now THIS is the part with the plot twist. This implementation supports the following OSSL_PARAM(3) entries, and you set them for an EVP_MD_CTX with EVP_MD_CTX_set_params(3):
"ssl3-ms"(OSSL_DIGEST_PARAM_SSL3_MS)<octet string>β okay so this one is set bylibsslto calculate a signature hash for an SSLv3CertificateVerifymessage, as per RFC6101. And no cap, there's a very specific order here: it is only set after all handshake messages have already been digested viaOP_digest_update()calls. Don't skip ahead bestie, the sequence matters. π
The parameter provides the master secret value to be added to the digest. The digest implementation should calculate the complete digest as per RFC6101 section 5.6.8. And then β listen, listen β the next call after setting this parameter should be OP_digest_final(). That's the rule. That's literally the rule. π
π fr fr: setting this thing and then doing something other thanOP_digest_final()next is not the move. The page says the next call should beOP_digest_final(), so like... do that. Periodt.
π SEE ALSO π
Go read these too, they're all part of the same little universe:
Β©οΈ COPYRIGHT Β©οΈ
Copyright 2020 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, bestie! πΈ mwah π this was EVP_MD-SHA1(7SSL) from OpenSSL 4.0.3, dated 2026-09-29 β slay, go compute some digests responsibly πβ¨π
π¦ where this page comes from
- ubuntu stonking: openssl 4.0.3-1ubuntu1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms