DH_GET_1024_160(3SSL)

πŸ’– DH_get_1024_160 πŸ’–

okay so bestie, welcome to DH_GET_1024_160(3SSL) β€” yes that's the whole manual name, it's giving "we couldn't pick just one function so we named a whole page after one of them" πŸ’…. This is the OpenSSL page for all the ✨standardized public primes✨ and DH pairs. Grab a strawberry drink πŸ“ and let's get into it.


✨ NAME ✨

DH_get_1024_160, DH_get_2048_224, DH_get_2048_256, BN_get0_nist_prime_192, BN_get0_nist_prime_224, BN_get0_nist_prime_256, BN_get0_nist_prime_384, BN_get0_nist_prime_521, BN_get_rfc2409_prime_768, BN_get_rfc2409_prime_1024, BN_get_rfc3526_prime_1536, BN_get_rfc3526_prime_2048, BN_get_rfc3526_prime_3072, BN_get_rfc3526_prime_4096, BN_get_rfc3526_prime_6144, BN_get_rfc3526_prime_8192 β€” they create standardized public primes or DH pairs. that's the whole vibe πŸ¦‹


🌸 SYNOPSIS 🌸

the ones that are still slaying:

#include <openssl/dh.h>

const BIGNUM *BN_get0_nist_prime_192(void);
const BIGNUM *BN_get0_nist_prime_224(void);
const BIGNUM *BN_get0_nist_prime_256(void);
const BIGNUM *BN_get0_nist_prime_384(void);
const BIGNUM *BN_get0_nist_prime_521(void);

BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn);
BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn);

😭 the deprecated girlies 😭

bestie, listen. 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):

#include <openssl/dh.h>

DH *DH_get_1024_160(void);
DH *DH_get_2048_224(void);
DH *DH_get_2048_256(void);
not them being hidden away like that πŸ’€ if you set OPENSSL_API_COMPAT to the right version they literally vanish, iykyk.

πŸŽ€ DESCRIPTION πŸŽ€

the deprecated trio (RIP boo πŸ‘‘)

DH_get_1024_160(), DH_get_2048_224(), and DH_get_2048_256() each return a DH object for the IETF RFC 5114 value. These functions are deprecated. πŸ’€

Applications should instead use EVP_PKEY_CTX_set_dh_rfc5114() and EVP_PKEY_CTX_set_dhx_rfc5114() as described in EVP_PKEY_CTX_ctrl(3) β€” or, alternatively, by setting the OSSL_PKEY_PARAM_GROUP_NAME as specified in "DH parameters" in EVP_PKEY-DH(7) β€” to one of "dh_1024_160", "dh_2048_224" or "dh_2048_256". ✨ like, that's the glow-up path, fr fr.

the NIST prime girlies 🧚

BN_get0_nist_prime_192(), BN_get0_nist_prime_224(), BN_get0_nist_prime_256(), BN_get0_nist_prime_384(), and BN_get0_nist_prime_521() functions return a BIGNUM for the specific NIST prime curve (e.g., P-256). πŸ’œ

the RFC 2409 / RFC 3526 girlies 🌈

BN_get_rfc2409_prime_768(), BN_get_rfc2409_prime_1024(), BN_get_rfc3526_prime_1536(), BN_get_rfc3526_prime_2048(), BN_get_rfc3526_prime_3072(), BN_get_rfc3526_prime_4096(), BN_get_rfc3526_prime_6144(), and BN_get_rfc3526_prime_8192() functions return a BIGNUM for the specified size from IETF RFC 2409.

and okay heads up: if bn is not NULL, the BIGNUM will be set into that location as well. 🫢 so cute, so convenient.


πŸ’… RETURN VALUES πŸ’…

Defined above. ✨ (yes bestie that's literally it, go look up there, the answers are all sitting in DESCRIPTION, iconic behaviour honestly)


πŸ“œ HISTORY πŸ“œ

The functions DH_get_1024_160(), DH_get_2048_224() and DH_get_2048_256() were deprecated in OpenSSL 3.0. periodt. πŸ’€


Copyright 2016-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!! 🌈✨ this was 4.0.3 of the OpenSSL era, dated 2026-09-29, and it lives at DH_GET_1024_160(3SSL) β€” get you a manual page that can do both πŸ’–πŸŽ€πŸ¦‹πŸŒΈ mwah, go use the non-deprecated ones, ily, bye!! πŸ‘‘πŸ’…

πŸ“¦ where this page comes from