2020-06-17 22:57:12 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
|
|
Date: Wed, 27 May 2020 13:02:13 -0700
|
|
|
|
Subject: fix: comment out incompatible crypto modules
|
|
|
|
|
|
|
|
Node.js introduced some functionality in https://github.com/nodejs/node/pull/32739
|
|
|
|
and https://github.com/nodejs/node/pull/31178 that is not currently compatible
|
|
|
|
with what's exposed through BoringSSL. I plan to upstream parts of this or
|
|
|
|
otherwise introduce shims to reduce friction.
|
|
|
|
|
|
|
|
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
|
2020-09-17 22:08:57 +00:00
|
|
|
index c87b00ad87cf133ed30227b8dfd3b8e8d02e9963..0e8a63c38b23ede2003d8dabc1f72161726b53a6 100644
|
2020-06-17 22:57:12 +00:00
|
|
|
--- a/src/node_crypto.cc
|
|
|
|
+++ b/src/node_crypto.cc
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -5187,6 +5187,7 @@ bool DiffieHellman::Init(int primeLength, int g) {
|
2020-06-17 22:57:12 +00:00
|
|
|
|
|
|
|
bool DiffieHellman::Init(const char* p, int p_len, int g) {
|
|
|
|
dh_.reset(DH_new());
|
|
|
|
+#if 0
|
|
|
|
if (p_len <= 0) {
|
|
|
|
BNerr(BN_F_BN_GENERATE_PRIME_EX, BN_R_BITS_TOO_SMALL);
|
|
|
|
return false;
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -5195,6 +5196,7 @@ bool DiffieHellman::Init(const char* p, int p_len, int g) {
|
2020-06-17 22:57:12 +00:00
|
|
|
DHerr(DH_F_DH_BUILTIN_GENPARAMS, DH_R_BAD_GENERATOR);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
+#endif
|
|
|
|
BIGNUM* bn_p =
|
|
|
|
BN_bin2bn(reinterpret_cast<const unsigned char*>(p), p_len, nullptr);
|
|
|
|
BIGNUM* bn_g = BN_new();
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -5210,6 +5212,7 @@ bool DiffieHellman::Init(const char* p, int p_len, int g) {
|
2020-06-17 22:57:12 +00:00
|
|
|
|
|
|
|
bool DiffieHellman::Init(const char* p, int p_len, const char* g, int g_len) {
|
|
|
|
dh_.reset(DH_new());
|
|
|
|
+#if 0
|
|
|
|
if (p_len <= 0) {
|
|
|
|
BNerr(BN_F_BN_GENERATE_PRIME_EX, BN_R_BITS_TOO_SMALL);
|
|
|
|
return false;
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -5232,6 +5235,7 @@ bool DiffieHellman::Init(const char* p, int p_len, const char* g, int g_len) {
|
2020-06-17 22:57:12 +00:00
|
|
|
BN_free(bn_g);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
+#endif
|
|
|
|
return VerifyContext();
|
|
|
|
}
|
|
|
|
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -5714,8 +5718,9 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo<Value>& args) {
|
|
|
|
|
|
|
|
if (!EC_KEY_set_public_key(new_key.get(), pub.get()))
|
|
|
|
return env->ThrowError("Failed to set generated public key");
|
|
|
|
-
|
|
|
|
+#if 0
|
|
|
|
EC_KEY_copy(ecdh->key_.get(), new_key.get());
|
|
|
|
+#endif
|
|
|
|
ecdh->group_ = EC_KEY_get0_group(ecdh->key_.get());
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -6203,6 +6208,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
2020-06-17 22:57:12 +00:00
|
|
|
EVPKeyCtxPointer Setup() override {
|
|
|
|
EVPKeyPointer params;
|
|
|
|
if (prime_info_.fixed_value_) {
|
|
|
|
+#if 0
|
|
|
|
DHPointer dh(DH_new());
|
|
|
|
if (!dh)
|
|
|
|
return nullptr;
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -6219,6 +6225,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
2020-06-17 22:57:12 +00:00
|
|
|
params = EVPKeyPointer(EVP_PKEY_new());
|
|
|
|
CHECK(params);
|
|
|
|
EVP_PKEY_assign_DH(params.get(), dh.release());
|
|
|
|
+#endif
|
|
|
|
} else {
|
|
|
|
EVPKeyCtxPointer param_ctx(EVP_PKEY_CTX_new_id(EVP_PKEY_DH, nullptr));
|
|
|
|
if (!param_ctx)
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -6226,7 +6233,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
2020-06-17 22:57:12 +00:00
|
|
|
|
|
|
|
if (EVP_PKEY_paramgen_init(param_ctx.get()) <= 0)
|
|
|
|
return nullptr;
|
|
|
|
-
|
|
|
|
+#if 0
|
|
|
|
if (EVP_PKEY_CTX_set_dh_paramgen_prime_len(param_ctx.get(),
|
|
|
|
prime_info_.prime_size_) <= 0)
|
|
|
|
return nullptr;
|
2020-09-17 22:08:57 +00:00
|
|
|
@@ -6234,7 +6241,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
2020-06-17 22:57:12 +00:00
|
|
|
if (EVP_PKEY_CTX_set_dh_paramgen_generator(param_ctx.get(),
|
|
|
|
generator_) <= 0)
|
|
|
|
return nullptr;
|
|
|
|
-
|
|
|
|
+#endif
|
|
|
|
EVP_PKEY* raw_params = nullptr;
|
|
|
|
if (EVP_PKEY_paramgen(param_ctx.get(), &raw_params) <= 0)
|
|
|
|
return nullptr;
|