crypto: fix Node_SignFinal · nodejs/node@10a7035

@@ -132,8 +132,8 @@ test_rsa('RSA_PKCS1_PADDING');

132132

test_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');

137137

assert.ok(rsaSign);

138138

assert.ok(rsaVerify);

139139

@@ -152,19 +152,19 @@ rsaVerify.update(rsaPubPem);

152152

assert.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');

156156

rsaSign.update(rsaPubPem);

157157

assert.doesNotThrow(() => {

158158

const signOptions = { key: rsaKeyPemEncrypted, passphrase: 'password' };

159159

rsaSignature = rsaSign.sign(signOptions, 'hex');

160160

});

161161

assert.strictEqual(rsaSignature, expectedSignature);

162162163-

rsaVerify = crypto.createVerify('RSA-SHA1');

163+

rsaVerify = crypto.createVerify('SHA1');

164164

rsaVerify.update(rsaPubPem);

165165

assert.strictEqual(rsaVerify.verify(rsaPubPem, rsaSignature, 'hex'), true);

166166167-

rsaSign = crypto.createSign('RSA-SHA1');

167+

rsaSign = crypto.createSign('SHA1');

168168

rsaSign.update(rsaPubPem);

169169

assert.throws(() => {

170170

const 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');

192192

sign.update(input);

193193194194

const output = sign.sign(privateKey, 'hex');

195195

assert.strictEqual(signature, output);

196196197-

const verify = crypto.createVerify('RSA-SHA256');

197+

const verify = crypto.createVerify('SHA256');

198198

verify.update(input);

199199200200

assert.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');

213225

sign.update(input);

214226

const signature = sign.sign(dsaKeyPem, 'hex');

215227216-

const verify = crypto.createVerify('DSS1');

228+

const verify = crypto.createVerify('SHA1');

217229

verify.update(input);

218230219231

assert.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(() => {

226248

const input = 'I AM THE WALRUS';

227249228250

{

229-

const sign = crypto.createSign('DSS1');

251+

const sign = crypto.createSign('SHA1');

230252

sign.update(input);

231253

assert.throws(() => {

232254

sign.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');

240262

sign.update(input);

241263242264

let signature;

@@ -245,7 +267,7 @@ const input = 'I AM THE WALRUS';

245267

signature = sign.sign(signOptions, 'hex');

246268

});

247269248-

const verify = crypto.createVerify('DSS1');

270+

const verify = crypto.createVerify('SHA1');

249271

verify.update(input);

250272251273

assert.strictEqual(verify.verify(dsaPubPem, signature, 'hex'), true);