var test = require('tape') var fs = require('fs') var parseKey = require('../') var rsa1024 = { private: fs.readFileSync(__dirname + '/rsa.1024.priv'), public: fs.readFileSync(__dirname + '/rsa.1024.pub') } var rsa2028 = { private: fs.readFileSync(__dirname + '/rsa.2028.priv'), public: fs.readFileSync(__dirname + '/rsa.2028.pub') } var nonrsa1024 = { private: fs.readFileSync(__dirname + '/1024.priv'), public: fs.readFileSync(__dirname + '/1024.pub') } var pass1024 = { private: { passphrase: 'fooo', key: fs.readFileSync(__dirname + '/pass.1024.priv') }, public: fs.readFileSync(__dirname + '/pass.1024.pub') } var ec = { private: fs.readFileSync(__dirname + '/ec.priv'), public: fs.readFileSync(__dirname + '/ec.pub') } var ecpass = { private: { key: fs.readFileSync(__dirname + '/ec.pass.priv'), passphrase: 'bard' }, public: fs.readFileSync(__dirname + '/ec.pub') } var dsa = { private: fs.readFileSync(__dirname + '/dsa.1024.priv'), public: fs.readFileSync(__dirname + '/dsa.1024.pub') } var dsa2 = { private: fs.readFileSync(__dirname + '/dsa.2048.priv'), public: fs.readFileSync(__dirname + '/dsa.2048.pub') } var dsapass = { private: { key: fs.readFileSync(__dirname + '/pass.dsa.1024.priv'), passphrase: 'password' }, public: fs.readFileSync(__dirname + '/pass.dsa.1024.pub') } var dsapass2 = { private: { key: fs.readFileSync(__dirname + '/pass2.dsa.1024.priv'), passphrase: 'password' }, public: fs.readFileSync(__dirname + '/pass2.dsa.1024.pub') } var rsapass = { private: { key: fs.readFileSync(__dirname + '/pass.rsa.1024.priv'), passphrase: 'password' }, public: fs.readFileSync(__dirname + '/pass.rsa.1024.pub') } var rsapass2 = { private: { key: fs.readFileSync(__dirname + '/pass.rsa.2028.priv'), passphrase: 'password' }, public: fs.readFileSync(__dirname + '/pass.rsa.2028.pub') } var cert = { private: fs.readFileSync(__dirname + '/rsa.1024.priv'), public: fs.readFileSync(__dirname + '/node.cert') } var i = 0 function testIt (keys) { test('key ' + (++i), function (t) { t.plan(2) t.ok(parseKey(keys.public), 'public key') t.ok(parseKey(keys.private), 'private key') }) } function testEOL (keys) { var publicKey = keys.public.toString() var newLineRegex = /\r?\n/g var genPrivate = function (replace) { if (keys.private.key) { return { key: keys.private.key.toString().replace(newLineRegex, replace), passphrase: keys.private.passphrase } } else { return keys.private.toString().replace(newLineRegex, replace) } } var testN = { private: genPrivate('\n'), public: publicKey.replace(newLineRegex, '\n') } testIt(testN) var testR = { private: genPrivate('\r'), public: publicKey.replace(newLineRegex, '\r') } testIt(testR) var testRN = { private: genPrivate('\r\n'), public: publicKey.replace(newLineRegex, '\r\n') } testIt(testRN) } testIt(dsa) testIt(dsa2) testIt(rsa1024) testIt(ec) testIt(rsa2028) testIt(nonrsa1024) testIt(ecpass) testIt(dsapass) testIt(dsapass2) testIt(rsapass) testIt(rsapass2) testIt(pass1024) testIt(pass1024) testIt(cert) testEOL(dsa) testEOL(dsa2) testEOL(rsa1024) testEOL(ec) testEOL(rsa2028) testEOL(nonrsa1024) testEOL(ecpass) testEOL(dsapass) testEOL(dsapass2) testEOL(rsapass) testEOL(rsapass2) testEOL(pass1024) testEOL(pass1024) testEOL(cert)