summaryrefslogtreecommitdiff
path: root/test/fixtures/0-dns
diff options
context:
space:
mode:
authorDavid Benjamin <davidben@google.com>2017-09-09 18:41:56 -0400
committerRuben Bridgewater <ruben@bridgewater.de>2017-09-11 00:18:02 -0300
commit6ebdb69472beaabe4d3aac7f66e1f83b196278af (patch)
treeb1704c5fc47200c27b322e5ab9d34a557b94aee9 /test/fixtures/0-dns
parentfc1fa4e2c49aa060b97b139ff02b5be8037dba94 (diff)
downloadandroid-node-v8-6ebdb69472beaabe4d3aac7f66e1f83b196278af.tar.gz
android-node-v8-6ebdb69472beaabe4d3aac7f66e1f83b196278af.tar.bz2
android-node-v8-6ebdb69472beaabe4d3aac7f66e1f83b196278af.zip
crypto: fix Node_SignFinal
PR #11705 switched Node away from using using OpenSSL's legacy EVP_Sign* and EVP_Verify* APIs. Instead, it computes a hash normally via EVP_Digest* and then uses EVP_PKEY_sign and EVP_PKEY_verify to verify the hash directly. This change corrects two problems: 1. The documentation still recommends the signature algorithm EVP_MD names of OpenSSL's legacy APIs. OpenSSL has since moved away from thosee, which is why ECDSA was strangely inconsistent. (This is why "ecdsa-with-SHA256" was missing.) 2. Node_SignFinal copied some code from EVP_SignFinal's internals. This is problematic for OpenSSL 1.1.0 and is missing a critical check that prevents pkey->pkey.ptr from being cast to the wrong type. To resolve this, remove the non-EVP_PKEY_sign codepath. This codepath is no longer necessary. PR #11705's verify half was already assuming all EVP_PKEYs supported EVP_PKEY_sign and EVP_PKEY_verify. Also, in the documentation, point users towards using hash function names which are more consisent. This avoids an ECDSA special-case and some strangeness around RSA-PSS ("RSA-SHA256" is the OpenSSL name of the sha256WithRSAEncryption OID which is not used for RSA-PSS). PR-URL: https://github.com/nodejs/node/pull/15024 Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test/fixtures/0-dns')
-rw-r--r--test/fixtures/0-dns/create-cert.js4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/fixtures/0-dns/create-cert.js b/test/fixtures/0-dns/create-cert.js
index 7a353906e4..9a72104887 100644
--- a/test/fixtures/0-dns/create-cert.js
+++ b/test/fixtures/0-dns/create-cert.js
@@ -8,7 +8,7 @@ const BN = asn1.bignum;
const id_at_commonName = [ 2, 5, 4, 3 ];
const rsaEncryption = [1, 2, 840, 113549, 1, 1, 1];
const sha256WithRSAEncryption = [1, 2, 840, 113549, 1, 1, 11];
-const sigalg = 'RSA-SHA256';
+const digest = 'SHA256';
const private_key = fs.readFileSync('./0-dns-key.pem');
// public key file can be generated from the private key with
@@ -59,7 +59,7 @@ const tbs = {
const tbs_der = rfc5280.TBSCertificate.encode(tbs, 'der');
-const sign = crypto.createSign(sigalg);
+const sign = crypto.createSign(digest);
sign.update(tbs_der);
const signature = sign.sign(private_key);