populateFixtures.js 1.1 KB

12345678910111213141516171819202122232425
  1. var modes = require('./modes')
  2. var fixtures = require('./test/fixtures.json')
  3. var crypto = require('crypto')
  4. var types = ['aes-128-cfb1', 'aes-192-cfb1', 'aes-256-cfb1']
  5. var ebtk = require('./EVP_BytesToKey')
  6. var fs = require('fs')
  7. fixtures.forEach(function (fixture) {
  8. types.forEach(function (cipher) {
  9. var suite = crypto.createCipher(cipher, new Buffer(fixture.password))
  10. var buf = new Buffer('')
  11. buf = Buffer.concat([buf, suite.update(new Buffer(fixture.text))])
  12. buf = Buffer.concat([buf, suite.final()])
  13. fixture.results.ciphers[cipher] = buf.toString('hex')
  14. if (modes[cipher].mode === 'ECB') {
  15. return
  16. }
  17. var suite2 = crypto.createCipheriv(cipher, ebtk(crypto, fixture.password, modes[cipher].key).key, new Buffer(fixture.iv, 'hex'))
  18. var buf2 = new Buffer('')
  19. buf2 = Buffer.concat([buf2, suite2.update(new Buffer(fixture.text))])
  20. buf2 = Buffer.concat([buf2, suite2.final()])
  21. fixture.results.cipherivs[cipher] = buf2.toString('hex')
  22. })
  23. })
  24. fs.writeFileSync('./test/fixturesNew.json', JSON.stringify(fixtures, false, 4))