DH_GET_1024_160(3ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

πŸ’… DH_GET_1024_160 β€” the 3ossl manual, bestie edition ✨

okay so this page is literally your one-stop shop for the standardized public primes and DH pairs β€” like, the pre-baked, nobody-had-to-do-the-math-themselves numbers. And yes, some of these are deprecated, so pay attention, iykyk 🫢


🌸 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 β€” Create standardized public primes or DH pairs πŸ’–


✨ SYNOPSIS ✨

#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);
⚠️ heads up bestie β€” the next three are deprecated since OpenSSL 3.0, and you can make them vanish entirely by defining OPENSSL_API_COMPAT with a suitable version value. see openssl_user_macros(7) for the deets πŸ‘‘
#include <openssl/dh.h>

DH *DH_get_1024_160(void);
DH *DH_get_2048_224(void);
DH *DH_get_2048_256(void);

πŸ¦‹ DESCRIPTION πŸ¦‹

so DH_get_1024_160(), DH_get_2048_224(), and DH_get_2048_256() each return a DH object for the IETF RFC 5114 value. but these functions are deprecated, bestie 😭 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 set 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". it's giving "glow up your API usage" ✨

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() return a BIGNUM for the specific NIST prime curve (e.g., P-256). iconic, no cap πŸ’…

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() return a BIGNUM for the specified size from IETF RFC 2409. πŸŽ€ and listen β€” if bn is not NULL, the BIGNUM will be set into that location as well. convenient fr fr 🫢


πŸ’œ RETURN VALUES πŸ’œ

Defined above. that's it, that's the section 😌 (look up, it's all in DESCRIPTION πŸ‘€)


🌈 HISTORY 🌈

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


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 OpenSSL 3.5.0, dated 2026-09-25, page DH_GET_1024_160(3ossl) β€” slay, go forth and pick your primes responsibly πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from