Skip to content

Commit 57fd106

Browse files
committed
test: add test about unencrypted PKCS#8 private key for DSA
1 parent 0a0e4c3 commit 57fd106

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIICZAIBADCCAjkGByqGSM44BAEwggIsAoIBAQC5CYW1vZHbx/Ytm+/m+oseHbre
3+
kOd40VOSybqo6Us2NysFq+46rNlnR28Lkolg4nv+XK6YTlB3XbEwbibYa1uwCuAE
4+
io/Zs2rfOpGNwp31Fg3pb8ZhFrnjmhrQhZfRT6bXXw3hvyXitjgQkwIsRL5OUYlQ
5+
CEIbf+LsogikQez2+xaYYkqUqSYdb48IkVtDTMweWslpDKUmIfH1cy0osqMC97GR
6+
8EXXvhK7sig2hhHtj+NFGA7majfEFmTd0mafZBlEFodqvkwV1q7TTMrDWgkO2lcc
7+
2DEMjZ9on9xVszRhNCGIwuFJLhWBKfNZ59X7LUxEfkelpce0Kr5eFmxwN4n3AiEA
8+
pK7pu7TqHqiIoGDmAyUm71gx3V5T3mNaih8Y/9h7dMsCggEAJNtfC6LqpU84UMz+
9+
nsxSch/ylDx1lyh3rOGZ9Wn+2tIhahI+hqDwmPeHvymzDHh2QjuXgzeZmo1753CB
10+
CtYdU0GnumSEEUUCiTBbSsX6Zy0VI4w/Qy3WV5IoXXkF9YsbkC8JhPq9jHLa5Qt5
11+
59TF+347OFso5ae+XkkZ8C112UyKnYzvniqlbj0Cb4E7FadCzSggC9c2drYE12Mx
12+
QEEbddAVNty5wpjh3Qd2y8kKPDSn4OCrSIXAL8WDXJk507RL5moqKnwis/3iPUXi
13+
U7s8QmJP4B8Mn4vDM1O0rORCmz9KXz0f5M0lw39jdA/AG0fNNz86KCFTPdXz/Iz1
14+
ThphTQQiAiAhjvXffKp1V3nMiUUUsYzS2Msn14bBFiBwSdNgitRwEA==
15+
-----END PRIVATE KEY-----

test/parallel/test-crypto-rsa-dsa.js

+30
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const dsaKeyPem = fixtures.readSync('test_dsa_privkey.pem', 'ascii');
2222
const dsaKeyPemEncrypted = fixtures.readSync('test_dsa_privkey_encrypted.pem',
2323
'ascii');
2424
const rsaPkcs8KeyPem = fixtures.readSync('test_rsa_pkcs8_privkey.pem');
25+
const dsaPkcs8KeyPem = fixtures.readSync('test_dsa_pkcs8_privkey.pem');
2526

2627
const decryptError =
2728
/^Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt$/;
@@ -258,6 +259,35 @@ assert.throws(() => {
258259
}
259260

260261

262+
//
263+
// Test DSA signing and verification with PKCS#8 private key
264+
//
265+
{
266+
const input = 'I AM THE WALRUS';
267+
268+
// DSA signatures vary across runs so there is no static string to verify
269+
// against
270+
const sign = crypto.createSign('SHA1');
271+
sign.update(input);
272+
const signature = sign.sign(dsaPkcs8KeyPem, 'hex');
273+
274+
const verify = crypto.createVerify('SHA1');
275+
verify.update(input);
276+
277+
assert.strictEqual(verify.verify(dsaPubPem, signature, 'hex'), true);
278+
279+
// Test the legacy 'DSS1' name.
280+
const sign2 = crypto.createSign('DSS1');
281+
sign2.update(input);
282+
const signature2 = sign2.sign(dsaPkcs8KeyPem, 'hex');
283+
284+
const verify2 = crypto.createVerify('DSS1');
285+
verify2.update(input);
286+
287+
assert.strictEqual(verify2.verify(dsaPubPem, signature2, 'hex'), true);
288+
}
289+
290+
261291
//
262292
// Test DSA signing and verification with encrypted key
263293
//

0 commit comments

Comments
 (0)