Blame view

node_modules/crypto-browserify/test/aes.js 1.59 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  var test = require('tape')
  var crypto = require('browserify-cipher/browser')
  var randomBytes = require('pseudorandombytes')
  
  function runIt (i) {
    crypto.listCiphers().forEach(function (cipher) {
      test('run: ' + i, function (t) {
        t.test('ciphers: ' + cipher, function (t) {
          t.plan(1)
          var data = randomBytes(562)
          var password = randomBytes(20)
          var crypter = crypto.createCipher(cipher, password)
          var decrypter = crypto.createDecipher(cipher, password)
          var out = []
          out.push(decrypter.update(crypter.update(data)))
          out.push(decrypter.update(crypter.final()))
          if (cipher.indexOf('gcm') > -1) {
            decrypter.setAuthTag(crypter.getAuthTag())
          }
          out.push(decrypter.final())
          t.equals(data.toString('hex'), Buffer.concat(out).toString('hex'))
        })
      })
    })
    if (i < 4) {
      setTimeout(runIt, 0, i + 1)
    }
  }
  runIt(1)
  test('getCiphers', function (t) {
    t.plan(1)
    t.ok(crypto.getCiphers().length, 'get ciphers returns an array')
  })
  
  test('through crypto browserify works', function (t) {
    t.plan(2)
    var crypto = require('../')
    var cipher = 'aes-128-ctr'
    var data = randomBytes(562)
    var password = randomBytes(20)
    var crypter = crypto.createCipher(cipher, password)
    var decrypter = crypto.createDecipher(cipher, password)
    var out = []
    out.push(decrypter.update(crypter.update(data)))
    out.push(decrypter.update(crypter.final()))
    out.push(decrypter.final())
    t.equals(data.toString('hex'), Buffer.concat(out).toString('hex'))
    t.ok(crypto.getCiphers().length, 'get ciphers returns an array')
  })