Skip to content

Commit 828b786

Browse files
stefanmbFishrock123
authored andcommitted
test: add test for invalid DSA key size
Check that invalid DSA key sizes are rejected in FIPS mode. PR-URL: #3756 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Shigeki Ohtsu <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 7a290ab commit 828b786

File tree

5 files changed

+67
-1
lines changed

5 files changed

+67
-1
lines changed

test/fixtures/keys/Makefile

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem
1+
all: agent1-cert.pem agent2-cert.pem agent3-cert.pem agent4-cert.pem agent5-cert.pem ca2-crl.pem ec-cert.pem dh512.pem dh1024.pem dh2048.pem dsa1025.pem dsa_private_1025.pem dsa_public_1025.pem rsa_private_1024.pem rsa_private_2048.pem rsa_private_4096.pem rsa_public_1024.pem rsa_public_2048.pem rsa_public_4096.pem
22

33

44
#
@@ -267,6 +267,15 @@ dh1024.pem:
267267
dh2048.pem:
268268
openssl dhparam -out dh2048.pem 2048
269269

270+
dsa1025.pem:
271+
openssl dsaparam -out dsa1025.pem 1025
272+
273+
dsa_private_1025.pem:
274+
openssl gendsa -out dsa_private_1025.pem dsa1025.pem
275+
276+
dsa_public_1025.pem:
277+
openssl dsa -in dsa_private_1025.pem -pubout -out dsa_public_1025.pem
278+
270279
rsa_private_1024.pem:
271280
openssl genrsa -out rsa_private_1024.pem 1024
272281

test/fixtures/keys/dsa1025.pem

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-----BEGIN DSA PARAMETERS-----
2+
MIIBLgKBiQCtjGXOH3Rq+lM09nwe6nbShOduCyfjgZhgMZ2WfY6PYLW3gNnhNYT7
3+
88rZbECcyKlyzRApFgs9KMfiqWfWIhQn+FmolmeUNdRXpmkGyJAqY63GobI8S1Jn
4+
xYbwdH7PsV1IwM56ylrnpdUDhSH7+Y95rgEIUXX9OHS503gzFFEHCmQl1/RS7Qxp
5+
AhUApmbNUvRisdjnyjhDK6RO3pafN90CgYhQLHJ+qq+nxLX/lqQL/tCFY3P6DlYc
6+
3ezT3Ic+3GhEMMXMBMJ+WRmRkCW5vh1grQyLVa/MLWvYgNkoUAO8eGElcloUero8
7+
m5Tp3bFArEqb8rJXWYM1sAlnl/Y0uFpw1AyHLuZC26z+SSeDbV9REtz14EknkFXk
8+
su4QN55ZQKoiBv2cFDMsIf9b
9+
-----END DSA PARAMETERS-----
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN DSA PRIVATE KEY-----
2+
MIIB0QIBAAKBiQCtjGXOH3Rq+lM09nwe6nbShOduCyfjgZhgMZ2WfY6PYLW3gNnh
3+
NYT788rZbECcyKlyzRApFgs9KMfiqWfWIhQn+FmolmeUNdRXpmkGyJAqY63GobI8
4+
S1JnxYbwdH7PsV1IwM56ylrnpdUDhSH7+Y95rgEIUXX9OHS503gzFFEHCmQl1/RS
5+
7QxpAhUApmbNUvRisdjnyjhDK6RO3pafN90CgYhQLHJ+qq+nxLX/lqQL/tCFY3P6
6+
DlYc3ezT3Ic+3GhEMMXMBMJ+WRmRkCW5vh1grQyLVa/MLWvYgNkoUAO8eGElcloU
7+
ero8m5Tp3bFArEqb8rJXWYM1sAlnl/Y0uFpw1AyHLuZC26z+SSeDbV9REtz14Ekn
8+
kFXksu4QN55ZQKoiBv2cFDMsIf9bAoGHFPpl8uRj7sNjsnIPPI9CuqlIoZXFNXeM
9+
X9Yu7T3s5mn5Q2ATcgnryDXwqpqle630wy1LZjjmtyE84oVJd4W6YTlzHNwIv2ql
10+
ymMzWBE5+BrRXtqIndvkaWJRSUwtZ7XPPeeCzqR5uXRAsy54azoFDoisuOO5dVOm
11+
VZERfp4Up+Duvws5+Gq2AhQlmsEI+CInYqsDR2ha+UcwXmGJSg==
12+
-----END DSA PRIVATE KEY-----
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MIIBzTCCATsGByqGSM44BAEwggEuAoGJAK2MZc4fdGr6UzT2fB7qdtKE524LJ+OB
3+
mGAxnZZ9jo9gtbeA2eE1hPvzytlsQJzIqXLNECkWCz0ox+KpZ9YiFCf4WaiWZ5Q1
4+
1FemaQbIkCpjrcahsjxLUmfFhvB0fs+xXUjAznrKWuel1QOFIfv5j3muAQhRdf04
5+
dLnTeDMUUQcKZCXX9FLtDGkCFQCmZs1S9GKx2OfKOEMrpE7elp833QKBiFAscn6q
6+
r6fEtf+WpAv+0IVjc/oOVhzd7NPchz7caEQwxcwEwn5ZGZGQJbm+HWCtDItVr8wt
7+
a9iA2ShQA7x4YSVyWhR6ujyblOndsUCsSpvysldZgzWwCWeX9jS4WnDUDIcu5kLb
8+
rP5JJ4NtX1ES3PXgSSeQVeSy7hA3nllAqiIG/ZwUMywh/1sDgYsAAoGHFPpl8uRj
9+
7sNjsnIPPI9CuqlIoZXFNXeMX9Yu7T3s5mn5Q2ATcgnryDXwqpqle630wy1LZjjm
10+
tyE84oVJd4W6YTlzHNwIv2qlymMzWBE5+BrRXtqIndvkaWJRSUwtZ7XPPeeCzqR5
11+
uXRAsy54azoFDoisuOO5dVOmVZERfp4Up+Duvws5+Gq2
12+
-----END PUBLIC KEY-----
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'use strict';
2+
var common = require('../common');
3+
var assert = require('assert');
4+
5+
if (!common.hasFipsCrypto) {
6+
console.log('1..0 # Skipped: node compiled without FIPS OpenSSL.');
7+
return;
8+
}
9+
10+
var crypto = require('crypto');
11+
var fs = require('fs');
12+
13+
var input = 'hello';
14+
15+
var dsapub = fs.readFileSync(common.fixturesDir +
16+
'/keys/dsa_public_1025.pem');
17+
var dsapri = fs.readFileSync(common.fixturesDir +
18+
'/keys/dsa_private_1025.pem');
19+
var sign = crypto.createSign('DSS1');
20+
sign.update(input);
21+
22+
assert.throws(function() {
23+
sign.sign(dsapri);
24+
}, /PEM_read_bio_PrivateKey failed/);

0 commit comments

Comments
 (0)