DH_NEW_BY_NID(3ossl)

πŸ’– DH_NEW_BY_NID πŸ’–

okay bestie, we're doing a whole page from the OpenSSL manual set β€” this one is DH_new_by_nid(3ossl), and it's about named DH parameters. yes, Diffie-Hellman, we love her, we respect her, and honestly? she's lowkey deprecated now. let's get into it 🫢


✨ NAME ✨

DH_new_by_nid, DH_get_nid β€” create or get DH named parameters 🌸


✨ SYNOPSIS ✨

#include <openssl/dh.h>

okay so heads up: 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 β€” go peek at openssl_user_macros(7) for the deets πŸ’…

DH *DH_new_by_nid(int nid);

int DH_get_nid(const DH *dh);

✨ DESCRIPTION ✨

πŸ¦‹ DH_new_by_nid()

she creates and returns a DH structure containing named parameters nid. that's it, that's the job πŸ’–

currently nid must be one of these, no substitutions, no vibes-based guessing:

  • NID_ffdhe2048
  • NID_ffdhe3072
  • NID_ffdhe4096
  • NID_ffdhe6144
  • NID_ffdhe8192
  • NID_modp_1536
  • NID_modp_2048
  • NID_modp_3072
  • NID_modp_4096
  • NID_modp_6144
  • NID_modp_8192

like, that's the whole guest list, bestie πŸŽ€

πŸ¦‹ DH_get_nid()

this one looks at the parameters sitting inside dh and is like "hmm, do I know you?" β€” she determines if they match any named safe prime group 🌈

she returns the NID corresponding to the matching parameters, or NID_undef if there's no match. simple as that ✨

🚨 and yes, this function is deprecated. saying it again so it sticks πŸ’€

✨ RETURN VALUES ✨

  • DH_new_by_nid() returns a set of DH parameters, or NULL if an error occurred 😭
  • DH_get_nid() returns the NID of the matching set of parameters for p and g and optionally q, otherwise it returns NID_undef if there is no match πŸ™ˆ

✨ HISTORY ✨

all of these functions were deprecated in OpenSSL 3.0. the way that the entire page is basically a farewell tour πŸ˜­πŸ’œ


Copyright 2017-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!! this was DH_NEW_BY_NID(3ossl) from the OpenSSL docs β€” version 3.5.9, dated 2026-09-29 ✨ go forth and use named parameters responsibly, ily, mwah πŸ’…πŸ’–πŸ¦‹

πŸ“¦ where this page comes from