Skip to content

Instantly share code, notes, and snippets.

@calvinmetcalf
Created May 12, 2016 15:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save calvinmetcalf/73b6438bffed37c8c163ec31d656911d to your computer and use it in GitHub Desktop.
Save calvinmetcalf/73b6438bffed37c8c163ec31d656911d to your computer and use it in GitHub Desktop.
'use strict';
var fix = require('./test/fixtures.json');
var filtered = fix.valid.ec.filter(item=>item.scheme === 'ecdsa-with-SHA1');
var fs = require('fs');
var crypto = require('./browser');
function forAlg(alg) {
return filtered.map(f=>{
var message = new Buffer(`${alg}: ${f.message.replace('sha1', alg)}`);
var priv
if (f.passphrase) {
priv = {
key: new Buffer(f.private, 'base64'),
passphrase: f.passphrase
}
} else {
priv = new Buffer(f.private, 'base64')
}
var sign = crypto.createSign(alg);
var sig = sign.update(message).sign(priv).toString('hex');
var out = {
public: f.public,
private: f.private,
message: message.toString(),
signature: sig,
scheme: alg
};
if (f.passphrase) {
out.passphrase = f.passphrase;
}
return out;
});
}
fix.valid.ec = fix.valid.ec.concat(forAlg('sha224'), forAlg('sha256'), forAlg('sha384'), forAlg('sha512'));
fs.writeFileSync('./test/fixtures2.json', JSON.stringify(fix, false, 2));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment