@bitgo-beta/blake2b-wasm 3.2.1-alpha.9 → 3.2.1-alpha.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,21 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [3.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.0.3-rc.0...@bitgo/blake2b-wasm@3.2.0) (2022-10-18)
6
+ ## [3.2.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.2.1...@bitgo/blake2b-wasm@3.2.3) (2023-08-04)
7
7
 
8
8
  **Note:** Version bump only for package @bitgo/blake2b-wasm
9
9
 
10
+ ## [3.2.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.2.1...@bitgo/blake2b-wasm@3.2.2) (2023-07-28)
10
11
 
12
+ **Note:** Version bump only for package @bitgo/blake2b-wasm
11
13
 
12
-
13
-
14
- ## [3.0.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.0.3-rc.0...@bitgo/blake2b-wasm@3.0.3) (2022-07-19)
14
+ ## [3.2.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.2.0...@bitgo/blake2b-wasm@3.2.1) (2023-07-18)
15
15
 
16
16
  **Note:** Version bump only for package @bitgo/blake2b-wasm
17
17
 
18
+ # [3.2.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.0.3-rc.0...@bitgo/blake2b-wasm@3.2.0) (2022-10-18)
18
19
 
20
+ **Note:** Version bump only for package @bitgo/blake2b-wasm
19
21
 
22
+ ## [3.0.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.0.3-rc.0...@bitgo/blake2b-wasm@3.0.3) (2022-07-19)
20
23
 
24
+ **Note:** Version bump only for package @bitgo/blake2b-wasm
21
25
 
22
26
  ## [3.0.3-rc.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/blake2b-wasm@3.0.2...@bitgo/blake2b-wasm@3.0.3-rc.0) (2022-06-07)
23
27
 
package/README.md CHANGED
@@ -10,24 +10,24 @@ Works in browsers that support WASM and Node.js 8+.
10
10
 
11
11
  ## Usage
12
12
 
13
- ``` js
14
- var blake2b = require('@bitgo/blake2b-wasm')
13
+ ```js
14
+ var blake2b = require('@bitgo/blake2b-wasm');
15
15
 
16
16
  if (!blake2b.SUPPORTED) {
17
- console.log('WebAssembly not supported by your runtime')
17
+ console.log('WebAssembly not supported by your runtime');
18
18
  }
19
19
 
20
20
  blake2b.ready(function (err) {
21
- if (err) throw err
21
+ if (err) throw err;
22
22
 
23
23
  var hash = blake2b()
24
24
  .update(Buffer.from('hello')) // pass in a buffer or uint8array
25
25
  .update(Buffer.from(' '))
26
26
  .update(Buffer.from('world'))
27
- .digest('hex')
27
+ .digest('hex');
28
28
 
29
- console.log('Blake2b hash of "hello world" is %s', hash)
30
- })
29
+ console.log('Blake2b hash of "hello world" is %s', hash);
30
+ });
31
31
  ```
32
32
 
33
33
  ## API
package/blake2b.js CHANGED
@@ -1,63 +1,62 @@
1
+ module.exports = loadWebAssembly;
1
2
 
2
- module.exports = loadWebAssembly
3
+ loadWebAssembly.supported = true;
3
4
 
4
- // turning off support for WebAssembly,
5
- // chrome 69 has issues with loading webassembly in the main thread if the module size >4k
6
- loadWebAssembly.supported = false
5
+ function loadWebAssembly(opts) {
6
+ if (!loadWebAssembly.supported) return null;
7
7
 
8
- function loadWebAssembly (opts) {
9
- if (!loadWebAssembly.supported) return null
10
-
11
- var imp = opts && opts.imports
12
- var wasm = toUint8Array('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')
13
- var ready = null
8
+ var imp = opts && opts.imports;
9
+ var wasm = toUint8Array(
10
+ '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'
11
+ );
12
+ var ready = null;
14
13
 
15
14
  var mod = {
16
15
  buffer: wasm,
17
16
  memory: null,
18
17
  exports: null,
19
18
  realloc: realloc,
20
- onload: onload
21
- }
19
+ onload: onload,
20
+ };
22
21
 
23
- onload(function () {})
22
+ onload(function () {});
24
23
 
25
- return mod
24
+ return mod;
26
25
 
27
- function realloc (size) {
28
- mod.exports.memory.grow(Math.max(0, Math.ceil(Math.abs(size - mod.memory.length) / 65536)))
29
- mod.memory = new Uint8Array(mod.exports.memory.buffer)
26
+ function realloc(size) {
27
+ mod.exports.memory.grow(Math.max(0, Math.ceil(Math.abs(size - mod.memory.length) / 65536)));
28
+ mod.memory = new Uint8Array(mod.exports.memory.buffer);
30
29
  }
31
30
 
32
- function onload (cb) {
33
- if (mod.exports) return cb()
31
+ function onload(cb) {
32
+ if (mod.exports) return cb();
34
33
 
35
34
  if (ready) {
36
- ready.then(cb.bind(null, null)).catch(cb)
37
- return
35
+ ready.then(cb.bind(null, null)).catch(cb);
36
+ return;
38
37
  }
39
38
 
40
39
  try {
41
- if (opts && opts.async) throw new Error('async')
42
- setup({instance: new WebAssembly.Instance(new WebAssembly.Module(wasm), imp)})
40
+ if (opts && opts.async) throw new Error('async');
41
+ setup({ instance: new WebAssembly.Instance(new WebAssembly.Module(wasm), imp) });
43
42
  } catch (err) {
44
- ready = WebAssembly.instantiate(wasm, imp).then(setup)
43
+ ready = WebAssembly.instantiate(wasm, imp).then(setup);
45
44
  }
46
45
 
47
- onload(cb)
46
+ onload(cb);
48
47
  }
49
48
 
50
- function setup (w) {
51
- mod.exports = w.instance.exports
52
- mod.memory = mod.exports.memory && mod.exports.memory.buffer && new Uint8Array(mod.exports.memory.buffer)
49
+ function setup(w) {
50
+ mod.exports = w.instance.exports;
51
+ mod.memory = mod.exports.memory && mod.exports.memory.buffer && new Uint8Array(mod.exports.memory.buffer);
53
52
  }
54
53
  }
55
54
 
56
- function toUint8Array (s) {
57
- if (typeof atob === 'function') return new Uint8Array(atob(s).split('').map(charCodeAt))
58
- return (require('buf' + 'fer').Buffer).from(s, 'base64')
55
+ function toUint8Array(s) {
56
+ if (typeof atob === 'function') return new Uint8Array(atob(s).split('').map(charCodeAt));
57
+ return require('buf' + 'fer').Buffer.from(s, 'base64');
59
58
  }
60
59
 
61
- function charCodeAt (c) {
62
- return c.charCodeAt(0)
60
+ function charCodeAt(c) {
61
+ return c.charCodeAt(0);
63
62
  }
package/example.html CHANGED
@@ -1,14 +1,14 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
- <head>
4
- <title>Blake2b-WASM Demo</title>
5
- </head>
6
- <body>
7
- <ol>
8
- <li>Run `npm run demo` if you haven't</li>
9
- <li>Reload this page</li>
10
- <li>Open the console</li>
11
- </ol>
12
- <script src="bundle.js"></script>
13
- </body>
3
+ <head>
4
+ <title>Blake2b-WASM Demo</title>
5
+ </head>
6
+ <body>
7
+ <ol>
8
+ <li>Run `npm run demo` if you haven't</li>
9
+ <li>Reload this page</li>
10
+ <li>Open the console</li>
11
+ </ol>
12
+ <script src="bundle.js"></script>
13
+ </body>
14
14
  </html>
package/example.js CHANGED
@@ -1,13 +1,8 @@
1
- 'use strict'
2
- var blake2b = require('./')
1
+ 'use strict';
2
+ var blake2b = require('./');
3
3
 
4
4
  blake2b.ready(function () {
5
- var hash = blake2b()
6
- .update(Buffer.from('hello'))
7
- .update(Buffer.from(' '))
8
- .update(Buffer.from('world'))
9
- .digest('hex')
10
-
11
- console.log('Blake2b hash of "hello world" is %s', hash)
12
- })
5
+ var hash = blake2b().update(Buffer.from('hello')).update(Buffer.from(' ')).update(Buffer.from('world')).digest('hex');
13
6
 
7
+ console.log('Blake2b hash of "hello world" is %s', hash);
8
+ });
@@ -10,10 +10,10 @@ var sigma = [
10
10
  [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5],
11
11
  [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0],
12
12
  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
13
- [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3]
14
- ]
13
+ [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],
14
+ ];
15
15
 
16
- function G (r, i, a, b, c, d) {
16
+ function G(r, i, a, b, c, d) {
17
17
  return `
18
18
  ;; G(${r}, ${i})
19
19
 
@@ -39,10 +39,10 @@ function G (r, i, a, b, c, d) {
39
39
  (set_local ${c} (i64.add (get_local ${c}) (get_local ${d})))
40
40
 
41
41
  ;; ${b} = rotr64(${b} ^ ${c}, 63)
42
- (set_local ${b} (i64.rotr (i64.xor (get_local ${b}) (get_local ${c})) (i64.const 63)))`
42
+ (set_local ${b} (i64.rotr (i64.xor (get_local ${b}) (get_local ${c})) (i64.const 63)))`;
43
43
  }
44
44
 
45
- function ROUND (r) {
45
+ function ROUND(r) {
46
46
  return `
47
47
  ;; ROUND(${r})
48
48
  ${G(r, 0, '$v0', '$v4', '$v8', '$v12')}
@@ -53,7 +53,7 @@ function ROUND (r) {
53
53
  ${G(r, 5, '$v1', '$v6', '$v11', '$v12')}
54
54
  ${G(r, 6, '$v2', '$v7', '$v8', '$v13')}
55
55
  ${G(r, 7, '$v3', '$v4', '$v9', '$v14')}
56
- `
56
+ `;
57
57
  }
58
58
 
59
59
  console.log(
@@ -69,4 +69,4 @@ console.log(
69
69
  ROUND(9),
70
70
  ROUND(10),
71
71
  ROUND(11)
72
- )
72
+ );
package/index.js CHANGED
@@ -1,137 +1,142 @@
1
- var assert = require('nanoassert')
2
- var wasm = require('./blake2b')()
3
-
4
- var head = 64
5
- var freeList = []
6
-
7
- module.exports = Blake2b
8
- var BYTES_MIN = module.exports.BYTES_MIN = 16
9
- var BYTES_MAX = module.exports.BYTES_MAX = 64
10
- var BYTES = module.exports.BYTES = 32
11
- var KEYBYTES_MIN = module.exports.KEYBYTES_MIN = 16
12
- var KEYBYTES_MAX = module.exports.KEYBYTES_MAX = 64
13
- var KEYBYTES = module.exports.KEYBYTES = 32
14
- var SALTBYTES = module.exports.SALTBYTES = 16
15
- var PERSONALBYTES = module.exports.PERSONALBYTES = 16
16
-
17
- function Blake2b (digestLength, key, salt, personal, noAssert) {
18
- if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal, noAssert)
19
- if (!(wasm && wasm.exports)) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)')
20
- if (!digestLength) digestLength = 32
1
+ const assert = require('nanoassert');
2
+ const wasm = require('./blake2b')();
3
+
4
+ let head = 64;
5
+ const freeList = [];
6
+
7
+ module.exports = Blake2b;
8
+ const BYTES_MIN = (module.exports.BYTES_MIN = 16);
9
+ const BYTES_MAX = (module.exports.BYTES_MAX = 64);
10
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
11
+ const BYTES = (module.exports.BYTES = 32);
12
+ const KEYBYTES_MIN = (module.exports.KEYBYTES_MIN = 16);
13
+ const KEYBYTES_MAX = (module.exports.KEYBYTES_MAX = 64);
14
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
+ const KEYBYTES = (module.exports.KEYBYTES = 32);
16
+ const SALTBYTES = (module.exports.SALTBYTES = 16);
17
+ const PERSONALBYTES = (module.exports.PERSONALBYTES = 16);
18
+
19
+ function Blake2b(digestLength, key, salt, personal, noAssert) {
20
+ if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal, noAssert);
21
+ if (!(wasm && wasm.exports)) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)');
22
+ if (!digestLength) digestLength = 32;
21
23
 
22
24
  if (noAssert !== true) {
23
- assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength)
24
- assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength)
25
+ assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength);
26
+ assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength);
25
27
  if (key != null) {
26
- assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer')
27
- assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length)
28
- assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length)
28
+ assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer');
29
+ assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length);
30
+ assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length);
29
31
  }
30
32
  if (salt != null) {
31
- assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer')
32
- assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length)
33
+ assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer');
34
+ assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length);
33
35
  }
34
36
  if (personal != null) {
35
- assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer')
36
- assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length)
37
+ assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer');
38
+ assert(
39
+ personal.length === PERSONALBYTES,
40
+ 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length
41
+ );
37
42
  }
38
43
  }
39
44
 
40
45
  if (!freeList.length) {
41
- freeList.push(head)
42
- head += 216
46
+ freeList.push(head);
47
+ head += 216;
43
48
  }
44
49
 
45
- this.digestLength = digestLength
46
- this.finalized = false
47
- this.pointer = freeList.pop()
50
+ this.digestLength = digestLength;
51
+ this.finalized = false;
52
+ this.pointer = freeList.pop();
48
53
 
49
- wasm.memory.fill(0, 0, 64)
50
- wasm.memory[0] = this.digestLength
51
- wasm.memory[1] = key ? key.length : 0
52
- wasm.memory[2] = 1 // fanout
53
- wasm.memory[3] = 1 // depth
54
+ wasm.memory.fill(0, 0, 64);
55
+ wasm.memory[0] = this.digestLength;
56
+ wasm.memory[1] = key ? key.length : 0;
57
+ wasm.memory[2] = 1; // fanout
58
+ wasm.memory[3] = 1; // depth
54
59
 
55
- if (salt) wasm.memory.set(salt, 32)
56
- if (personal) wasm.memory.set(personal, 48)
60
+ if (salt) wasm.memory.set(salt, 32);
61
+ if (personal) wasm.memory.set(personal, 48);
57
62
 
58
- if (this.pointer + 216 > wasm.memory.length) wasm.realloc(this.pointer + 216) // we need 216 bytes for the state
59
- wasm.exports.blake2b_init(this.pointer, this.digestLength)
63
+ if (this.pointer + 216 > wasm.memory.length) wasm.realloc(this.pointer + 216); // we need 216 bytes for the state
64
+ wasm.exports.blake2b_init(this.pointer, this.digestLength);
60
65
 
61
66
  if (key) {
62
- this.update(key)
63
- wasm.memory.fill(0, head, head + key.length) // whiteout key
64
- wasm.memory[this.pointer + 200] = 128
67
+ this.update(key);
68
+ wasm.memory.fill(0, head, head + key.length); // whiteout key
69
+ wasm.memory[this.pointer + 200] = 128;
65
70
  }
66
71
  }
67
72
 
68
-
69
73
  Blake2b.prototype.update = function (input) {
70
- assert(this.finalized === false, 'Hash instance finalized')
71
- assert(input instanceof Uint8Array, 'input must be Uint8Array or Buffer')
74
+ assert(this.finalized === false, 'Hash instance finalized');
75
+ assert(input instanceof Uint8Array, 'input must be Uint8Array or Buffer');
72
76
 
73
- if (head + input.length > wasm.memory.length) wasm.realloc(head + input.length)
74
- wasm.memory.set(input, head)
75
- wasm.exports.blake2b_update(this.pointer, head, head + input.length)
76
- return this
77
- }
77
+ if (head + input.length > wasm.memory.length) wasm.realloc(head + input.length);
78
+ wasm.memory.set(input, head);
79
+ wasm.exports.blake2b_update(this.pointer, head, head + input.length);
80
+ return this;
81
+ };
78
82
 
79
83
  Blake2b.prototype.digest = function (enc) {
80
- assert(this.finalized === false, 'Hash instance finalized')
81
- this.finalized = true
84
+ assert(this.finalized === false, 'Hash instance finalized');
85
+ this.finalized = true;
82
86
 
83
- freeList.push(this.pointer)
84
- wasm.exports.blake2b_final(this.pointer)
87
+ freeList.push(this.pointer);
88
+ wasm.exports.blake2b_final(this.pointer);
85
89
 
86
90
  if (!enc || enc === 'binary') {
87
- return wasm.memory.slice(this.pointer + 128, this.pointer + 128 + this.digestLength)
91
+ return wasm.memory.slice(this.pointer + 128, this.pointer + 128 + this.digestLength);
88
92
  }
89
93
 
90
94
  if (enc === 'hex') {
91
- return hexSlice(wasm.memory, this.pointer + 128, this.digestLength)
95
+ return hexSlice(wasm.memory, this.pointer + 128, this.digestLength);
92
96
  }
93
97
 
94
- assert(enc instanceof Uint8Array && enc.length >= this.digestLength, 'input must be Uint8Array or Buffer')
95
- for (var i = 0; i < this.digestLength; i++) {
96
- enc[i] = wasm.memory[this.pointer + 128 + i]
98
+ assert(enc instanceof Uint8Array && enc.length >= this.digestLength, 'input must be Uint8Array or Buffer');
99
+ for (let i = 0; i < this.digestLength; i++) {
100
+ enc[i] = wasm.memory[this.pointer + 128 + i];
97
101
  }
98
102
 
99
- return enc
100
- }
103
+ return enc;
104
+ };
101
105
 
102
106
  // libsodium compat
103
- Blake2b.prototype.final = Blake2b.prototype.digest
107
+ Blake2b.prototype.final = Blake2b.prototype.digest;
104
108
 
105
- Blake2b.WASM = wasm && wasm.buffer
106
- Blake2b.SUPPORTED = typeof WebAssembly !== 'undefined'
109
+ Blake2b.WASM = wasm && wasm.buffer;
110
+ Blake2b.SUPPORTED = typeof WebAssembly !== 'undefined';
107
111
 
108
112
  Blake2b.ready = function (cb) {
109
- if (!cb) cb = noop
110
- if (!wasm) return cb(new Error('WebAssembly not supported'))
113
+ if (!cb) cb = noop;
114
+ if (!wasm) return cb(new Error('WebAssembly not supported'));
111
115
 
112
116
  // backwards compat, can be removed in a new major
113
- var p = new Promise(function (reject, resolve) {
117
+ const p = new Promise(function (reject, resolve) {
114
118
  wasm.onload(function (err) {
115
- if (err) resolve()
116
- else reject()
117
- cb(err)
118
- })
119
- })
119
+ if (err) resolve();
120
+ else reject();
121
+ cb(err);
122
+ });
123
+ });
120
124
 
121
- return p
122
- }
125
+ return p;
126
+ };
123
127
 
124
- Blake2b.prototype.ready = Blake2b.ready
128
+ Blake2b.prototype.ready = Blake2b.ready;
125
129
 
126
- function noop () {}
130
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
131
+ function noop() {}
127
132
 
128
- function hexSlice (buf, start, len) {
129
- var str = ''
130
- for (var i = 0; i < len; i++) str += toHex(buf[start + i])
131
- return str
133
+ function hexSlice(buf, start, len) {
134
+ let str = '';
135
+ for (let i = 0; i < len; i++) str += toHex(buf[start + i]);
136
+ return str;
132
137
  }
133
138
 
134
- function toHex (n) {
135
- if (n < 16) return '0' + n.toString(16)
136
- return n.toString(16)
139
+ function toHex(n) {
140
+ if (n < 16) return '0' + n.toString(16);
141
+ return n.toString(16);
137
142
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/blake2b-wasm",
3
- "version": "3.2.1-alpha.9",
3
+ "version": "3.2.1-alpha.91",
4
4
  "description": "Blake2b implemented in WASM",
5
5
  "main": "index.js",
6
6
  "dependencies": {
@@ -30,5 +30,5 @@
30
30
  "url": "https://github.com/mafintosh/blake2b-wasm/issues"
31
31
  },
32
32
  "homepage": "https://github.com/mafintosh/blake2b-wasm",
33
- "gitHead": "309dada140d3d662d4c6fe230515f231407cc056"
33
+ "gitHead": "fb42bd0bed29e6fb1197dc1626f179c6aea69807"
34
34
  }
package/test.js CHANGED
@@ -1,85 +1,85 @@
1
- var tape = require('tape')
2
- var blake2b = require('./')
3
- var vectors = require('blake2b/test-vectors.json')
1
+ const tape = require('tape');
2
+ const blake2b = require('./');
3
+ const vectors = require('../blake2b/test-vectors.json');
4
4
 
5
- var readyCalled = false
5
+ let readyCalled = false;
6
6
  process.on('exit', function () {
7
- if (!readyCalled)
8
- throw new Error('ready not called')
9
- })
10
-
11
- blake2b.ready(function () {
12
- readyCalled = true
7
+ if (!readyCalled) throw new Error('ready not called');
8
+ });
13
9
 
10
+ function test(b2b) {
14
11
  tape('hello world', function (t) {
15
- var hash = blake2b()
12
+ const hash = blake2b()
16
13
  .update(Buffer.from('hello'))
17
14
  .update(Buffer.from(' '))
18
15
  .update(Buffer.from('world'))
19
- .digest('hex')
16
+ .digest('hex');
20
17
 
21
- t.same(hash, '256c83b297114d201b30179f3f0ef0cace9783622da5974326b436178aeef610')
22
- t.end()
23
- })
18
+ t.same(hash, '256c83b297114d201b30179f3f0ef0cace9783622da5974326b436178aeef610');
19
+ t.end();
20
+ });
24
21
 
25
22
  tape('hello world', function (t) {
26
- var hash = blake2b(64)
23
+ const hash = blake2b(64)
27
24
  .update(Buffer.from('hello'))
28
25
  .update(Buffer.from(' '))
29
26
  .update(Buffer.from('world'))
30
- .digest('hex')
27
+ .digest('hex');
31
28
 
32
- t.same(hash, '021ced8799296ceca557832ab941a50b4a11f83478cf141f51f933f653ab9fbcc05a037cddbed06e309bf334942c4e58cdf1a46e237911ccd7fcf9787cbc7fd0')
33
- t.end()
34
- })
29
+ t.same(
30
+ hash,
31
+ '021ced8799296ceca557832ab941a50b4a11f83478cf141f51f933f653ab9fbcc05a037cddbed06e309bf334942c4e58cdf1a46e237911ccd7fcf9787cbc7fd0'
32
+ );
33
+ t.end();
34
+ });
35
35
 
36
36
  tape('both at the same time', function (t) {
37
- var a = blake2b()
38
- var b = blake2b(64)
37
+ const a = blake2b();
38
+ const b = blake2b(64);
39
39
 
40
- var hash = a
41
- .update(Buffer.from('hello'))
42
- .update(Buffer.from(' '))
43
- .update(Buffer.from('world'))
44
- .digest('hex')
40
+ let hash = a.update(Buffer.from('hello')).update(Buffer.from(' ')).update(Buffer.from('world')).digest('hex');
45
41
 
46
- t.same(hash, '256c83b297114d201b30179f3f0ef0cace9783622da5974326b436178aeef610')
42
+ t.same(hash, '256c83b297114d201b30179f3f0ef0cace9783622da5974326b436178aeef610');
47
43
 
48
- var hash = b
49
- .update(Buffer.from('hello'))
50
- .update(Buffer.from(' '))
51
- .update(Buffer.from('world'))
52
- .digest('hex')
44
+ hash = b.update(Buffer.from('hello')).update(Buffer.from(' ')).update(Buffer.from('world')).digest('hex');
53
45
 
54
- t.same(hash, '021ced8799296ceca557832ab941a50b4a11f83478cf141f51f933f653ab9fbcc05a037cddbed06e309bf334942c4e58cdf1a46e237911ccd7fcf9787cbc7fd0')
55
- t.end()
56
- })
46
+ t.same(
47
+ hash,
48
+ '021ced8799296ceca557832ab941a50b4a11f83478cf141f51f933f653ab9fbcc05a037cddbed06e309bf334942c4e58cdf1a46e237911ccd7fcf9787cbc7fd0'
49
+ );
50
+ t.end();
51
+ });
57
52
 
58
53
  vectors.forEach(function (vector, i) {
59
54
  tape('test-vectors.json #' + i, function (t) {
60
- var key = vector.key && Buffer.from(vector.key, 'hex')
61
- var salt = vector.salt && Buffer.from(vector.salt, 'hex')
62
- var personal = vector.personal && Buffer.from(vector.personal, 'hex')
55
+ const key = vector.key && Buffer.from(vector.key, 'hex');
56
+ const salt = vector.salt && Buffer.from(vector.salt, 'hex');
57
+ const personal = vector.personal && Buffer.from(vector.personal, 'hex');
63
58
 
64
- var hash = blake2b(vector.outlen, key, salt, personal, true)
59
+ const hash = blake2b(vector.outlen, key, salt, personal, true)
65
60
  .update(Buffer.from(vector.input, 'hex'))
66
- .digest('hex')
61
+ .digest('hex');
67
62
 
68
- t.same(hash, vector.out)
69
- t.end()
70
- })
71
- })
72
- })
63
+ t.same(hash, vector.out);
64
+ t.end();
65
+ });
66
+ });
67
+ }
73
68
 
74
69
  tape('.ready()', function (t) {
75
- var invokeCount = 0;
76
- blake2b.ready()
70
+ let invokeCount = 0;
71
+ blake2b
72
+ .ready()
73
+ .then(() => {
74
+ readyCalled = true;
75
+ })
76
+ .then(test)
77
77
  .then(function () {
78
- invokeCount++
79
- throw new Error()
78
+ invokeCount++;
79
+ throw new Error();
80
80
  })
81
81
  .catch(function (err) {
82
- t.same(invokeCount, 1)
83
- t.end()
84
- })
82
+ t.same(invokeCount, 1);
83
+ t.end();
84
+ });
85
85
  });