DH_SIZE(3SSL)

πŸ’– DH_SIZE(3SSL) πŸ’–

okay bestie, welcome to DH_SIZE(3SSL) from the OpenSSL fam β€” this is the page about grabbing the Diffie-Hellman prime size and the security bits, and yes it's giving "legacy era, we don't really do this anymore" but you still gotta know it, iykyk πŸ¦‹


✨ NAME ✨

DH_size, DH_bits, DH_security_bits β€” get Diffie-Hellman prime size and security bits πŸ’…


🌸 SYNOPSIS 🌸

#include <openssl/dh.h>

So here's the tea, and it's kind of a big deal: the following functions have been deprecated since OpenSSL 3.0, and you can hide them entirely by defining OPENSSL_API_COMPAT with a suitable version value β€” check out openssl_user_macros(7) for the deets 🫢

int DH_bits(const DH *dh);

int DH_size(const DH *dh);

int DH_security_bits(const DH *dh);

πŸŽ€ DESCRIPTION πŸŽ€

lowkey all the functions on this page are deprecated. like, not me still documenting them but also telling you to move on 😭 Applications should instead use EVP_PKEY_get_bits(3), EVP_PKEY_get_security_bits(3) and EVP_PKEY_get_size(3). periodt.

DH_bits() returns the number of significant bits ✨

careful bestie: dh and dh->p must not be NULL. that's a vibe check that fails HARD, no cap.

DH_size() returns the Diffie-Hellman prime size in bytes. You can use it to figure out how much memory you need to allocate for the shared secret computed by DH_compute_key(3) πŸ’–

DH_security_bits() returns the number of security bits of the given dh key. See BN_security_bits(3) for the lore πŸ”₯


πŸ‘‘ RETURN VALUES πŸ‘‘

  • DH_bits() β€” returns the number of bits in the key, or -1 if dh doesn't hold any key parameters πŸ’€
  • DH_size() β€” returns the prime size of Diffie-Hellman in bytes, or -1 if dh doesn't hold any key parameters πŸ’€
  • DH_security_bits() β€” returns the number of security bits, or -1 if dh doesn't hold any key parameters πŸ’€
so basically if you see a -1, that's the function telling you "bestie there are no key parameters here", and honestly? valid.

🌈 SEE ALSO 🌈


πŸ¦‹ HISTORY πŸ¦‹

All functions were deprecated in OpenSSL 3.0. the way that they got retconned out of relevance fr fr πŸ’…


Copyright 2000-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>.


and that's the whole page, bestie β€” no crumbs left behind ✨ This was DH_SIZE(3SSL) from OpenSSL 4.0.3, dated 2026-09-29. slay, go forth and use EVP_PKEY instead, mwah πŸ’–πŸŽ€

πŸ“¦ where this page comes from