DH_SIZE(3ossl)

๐Ÿ’– DH_SIZE(3ossl) โ€” the OpenSSL girlies' guide ๐Ÿ’–

okay so bestie, you're in the OpenSSL manual, and today's episode is all about the DH prime-size trio: DH_size, DH_bits, and DH_security_bits. it's giving "measurement era". let's go ๐Ÿซถ


โœจ NAME โœจ

DH_size, DH_bits, DH_security_bits โ€” get Diffie-Hellman prime size and security bits ๐Ÿ”ข


โœจ SYNOPSIS โœจ

#include <openssl/dh.h>

The following functions have been deprecated since OpenSSL 3.0, and can be hidden entirely by defining OPENSSL_API_COMPAT with a suitable version value, see openssl_user_macros(7):

int DH_bits(const DH *dh);

int DH_size(const DH *dh);

int DH_security_bits(const DH *dh);

โœจ DESCRIPTION โœจ

๐Ÿšจ the functions described on this page are deprecated. Applications should instead use EVP_PKEY_get_bits(3), EVP_PKEY_get_security_bits(3) and EVP_PKEY_get_size(3). no cap, that's the glow-up. ๐Ÿ’…

DH_bits() returns the number of significant bits. โœจ

dh and dh->p must not be NULL. literally do not do that. ๐Ÿ™ˆ

DH_size() returns the Diffie-Hellman prime size in bytes. It can be used to determine how much memory must be allocated for the shared secret computed by DH_compute_key(3). so like, it's your lil memory-budget calculator ๐Ÿงฎ

DH_security_bits() returns the number of security bits of the given dh key. See BN_security_bits(3). ๐Ÿ”


โœจ 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 get a -1, it's not a vibe โ€” it means dh has no key parameters. ๐Ÿ’€


โœจ SEE ALSO โœจ

EVP_PKEY_get_bits(3), DH_new(3), DH_generate_key(3), BN_num_bits(3) ๐ŸŒˆ


โœจ HISTORY โœจ

All functions were deprecated in OpenSSL 3.0. iconic behaviour, unfortunately the bad kind ๐Ÿ˜ญ


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 tea โ˜• this page is from the OpenSSL 3.5.9 manual, dated 2026-09-29, filed under DH_SIZE(3ossl). mwah ๐Ÿ’‹ go read EVP_PKEY_get_size(3) instead, bestie, your future self will thank you ๐Ÿ’œ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from