test: add DSA sign/verify crypto tests
authorBen Noordhuis <info@bnoordhuis.nl>
Tue, 22 Nov 2011 15:01:07 +0000 (16:01 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Tue, 22 Nov 2011 15:01:07 +0000 (16:01 +0100)
test/fixtures/test_dsa_params.pem [new file with mode: 0644]
test/fixtures/test_dsa_privkey.pem [new file with mode: 0644]
test/fixtures/test_dsa_pubkey.pem [new file with mode: 0644]
test/simple/test-crypto.js

diff --git a/test/fixtures/test_dsa_params.pem b/test/fixtures/test_dsa_params.pem
new file mode 100644 (file)
index 0000000..7007372
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN DSA PARAMETERS-----
+MIICIAKCAQEAiJCR40HCtA6pk864XhKceke8N4chlrpwcphAXpHwSQGHlv1JJFyj
+aPqugWtzwZH55g7qpIiT3fmg6V6PfzNfx4sQGlSjckZaN02WRUAacn0va6UbwyYV
+7LZzuHlHzayHLl/btGeTF+zL+9eMLKfll+r+5bJXDMWh3xUD1Nldf+fsIsbVZI9Q
+Nzf3L1/07XVTLedQYaE77OqVuu+cfoBtb+K5MsQdHMMN20BGjKIvGkJICuC448Gk
+Dx1wpxz2vSJEi6FqXruM6c9yrPvhJKSfbVFYK2n82MMXMNNu9Dwqwsv6Ig6dIVyw
+dKDrSw1Nz9j9TWA5BolNta3yMPHrEjCuIQIVAKq0ZZ0/36sZE1cqt6j0hZTisWUV
+AoIBAFbI9MKn9DBJ7lo7+LRblgNKg9lk4D/6NBBRgOeCN4WnOxHQrqpSTUBG+VcA
+BDKEfoHfEPI9KZKpEgpzGTpr7mGxDPLHfGL+vvf1EYbmcTDrUWlf9B/3+L3uwIdd
+v3NYLepyEZ8L8g6eRGSQ4Svg1oSR/GAUTeGJczPg6qW0b/LTpf4eeDNWYGF6aogJ
+UphnPcZ0Xqw+yvq/i1uzAVirUxp9Crb7km0dfA0G/HBiSdcEt6l8LdQd6qmcL0nx
+cm9x6L+tSol5hXNynV0wcxdCQz4Xj5na+NoRGb9jPYxgLkoq07hwAkqkQDyF61tx
+fWgGc7zmh/x6JMGe/Xhg1TvgxLs=
+-----END DSA PARAMETERS-----
diff --git a/test/fixtures/test_dsa_privkey.pem b/test/fixtures/test_dsa_privkey.pem
new file mode 100644 (file)
index 0000000..6f06041
--- /dev/null
@@ -0,0 +1,20 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIDPwIBAAKCAQEAiJCR40HCtA6pk864XhKceke8N4chlrpwcphAXpHwSQGHlv1J
+JFyjaPqugWtzwZH55g7qpIiT3fmg6V6PfzNfx4sQGlSjckZaN02WRUAacn0va6Ub
+wyYV7LZzuHlHzayHLl/btGeTF+zL+9eMLKfll+r+5bJXDMWh3xUD1Nldf+fsIsbV
+ZI9QNzf3L1/07XVTLedQYaE77OqVuu+cfoBtb+K5MsQdHMMN20BGjKIvGkJICuC4
+48GkDx1wpxz2vSJEi6FqXruM6c9yrPvhJKSfbVFYK2n82MMXMNNu9Dwqwsv6Ig6d
+IVywdKDrSw1Nz9j9TWA5BolNta3yMPHrEjCuIQIVAKq0ZZ0/36sZE1cqt6j0hZTi
+sWUVAoIBAFbI9MKn9DBJ7lo7+LRblgNKg9lk4D/6NBBRgOeCN4WnOxHQrqpSTUBG
++VcABDKEfoHfEPI9KZKpEgpzGTpr7mGxDPLHfGL+vvf1EYbmcTDrUWlf9B/3+L3u
+wIddv3NYLepyEZ8L8g6eRGSQ4Svg1oSR/GAUTeGJczPg6qW0b/LTpf4eeDNWYGF6
+aogJUphnPcZ0Xqw+yvq/i1uzAVirUxp9Crb7km0dfA0G/HBiSdcEt6l8LdQd6qmc
+L0nxcm9x6L+tSol5hXNynV0wcxdCQz4Xj5na+NoRGb9jPYxgLkoq07hwAkqkQDyF
+61txfWgGc7zmh/x6JMGe/Xhg1TvgxLsCggEBAIXcOokkhVjC+i/I/grM9qTh6fCV
+jzSbOsIVi9Hfj7GCTRYA/QFnNbiWbOWzP7t2cEQFLfZoJmTK71+htZql9/GRMzV+
+dnyhwuRh9YWkuCOlFHD7hDFBC+e1VqhV7ltaokqkZU18BsmgZG/fxeqOAfElEKLE
+796rOAXmtx8F14Mn+IQteEAmifF1140C0bFzH67RSZU13pRCB7TKbruTevnhdQct
+LOzhgpMuoEWAjSWni5+WklOg/LxrMZ7MFz+Kqph1PxSX7kg/S8yCjNFtaviY7HrJ
+E7wUqi3Z/VPV4HKGeHzX1k1Z9RE/oJTsR2yT2rtJvSGO9lDk6Fj5tIv1fC8CFQCd
+3V7C07NVeTiUU1WTP2nFNgMqEQ==
+-----END DSA PRIVATE KEY-----
diff --git a/test/fixtures/test_dsa_pubkey.pem b/test/fixtures/test_dsa_pubkey.pem
new file mode 100644 (file)
index 0000000..1f1dad6
--- /dev/null
@@ -0,0 +1,20 @@
+-----BEGIN PUBLIC KEY-----
+MIIDOzCCAi0GByqGSM44BAEwggIgAoIBAQCIkJHjQcK0DqmTzrheEpx6R7w3hyGW
+unBymEBekfBJAYeW/UkkXKNo+q6Ba3PBkfnmDuqkiJPd+aDpXo9/M1/HixAaVKNy
+Rlo3TZZFQBpyfS9rpRvDJhXstnO4eUfNrIcuX9u0Z5MX7Mv714wsp+WX6v7lslcM
+xaHfFQPU2V1/5+wixtVkj1A3N/cvX/TtdVMt51BhoTvs6pW675x+gG1v4rkyxB0c
+ww3bQEaMoi8aQkgK4LjjwaQPHXCnHPa9IkSLoWpeu4zpz3Ks++EkpJ9tUVgrafzY
+wxcw0270PCrCy/oiDp0hXLB0oOtLDU3P2P1NYDkGiU21rfIw8esSMK4hAhUAqrRl
+nT/fqxkTVyq3qPSFlOKxZRUCggEAVsj0wqf0MEnuWjv4tFuWA0qD2WTgP/o0EFGA
+54I3hac7EdCuqlJNQEb5VwAEMoR+gd8Q8j0pkqkSCnMZOmvuYbEM8sd8Yv6+9/UR
+huZxMOtRaV/0H/f4ve7Ah12/c1gt6nIRnwvyDp5EZJDhK+DWhJH8YBRN4YlzM+Dq
+pbRv8tOl/h54M1ZgYXpqiAlSmGc9xnRerD7K+r+LW7MBWKtTGn0KtvuSbR18DQb8
+cGJJ1wS3qXwt1B3qqZwvSfFyb3Hov61KiXmFc3KdXTBzF0JDPhePmdr42hEZv2M9
+jGAuSirTuHACSqRAPIXrW3F9aAZzvOaH/HokwZ79eGDVO+DEuwOCAQYAAoIBAQCF
+3DqJJIVYwvovyP4KzPak4enwlY80mzrCFYvR34+xgk0WAP0BZzW4lmzlsz+7dnBE
+BS32aCZkyu9fobWapffxkTM1fnZ8ocLkYfWFpLgjpRRw+4QxQQvntVaoVe5bWqJK
+pGVNfAbJoGRv38XqjgHxJRCixO/eqzgF5rcfBdeDJ/iELXhAJonxddeNAtGxcx+u
+0UmVNd6UQge0ym67k3r54XUHLSzs4YKTLqBFgI0lp4uflpJToPy8azGezBc/iqqY
+dT8Ul+5IP0vMgozRbWr4mOx6yRO8FKot2f1T1eByhnh819ZNWfURP6CU7Edsk9q7
+Sb0hjvZQ5OhY+bSL9Xwv
+-----END PUBLIC KEY-----
index 621a8d1..028ca46 100644 (file)
@@ -394,6 +394,10 @@ assert.equal(rsaSignature, '5c50e3145c4e2497aadb0eabc83b342d0b0021ece0d4c4a064b7
 rsaVerify.update(rsaPubPem);
 assert.strictEqual(rsaVerify.verify(rsaPubPem, rsaSignature, 'hex'), true);
 
+
+//
+// Test RSA signing and verification
+//
 (function() {
   var privateKey = fs.readFileSync(
     common.fixturesDir + '/test_rsa_privkey_2.pem');
@@ -417,8 +421,35 @@ assert.strictEqual(rsaVerify.verify(rsaPubPem, rsaSignature, 'hex'), true);
   assert.strictEqual(verify.verify(publicKey, signature, 'hex'), true);
 })();
 
-// Test PBKDF2 with RFC 6070 test vectors (except #4)
 
+//
+// Test DSA signing and verification
+//
+(function() {
+  var privateKey = fs.readFileSync(
+    common.fixturesDir + '/test_dsa_privkey.pem');
+
+  var publicKey = fs.readFileSync(
+    common.fixturesDir + '/test_dsa_pubkey.pem');
+
+  var input = 'I AM THE WALRUS';
+
+  // DSA signatures vary across runs so there is no static string to verify
+  // against
+  var sign = crypto.createSign('DSS1');
+  sign.update(input);
+  var signature = sign.sign(privateKey, 'hex');
+
+  var verify = crypto.createVerify('DSS1');
+  verify.update(input);
+
+  assert.strictEqual(verify.verify(publicKey, signature, 'hex'), true);
+})();
+
+
+//
+// Test PBKDF2 with RFC 6070 test vectors (except #4)
+//
 crypto.pbkdf2('password', 'salt', 1, 20, function(err, result) {
   assert.equal(result, '\x0c\x60\xc8\x0f\x96\x1f\x0e\x71\xf3\xa9\xb5\x24\xaf\x60\x12\x06\x2f\xe0\x37\xa6', 'pbkdf1 test vector 1');
 });