aboutsummaryrefslogtreecommitdiff
path: root/node_modules/cipher-base/test.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/cipher-base/test.js
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
node_modules
Diffstat (limited to 'node_modules/cipher-base/test.js')
-rw-r--r--node_modules/cipher-base/test.js108
1 files changed, 108 insertions, 0 deletions
diff --git a/node_modules/cipher-base/test.js b/node_modules/cipher-base/test.js
new file mode 100644
index 000000000..57d144a55
--- /dev/null
+++ b/node_modules/cipher-base/test.js
@@ -0,0 +1,108 @@
+var test = require('tape')
+var CipherBase = require('./')
+var inherits = require('inherits')
+
+test('basic version', function (t) {
+ inherits(Cipher, CipherBase)
+ function Cipher () {
+ CipherBase.call(this)
+ }
+ Cipher.prototype._update = function (input) {
+ t.ok(Buffer.isBuffer(input))
+ return input
+ }
+ Cipher.prototype._final = function () {
+ // noop
+ }
+ var cipher = new Cipher()
+ var utf8 = 'abc123abcd'
+ var update = cipher.update(utf8, 'utf8', 'base64') + cipher.final('base64')
+ var string = (new Buffer(update, 'base64')).toString()
+ t.equals(utf8, string)
+ t.end()
+})
+test('hash mode', function (t) {
+ inherits(Cipher, CipherBase)
+ function Cipher () {
+ CipherBase.call(this, 'finalName')
+ this._cache = []
+ }
+ Cipher.prototype._update = function (input) {
+ t.ok(Buffer.isBuffer(input))
+ this._cache.push(input)
+ }
+ Cipher.prototype._final = function () {
+ return Buffer.concat(this._cache)
+ }
+ var cipher = new Cipher()
+ var utf8 = 'abc123abcd'
+ var update = cipher.update(utf8, 'utf8').finalName('base64')
+ var string = (new Buffer(update, 'base64')).toString()
+
+ t.equals(utf8, string)
+ t.end()
+})
+test('hash mode as stream', function (t) {
+ inherits(Cipher, CipherBase)
+ function Cipher () {
+ CipherBase.call(this, 'finalName')
+ this._cache = []
+ }
+ Cipher.prototype._update = function (input) {
+ t.ok(Buffer.isBuffer(input))
+ this._cache.push(input)
+ }
+ Cipher.prototype._final = function () {
+ return Buffer.concat(this._cache)
+ }
+ var cipher = new Cipher()
+ cipher.on('error', function (e) {
+ t.notOk(e)
+ })
+ var utf8 = 'abc123abcd'
+ cipher.end(utf8, 'utf8')
+ var update = cipher.read().toString('base64')
+ var string = (new Buffer(update, 'base64')).toString()
+
+ t.equals(utf8, string)
+ t.end()
+})
+test('encodings', function (t) {
+ inherits(Cipher, CipherBase)
+ function Cipher () {
+ CipherBase.call(this)
+ }
+ Cipher.prototype._update = function (input) {
+ return input
+ }
+ Cipher.prototype._final = function () {
+ // noop
+ }
+ t.test('mix and match encoding', function (t) {
+ t.plan(2)
+
+ var cipher = new Cipher()
+ cipher.update('foo', 'utf8', 'utf8')
+ t.throws(function () {
+ cipher.update('foo', 'utf8', 'base64')
+ })
+ cipher = new Cipher()
+ cipher.update('foo', 'utf8', 'base64')
+ t.doesNotThrow(function () {
+ cipher.update('foo', 'utf8')
+ cipher.final('base64')
+ })
+ })
+ t.test('handle long uft8 plaintexts', function (t) {
+ t.plan(1)
+ var txt = 'ふっかつ あきる すぶり はやい つける まゆげ たんさん みんぞく ねほりはほり せまい たいまつばな ひはん'
+
+ var cipher = new Cipher()
+ var decipher = new Cipher()
+ var enc = decipher.update(cipher.update(txt, 'utf8', 'base64'), 'base64', 'utf8')
+ enc += decipher.update(cipher.final('base64'), 'base64', 'utf8')
+ enc += decipher.final('utf8')
+
+ t.equals(txt, enc)
+ })
+})