blake2b-wasm
Advanced tools
Comparing version 1.0.0 to 1.1.0
28
index.js
var fs = require('fs') | ||
var assert = require('nanoassert') | ||
var buf = toUint8Array(fs.readFileSync(__dirname + '/blake2b.wasm', 'base64')) | ||
@@ -11,6 +12,22 @@ var rdy | ||
module.exports = Blake2b | ||
var BYTES_MIN = module.exports.BYTES_MIN = 16 | ||
var BYTES_MAX = module.exports.BYTES_MAX = 64 | ||
var BYTES = module.exports.BYTES = 32 | ||
var KEYBYTES_MIN = module.exports.KEYBYTES_MIN = 16 | ||
var KEYBYTES_MAX = module.exports.KEYBYTES_MAX = 64 | ||
var KEYBYTES = module.exports.KEYBYTES = 32 | ||
var SALTBYTES = module.exports.SALTBYTES = 16 | ||
var PERSONALBYTES = module.exports.PERSONALBYTES = 16 | ||
function Blake2b (digestLength, key, salt, personal) { | ||
function Blake2b (digestLength, key, salt, personal, noAssert) { | ||
if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal) | ||
if (!mod) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)') | ||
if (noAssert !== true) { | ||
assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength) | ||
assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength) | ||
if (key != null) assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length) | ||
if (key != null) assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length) | ||
if (salt != null) assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length) | ||
if (personal != null) assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length) | ||
} | ||
@@ -47,3 +64,4 @@ if (!freeList.length) { | ||
Blake2b.prototype.update = function (input) { | ||
if (this.finalized) throw new Error('Hash instance finalized') | ||
assert(this.finalized === false, 'Hash instance finalized') | ||
assert(input, 'input must be TypedArray or Buffer') | ||
@@ -56,3 +74,3 @@ memory.set(input, head) | ||
Blake2b.prototype.digest = function (enc) { | ||
if (this.finalized) throw new Error('Hash instance finalized') | ||
assert(this.finalized === false, 'Hash instance finalized') | ||
this.finalized = true | ||
@@ -71,2 +89,3 @@ | ||
assert(enc.length >= this.digestLength, 'input must be TypedArray or Buffer') | ||
for (var i = 0; i < this.digestLength; i++) { | ||
@@ -79,2 +98,5 @@ enc[i] = memory[this.pointer + 128 + i] | ||
// libsodium compat | ||
Blake2b.prototype.final = Blake2b.prototype.digest | ||
Blake2b.WASM = buf | ||
@@ -81,0 +103,0 @@ Blake2b.SUPPORTED = typeof WebAssembly !== 'undefined' |
{ | ||
"name": "blake2b-wasm", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Blake2b implemented in WASM", | ||
"main": "index.js", | ||
"dependencies": { | ||
"brfs": "^1.4.3" | ||
"brfs": "^1.4.3", | ||
"nanoassert": "^1.0.0" | ||
}, | ||
@@ -9,0 +10,0 @@ "devDependencies": { |
@@ -35,5 +35,5 @@ # blake2b-wasm | ||
#### `var hash = blake2b()` | ||
#### `var hash = blake2b([digestLength], [key], [salt], [personal])` | ||
Create a new hash instance | ||
Create a new hash instance. `digestLength` defaults to `32`. | ||
@@ -40,0 +40,0 @@ #### `hash.update(data)` |
@@ -65,2 +65,1 @@ var tape = require('tape') | ||
}) | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
121354
232
2
1
+ Addednanoassert@^1.0.0
+ Addednanoassert@1.1.0(transitive)