Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
All four BLAKE2 variants (blake2b, blake2bp, blake2s, blake2sp) for Node.js, with stream support
Why BLAKE2 for hashing? "BLAKE2 is a cryptographic hash function faster than MD5, SHA-1, SHA-2, and SHA-3, yet is at least as secure as the latest standard SHA-3. BLAKE2 has been adopted by many projects due to its high speed, security, and simplicity." https://blake2.net/
node-blake2 provides a stream-compatible
blake2b, blake2bp, blake2s, and blake2sp Hash
and KeyedHash
for Node.js.
node-blake2 has been tested to work with the following compilers and platforms:
Compiler | Operating System | Architecture |
---|---|---|
GCC 8.3.0, 10.2.0, 11.2.0, 12.2.1 | GNU/Linux Gentoo | x86_64 |
LLVM clang 11.1.0, 13.0.0, 15.0.7 | GNU/Linux Gentoo | x86_64 |
GCC 5.4.0 | GNU/Linux Ubuntu 16.04 | x86_64 |
LLVM clang 11.1.0 | OpenBSD 7.0 | x86_64 |
Apple LLVM clang 9.1.0 | macOS 10.13 | x86_64 |
Visual Studio 2019 | Windows 11 | x86_64 |
Visual Studio 2015 | Windows 10 | x86_64 |
GCC 10.2.1 | GNU/Linux RPi OS 2021-10-30 | armv7l Cortex-A53 RPi 3 |
GCC 10.2.1 | GNU/Linux Debian 11.2 | aarch64 Cortex-A57 QEMU |
GCC 9.3.0 | GNU/Linux Ubuntu 20.04 | aarch64 Cortex-A72 RPi 4 |
Apple LLVM clang 12.0.5 | macOS 12 | aarch64 Apple M1 |
Python is required by node-gyp.
The Node.js Windows installer can automatically install Python and Visual Studio build tools.
In your project, run:
npm install blake2 --save
or install from the GitHub repo:
npm install vrza/node-blake2 --save
var blake2 = require('blake2');
var h = blake2.createHash('blake2b');
h.update(Buffer.from("test"));
console.log(h.digest("hex"));
blake2.createHash
works like node's
crypto.createHash
.
var blake2 = require('blake2');
var h = blake2.createKeyedHash('blake2b', Buffer.from('key - up to 64 bytes for blake2b, 32 for blake2s'));
h.update(Buffer.from("test"));
console.log(h.digest("hex"));
blake2.createKeyedHash
takes a key argument like
crypto.createHmac
.
Although it is not an HMAC, a keyed hash serves the same purpose.
blake2.create{Hash,KeyedHash}
support algorithms blake2b
, blake2bp
, blake2s
, and blake2sp
..update
on blake2.{Hash,KeyedHash}
must be a Buffer
.blake2.createKeyedHash(algo, key)
must be a Buffer
.crypto.Hash
, .digest()
can only be called once.This works exactly like it does with crypto.Hash
. See b2sum.js.
BLAKE2 can generate digests between 1-64 bytes for BLAKE2b and 1-32 bytes for
BLAKE2s. Pass digestLength
as an option to use a digest shorter than the
default (maximum length):
var blake2 = require('blake2');
var h = blake2.createHash('blake2b', {digestLength: 16});
h.update(Buffer.from("test"));
h.digest(); // Returns a Buffer with 16 bytes
or with a key:
var blake2 = require('blake2');
var h = blake2.createKeyedHash('blake2b', Buffer.from('my key'), {digestLength: 16});
h.update(Buffer.from("test"));
h.digest(); // Returns a Buffer with 16 bytes
Note that BLAKE2 will generate completely different digests for shorter digest lengths; they are not simply a slice of the default digest.
You can call .copy()
on a Hash
or KeyedHash
, which will return a new object with all of the internal BLAKE2 state copied from the source object.
var blake2 = require('blake2');
var h = blake2.createHash('blake2b');
h.update(Buffer.from("test"));
// Call .copy() before .digest(), because .digest() finalizes internal state
var j = h.copy();
// h is unaffected by updates to j
j.update(Buffer.from("more"));
console.log(h.digest());
console.log(j.digest());
FAQs
All four BLAKE2 variants (blake2b, blake2bp, blake2s, blake2sp) for Node.js, with stream support
The npm package blake2 receives a total of 14,675 weekly downloads. As such, blake2 popularity was classified as popular.
We found that blake2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.