crypto: fix Node_SignFinal · nodejs/node@10a7035
@@ -132,8 +132,8 @@ test_rsa('RSA_PKCS1_PADDING');
132132test_rsa('RSA_PKCS1_OAEP_PADDING');
133133134134// Test RSA key signing/verification
135-let rsaSign = crypto.createSign('RSA-SHA1');
136-let rsaVerify = crypto.createVerify('RSA-SHA1');
135+let rsaSign = crypto.createSign('SHA1');
136+let rsaVerify = crypto.createVerify('SHA1');
137137assert.ok(rsaSign);
138138assert.ok(rsaVerify);
139139@@ -152,19 +152,19 @@ rsaVerify.update(rsaPubPem);
152152assert.strictEqual(rsaVerify.verify(rsaPubPem, rsaSignature, 'hex'), true);
153153154154// Test RSA key signing/verification with encrypted key
155-rsaSign = crypto.createSign('RSA-SHA1');
155+rsaSign = crypto.createSign('SHA1');
156156rsaSign.update(rsaPubPem);
157157assert.doesNotThrow(() => {
158158const signOptions = { key: rsaKeyPemEncrypted, passphrase: 'password' };
159159rsaSignature = rsaSign.sign(signOptions, 'hex');
160160});
161161assert.strictEqual(rsaSignature, expectedSignature);
162162163-rsaVerify = crypto.createVerify('RSA-SHA1');
163+rsaVerify = crypto.createVerify('SHA1');
164164rsaVerify.update(rsaPubPem);
165165assert.strictEqual(rsaVerify.verify(rsaPubPem, rsaSignature, 'hex'), true);
166166167-rsaSign = crypto.createSign('RSA-SHA1');
167+rsaSign = crypto.createSign('SHA1');
168168rsaSign.update(rsaPubPem);
169169assert.throws(() => {
170170const signOptions = { key: rsaKeyPemEncrypted, passphrase: 'wrong' };
@@ -188,16 +188,28 @@ assert.throws(() => {
188188'8195e0268da7eda23d9825ac43c724e86ceeee0d0d4465678652ccaf6501' +
189189'0ddfb299bedeb1ad';
190190191-const sign = crypto.createSign('RSA-SHA256');
191+const sign = crypto.createSign('SHA256');
192192sign.update(input);
193193194194const output = sign.sign(privateKey, 'hex');
195195assert.strictEqual(signature, output);
196196197-const verify = crypto.createVerify('RSA-SHA256');
197+const verify = crypto.createVerify('SHA256');
198198verify.update(input);
199199200200assert.strictEqual(verify.verify(publicKey, signature, 'hex'), true);
201+202+// Test the legacy signature algorithm name.
203+const sign2 = crypto.createSign('RSA-SHA256');
204+sign2.update(input);
205+206+const output2 = sign2.sign(privateKey, 'hex');
207+assert.strictEqual(signature, output2);
208+209+const verify2 = crypto.createVerify('SHA256');
210+verify2.update(input);
211+212+assert.strictEqual(verify2.verify(publicKey, signature, 'hex'), true);
201213}
202214203215@@ -209,14 +221,24 @@ assert.throws(() => {
209221210222// DSA signatures vary across runs so there is no static string to verify
211223// against
212-const sign = crypto.createSign('DSS1');
224+const sign = crypto.createSign('SHA1');
213225sign.update(input);
214226const signature = sign.sign(dsaKeyPem, 'hex');
215227216-const verify = crypto.createVerify('DSS1');
228+const verify = crypto.createVerify('SHA1');
217229verify.update(input);
218230219231assert.strictEqual(verify.verify(dsaPubPem, signature, 'hex'), true);
232+233+// Test the legacy 'DSS1' name.
234+const sign2 = crypto.createSign('DSS1');
235+sign2.update(input);
236+const signature2 = sign2.sign(dsaKeyPem, 'hex');
237+238+const verify2 = crypto.createVerify('DSS1');
239+verify2.update(input);
240+241+assert.strictEqual(verify2.verify(dsaPubPem, signature2, 'hex'), true);
220242}
221243222244@@ -226,7 +248,7 @@ assert.throws(() => {
226248const input = 'I AM THE WALRUS';
227249228250{
229-const sign = crypto.createSign('DSS1');
251+const sign = crypto.createSign('SHA1');
230252sign.update(input);
231253assert.throws(() => {
232254sign.sign({ key: dsaKeyPemEncrypted, passphrase: 'wrong' }, 'hex');
@@ -236,7 +258,7 @@ const input = 'I AM THE WALRUS';
236258{
237259// DSA signatures vary across runs so there is no static string to verify
238260// against
239-const sign = crypto.createSign('DSS1');
261+const sign = crypto.createSign('SHA1');
240262sign.update(input);
241263242264let signature;
@@ -245,7 +267,7 @@ const input = 'I AM THE WALRUS';
245267signature = sign.sign(signOptions, 'hex');
246268});
247269248-const verify = crypto.createVerify('DSS1');
270+const verify = crypto.createVerify('SHA1');
249271verify.update(input);
250272251273assert.strictEqual(verify.verify(dsaPubPem, signature, 'hex'), true);