Commit 91c4436158c for nodejs

commit 91c4436158c615b0e3bb1b6a02c2c85eea0d1adf
Author: Filip Skokan <panva.ip@gmail.com>
Date:   Sat Oct 24 15:45:23 2026 +0200

    crypto: fix builds with older OpenSSL 3.0

    Ubuntu 22.04's default libssl-dev still lacks EVP_PKEY_PRIVATE_KEY
    even when fully updated. Provide the OpenSSL 3.0.12 definition when
    the headers do not define it so --shared-openssl builds work.

    Fixes: https://github.com/nodejs/node/issues/66926
    Signed-off-by: Filip Skokan <panva.ip@gmail.com>
    Assisted-by: Codex
    PR-URL: https://github.com/nodejs/node/pull/66931
    Reviewed-By: Richard Lau <richard.lau@ibm.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    Reviewed-By: Tim Perry <pimterry@gmail.com>

diff --git a/deps/ncrypto/ncrypto.cc b/deps/ncrypto/ncrypto.cc
index d35d601abc7..a48b953dc1b 100644
--- a/deps/ncrypto/ncrypto.cc
+++ b/deps/ncrypto/ncrypto.cc
@@ -43,6 +43,13 @@
                     nullptr)
 #endif

+// Ubuntu 22.04's default libssl-dev still lacks EVP_PKEY_PRIVATE_KEY when
+// fully updated. The macro was added upstream in OpenSSL 3.0.12.
+#if NCRYPTO_USE_OPENSSL3_PROVIDER && !defined(EVP_PKEY_PRIVATE_KEY)
+#define EVP_PKEY_PRIVATE_KEY                                                   \
+  (EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PRIVATE_KEY)
+#endif
+
 namespace ncrypto {
 namespace {
 using BignumCtxPointer = DeleteFnPtr<BN_CTX, BN_CTX_free>;