|
@@ -9,7 +9,7 @@ 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
|
|
|
-index 91cb94d8dbe9db0adbee5e005649188e1ccbcbf9..c3d12dc4cc18888815ff5e2c30a21974322d1faf 100644
|
|
|
+index 91cb94d8dbe9db0adbee5e005649188e1ccbcbf9..2000c789d9daac835c0ecc1e4144179575c9b502 100644
|
|
|
--- a/src/node_crypto.cc
|
|
|
+++ b/src/node_crypto.cc
|
|
|
@@ -5192,11 +5192,11 @@ bool DiffieHellman::Init(int primeLength, int g) {
|
|
@@ -48,18 +48,16 @@ index 91cb94d8dbe9db0adbee5e005649188e1ccbcbf9..c3d12dc4cc18888815ff5e2c30a21974
|
|
|
return false;
|
|
|
}
|
|
|
BIGNUM* bn_p =
|
|
|
-@@ -5718,8 +5718,9 @@ void ECDH::SetPrivateKey(const FunctionCallbackInfo<Value>& args) {
|
|
|
-
|
|
|
+@@ -5719,7 +5719,7 @@ 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
|
|
|
+
|
|
|
+- EC_KEY_copy(ecdh->key_.get(), new_key.get());
|
|
|
++ ecdh->key_.reset(EC_KEY_dup(new_key.get()));
|
|
|
ecdh->group_ = EC_KEY_get0_group(ecdh->key_.get());
|
|
|
}
|
|
|
|
|
|
-@@ -6207,6 +6208,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
+@@ -6207,6 +6207,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
EVPKeyCtxPointer Setup() override {
|
|
|
EVPKeyPointer params;
|
|
|
if (prime_info_.fixed_value_) {
|
|
@@ -67,7 +65,7 @@ index 91cb94d8dbe9db0adbee5e005649188e1ccbcbf9..c3d12dc4cc18888815ff5e2c30a21974
|
|
|
DHPointer dh(DH_new());
|
|
|
if (!dh)
|
|
|
return nullptr;
|
|
|
-@@ -6223,6 +6225,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
+@@ -6223,6 +6224,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
params = EVPKeyPointer(EVP_PKEY_new());
|
|
|
CHECK(params);
|
|
|
EVP_PKEY_assign_DH(params.get(), dh.release());
|
|
@@ -75,7 +73,7 @@ index 91cb94d8dbe9db0adbee5e005649188e1ccbcbf9..c3d12dc4cc18888815ff5e2c30a21974
|
|
|
} else {
|
|
|
EVPKeyCtxPointer param_ctx(EVP_PKEY_CTX_new_id(EVP_PKEY_DH, nullptr));
|
|
|
if (!param_ctx)
|
|
|
-@@ -6230,7 +6233,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
+@@ -6230,7 +6232,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
|
|
|
if (EVP_PKEY_paramgen_init(param_ctx.get()) <= 0)
|
|
|
return nullptr;
|
|
@@ -84,7 +82,7 @@ index 91cb94d8dbe9db0adbee5e005649188e1ccbcbf9..c3d12dc4cc18888815ff5e2c30a21974
|
|
|
if (EVP_PKEY_CTX_set_dh_paramgen_prime_len(param_ctx.get(),
|
|
|
prime_info_.prime_size_) <= 0)
|
|
|
return nullptr;
|
|
|
-@@ -6238,7 +6241,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
+@@ -6238,7 +6240,7 @@ class DHKeyPairGenerationConfig : public KeyPairGenerationConfig {
|
|
|
if (EVP_PKEY_CTX_set_dh_paramgen_generator(param_ctx.get(),
|
|
|
generator_) <= 0)
|
|
|
return nullptr;
|