New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@multiformats/sha3

Package Overview
Dependencies
Maintainers
4
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@multiformats/sha3 - npm Package Compare versions

Comparing version 1.1.1 to 2.0.0

cjs/browser-test/table.csv.js

94

cjs/browser-test/test-basics.js
'use strict';
var index = require('../index.js');
var assert = require('assert');
var chai = require('chai');
var multiformats = require('multiformats');
var table_csv = require('./table.csv.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
var chai__default = /*#__PURE__*/_interopDefaultLegacy(chai);
const test = it;
const same = assert__default['default'].deepStrictEqual;
const {multihash, bytes} = multiformats.create();
multihash.add(index);
const fixture = bytes.fromString('testFixture');
for (const {name, code} of index) {
describe(name, () => {
test('encode', async () => {
const hashed = await multihash.hash(fixture, name);
await multihash.validate(hashed, fixture);
const duplicate = await multihash.hash(fixture, code);
same(hashed, duplicate);
const {assert} = chai__default['default'];
const fixtures = [
[
'sha3-512',
'beep boop',
'1440fae2c9eb19906057f8bf507f0e73ee02bb669d58c3069e7718b89ca4d314cf4fd6f1679019cc46d185c7af34f6c05a307b070e74e9ed5b9c64f86aacc2b90d10'
],
[
'sha3-384',
'beep boop',
'153075a9cff1bcfbe8a7025aa225dd558fb002769d4bf3b67d2aaf180459172208bea989804aefccf060b583e629e5f41e8d'
],
[
'sha3-256',
'beep boop',
'1620828705da60284b39de02e3599d1f39e6c1df001f5dbf63c9ec2d2c91a95a427f'
],
[
'sha3-224',
'beep boop',
'171c0da73a89549018df311c0a63250e008f7be357f93ba4e582aaea32b8'
],
[
'shake-128',
'foo',
'1820f84e95cb5fbd2038863ab27d3cdeac295ad2d4ab96ad1f4b070c0bf36078ef08'
],
[
'shake-256',
'foo',
'19401af97f7818a28edfdfce5ec66dbdc7e871813816d7d585fe1f12475ded5b6502b7723b74e2ee36f2651a10a8eaca72aa9148c3c761aaceac8f6d6cc64381ed39'
],
[
'keccak-224',
'beep boop',
'1a1c2bd72cde2f75e523512999eb7639f17b699efe29bec342f5a0270896'
],
[
'keccak-256',
'beep boop',
'1b20ee6f6b4ce5d754c01203cb3b99294b88615df5999e20d6fe509204fa254a0f97'
],
[
'keccak-384',
'beep boop',
'1c300e2fcca40e861fc425a2503a65f4a4befab7be7f193e57654ca3713e85262b035e54d5ade93f9632b810ab88b04f7d84'
],
[
'keccak-512',
'beep boop',
'1d40e161c54798f78eba3404ac5e7e12d27555b7b810e7fd0db3f25ffa0c785c438331b0fbb6156215f69edf403c642e5280f4521da9bd767296ec81f05100852e78'
]
];
describe('Digests', () => {
for (const [name, input, expectedDigest] of fixtures) {
it(name, async () => {
const hasher = index[name.replace('-', '')];
const hash = await hasher.digest(multiformats.bytes.fromString(input));
assert.strictEqual(hash.code, hasher.code);
assert.strictEqual(multiformats.bytes.toHex(hash.bytes), expectedDigest);
});
});
}
}
});
describe('Hashers', () => {
const beepboop = multiformats.bytes.fromString('beep boop');
const codecs = table_csv.split('\n').filter(Boolean).map(l => l.split(',').map(e => e.trim()).map(e => e.startsWith('0x') ? parseInt(e, 16) : e));
for (const [name, , code] of codecs) {
const exportName = name.replace('-', '');
it(name, async () => {
const hasher = index[exportName];
assert.strictEqual(hasher.code, code);
const hash = await hasher.digest(beepboop);
assert.strictEqual(hash.code, hasher.code);
});
}
});

124

cjs/index.js
'use strict';
var sha3 = require('js-sha3');
Object.defineProperty(exports, '__esModule', { value: true });
var hasher = require('multiformats/hashes/hasher');
var sha3$1 = require('js-sha3');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var sha3__default = /*#__PURE__*/_interopDefaultLegacy(sha3);
var sha3__default = /*#__PURE__*/_interopDefaultLegacy(sha3$1);
'use strict';
const encoder = fn => b => new Uint8Array(fn.array(b));
var main = [
{
code: 20,
name: 'sha3-512',
encode: encoder(sha3__default['default'].sha3_512)
},
{
code: 21,
name: 'sha3-384',
encode: encoder(sha3__default['default'].sha3_384)
},
{
code: 22,
name: 'sha3-256',
encode: encoder(sha3__default['default'].sha3_256)
},
{
code: 23,
name: 'sha3-224',
encode: encoder(sha3__default['default'].sha3_224)
},
{
code: 24,
name: 'shake-128',
encode: encoder(sha3__default['default'].shake128)
},
{
code: 25,
name: 'shake-256',
encode: encoder(sha3__default['default'].shake256)
},
{
code: 26,
name: 'keccak-224',
encode: encoder(sha3__default['default'].keccak224)
},
{
code: 27,
name: 'keccak-256',
encode: encoder(sha3__default['default'].keccak256)
},
{
code: 28,
name: 'keccak-384',
encode: encoder(sha3__default['default'].keccak384)
},
{
code: 29,
name: 'keccak-512',
encode: encoder(sha3__default['default'].keccak512)
}
];
function encoder(fn) {
return b => new Uint8Array(fn.array(b));
}
const sha3224 = hasher.from({
code: 23,
name: 'sha3-224',
encode: encoder(sha3__default['default'].sha3_224)
});
const sha3256 = hasher.from({
code: 22,
name: 'sha3-256',
encode: encoder(sha3__default['default'].sha3_256)
});
const sha3384 = hasher.from({
code: 21,
name: 'sha3-384',
encode: encoder(sha3__default['default'].sha3_384)
});
const sha3512 = hasher.from({
code: 20,
name: 'sha3-512',
encode: encoder(sha3__default['default'].sha3_512)
});
const shake128 = hasher.from({
code: 24,
name: 'shake-128',
encode: b => new Uint8Array(sha3__default['default'].shake128.array(b, 256))
});
const shake256 = hasher.from({
code: 25,
name: 'shake-256',
encode: b => new Uint8Array(sha3__default['default'].shake256.array(b, 512))
});
const keccak224 = hasher.from({
code: 26,
name: 'keccak-224',
encode: encoder(sha3__default['default'].keccak224)
});
const keccak256 = hasher.from({
code: 27,
name: 'keccak-256',
encode: encoder(sha3__default['default'].keccak256)
});
const keccak384 = hasher.from({
code: 28,
name: 'keccak-384',
encode: encoder(sha3__default['default'].keccak384)
});
const keccak512 = hasher.from({
code: 29,
name: 'keccak-512',
encode: encoder(sha3__default['default'].keccak512)
});
module.exports = main;
exports.keccak224 = keccak224;
exports.keccak256 = keccak256;
exports.keccak384 = keccak384;
exports.keccak512 = keccak512;
exports.sha3224 = sha3224;
exports.sha3256 = sha3256;
exports.sha3384 = sha3384;
exports.sha3512 = sha3512;
exports.shake128 = shake128;
exports.shake256 = shake256;
'use strict';
var index = require('../index.js');
var assert = require('assert');
var chai = require('chai');
var multiformats = require('multiformats');
var table_csv = require('./table.csv.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert);
var chai__default = /*#__PURE__*/_interopDefaultLegacy(chai);
const test = it;
const same = assert__default['default'].deepStrictEqual;
const {multihash, bytes} = multiformats.create();
multihash.add(index);
const fixture = bytes.fromString('testFixture');
for (const {name, code} of index) {
describe(name, () => {
test('encode', async () => {
const hashed = await multihash.hash(fixture, name);
await multihash.validate(hashed, fixture);
const duplicate = await multihash.hash(fixture, code);
same(hashed, duplicate);
const {assert} = chai__default['default'];
const fixtures = [
[
'sha3-512',
'beep boop',
'1440fae2c9eb19906057f8bf507f0e73ee02bb669d58c3069e7718b89ca4d314cf4fd6f1679019cc46d185c7af34f6c05a307b070e74e9ed5b9c64f86aacc2b90d10'
],
[
'sha3-384',
'beep boop',
'153075a9cff1bcfbe8a7025aa225dd558fb002769d4bf3b67d2aaf180459172208bea989804aefccf060b583e629e5f41e8d'
],
[
'sha3-256',
'beep boop',
'1620828705da60284b39de02e3599d1f39e6c1df001f5dbf63c9ec2d2c91a95a427f'
],
[
'sha3-224',
'beep boop',
'171c0da73a89549018df311c0a63250e008f7be357f93ba4e582aaea32b8'
],
[
'shake-128',
'foo',
'1820f84e95cb5fbd2038863ab27d3cdeac295ad2d4ab96ad1f4b070c0bf36078ef08'
],
[
'shake-256',
'foo',
'19401af97f7818a28edfdfce5ec66dbdc7e871813816d7d585fe1f12475ded5b6502b7723b74e2ee36f2651a10a8eaca72aa9148c3c761aaceac8f6d6cc64381ed39'
],
[
'keccak-224',
'beep boop',
'1a1c2bd72cde2f75e523512999eb7639f17b699efe29bec342f5a0270896'
],
[
'keccak-256',
'beep boop',
'1b20ee6f6b4ce5d754c01203cb3b99294b88615df5999e20d6fe509204fa254a0f97'
],
[
'keccak-384',
'beep boop',
'1c300e2fcca40e861fc425a2503a65f4a4befab7be7f193e57654ca3713e85262b035e54d5ade93f9632b810ab88b04f7d84'
],
[
'keccak-512',
'beep boop',
'1d40e161c54798f78eba3404ac5e7e12d27555b7b810e7fd0db3f25ffa0c785c438331b0fbb6156215f69edf403c642e5280f4521da9bd767296ec81f05100852e78'
]
];
describe('Digests', () => {
for (const [name, input, expectedDigest] of fixtures) {
it(name, async () => {
const hasher = index[name.replace('-', '')];
const hash = await hasher.digest(multiformats.bytes.fromString(input));
assert.strictEqual(hash.code, hasher.code);
assert.strictEqual(multiformats.bytes.toHex(hash.bytes), expectedDigest);
});
});
}
}
});
describe('Hashers', () => {
const beepboop = multiformats.bytes.fromString('beep boop');
const codecs = table_csv.split('\n').filter(Boolean).map(l => l.split(',').map(e => e.trim()).map(e => e.startsWith('0x') ? parseInt(e, 16) : e));
for (const [name, , code] of codecs) {
const exportName = name.replace('-', '');
it(name, async () => {
const hasher = index[exportName];
assert.strictEqual(hasher.code, code);
const hash = await hasher.digest(beepboop);
assert.strictEqual(hash.code, hasher.code);
});
}
});

@@ -1,18 +0,80 @@

import main from '../index.js';
import assert from 'assert';
import { create } from 'multiformats';
const test = it;
const same = assert.deepStrictEqual;
const {multihash, bytes} = create();
multihash.add(main);
const fixture = bytes.fromString('testFixture');
for (const {name, code} of main) {
describe(name, () => {
test('encode', async () => {
const hashed = await multihash.hash(fixture, name);
await multihash.validate(hashed, fixture);
const duplicate = await multihash.hash(fixture, code);
same(hashed, duplicate);
import * as sha3 from '../index.js';
import chai from 'chai';
import { bytes } from 'multiformats';
import table from './table.csv.js';
const {assert} = chai;
const fixtures = [
[
'sha3-512',
'beep boop',
'1440fae2c9eb19906057f8bf507f0e73ee02bb669d58c3069e7718b89ca4d314cf4fd6f1679019cc46d185c7af34f6c05a307b070e74e9ed5b9c64f86aacc2b90d10'
],
[
'sha3-384',
'beep boop',
'153075a9cff1bcfbe8a7025aa225dd558fb002769d4bf3b67d2aaf180459172208bea989804aefccf060b583e629e5f41e8d'
],
[
'sha3-256',
'beep boop',
'1620828705da60284b39de02e3599d1f39e6c1df001f5dbf63c9ec2d2c91a95a427f'
],
[
'sha3-224',
'beep boop',
'171c0da73a89549018df311c0a63250e008f7be357f93ba4e582aaea32b8'
],
[
'shake-128',
'foo',
'1820f84e95cb5fbd2038863ab27d3cdeac295ad2d4ab96ad1f4b070c0bf36078ef08'
],
[
'shake-256',
'foo',
'19401af97f7818a28edfdfce5ec66dbdc7e871813816d7d585fe1f12475ded5b6502b7723b74e2ee36f2651a10a8eaca72aa9148c3c761aaceac8f6d6cc64381ed39'
],
[
'keccak-224',
'beep boop',
'1a1c2bd72cde2f75e523512999eb7639f17b699efe29bec342f5a0270896'
],
[
'keccak-256',
'beep boop',
'1b20ee6f6b4ce5d754c01203cb3b99294b88615df5999e20d6fe509204fa254a0f97'
],
[
'keccak-384',
'beep boop',
'1c300e2fcca40e861fc425a2503a65f4a4befab7be7f193e57654ca3713e85262b035e54d5ade93f9632b810ab88b04f7d84'
],
[
'keccak-512',
'beep boop',
'1d40e161c54798f78eba3404ac5e7e12d27555b7b810e7fd0db3f25ffa0c785c438331b0fbb6156215f69edf403c642e5280f4521da9bd767296ec81f05100852e78'
]
];
describe('Digests', () => {
for (const [name, input, expectedDigest] of fixtures) {
it(name, async () => {
const hasher = sha3[name.replace('-', '')];
const hash = await hasher.digest(bytes.fromString(input));
assert.strictEqual(hash.code, hasher.code);
assert.strictEqual(bytes.toHex(hash.bytes), expectedDigest);
});
});
}
}
});
describe('Hashers', () => {
const beepboop = bytes.fromString('beep boop');
const codecs = table.split('\n').filter(Boolean).map(l => l.split(',').map(e => e.trim()).map(e => e.startsWith('0x') ? parseInt(e, 16) : e));
for (const [name, , code] of codecs) {
const exportName = name.replace('-', '');
it(name, async () => {
const hasher = sha3[exportName];
assert.strictEqual(hasher.code, code);
const hash = await hasher.digest(beepboop);
assert.strictEqual(hash.code, hasher.code);
});
}
});
'use strict';
import { from } from 'multiformats/hashes/hasher';
import sha3 from 'js-sha3';
const encoder = fn => b => new Uint8Array(fn.array(b));
export default [
{
code: 20,
name: 'sha3-512',
encode: encoder(sha3.sha3_512)
},
{
code: 21,
name: 'sha3-384',
encode: encoder(sha3.sha3_384)
},
{
code: 22,
name: 'sha3-256',
encode: encoder(sha3.sha3_256)
},
{
code: 23,
name: 'sha3-224',
encode: encoder(sha3.sha3_224)
},
{
code: 24,
name: 'shake-128',
encode: encoder(sha3.shake128)
},
{
code: 25,
name: 'shake-256',
encode: encoder(sha3.shake256)
},
{
code: 26,
name: 'keccak-224',
encode: encoder(sha3.keccak224)
},
{
code: 27,
name: 'keccak-256',
encode: encoder(sha3.keccak256)
},
{
code: 28,
name: 'keccak-384',
encode: encoder(sha3.keccak384)
},
{
code: 29,
name: 'keccak-512',
encode: encoder(sha3.keccak512)
}
];
function encoder(fn) {
return b => new Uint8Array(fn.array(b));
}
export const sha3224 = from({
code: 23,
name: 'sha3-224',
encode: encoder(sha3.sha3_224)
});
export const sha3256 = from({
code: 22,
name: 'sha3-256',
encode: encoder(sha3.sha3_256)
});
export const sha3384 = from({
code: 21,
name: 'sha3-384',
encode: encoder(sha3.sha3_384)
});
export const sha3512 = from({
code: 20,
name: 'sha3-512',
encode: encoder(sha3.sha3_512)
});
export const shake128 = from({
code: 24,
name: 'shake-128',
encode: b => new Uint8Array(sha3.shake128.array(b, 256))
});
export const shake256 = from({
code: 25,
name: 'shake-256',
encode: b => new Uint8Array(sha3.shake256.array(b, 512))
});
export const keccak224 = from({
code: 26,
name: 'keccak-224',
encode: encoder(sha3.keccak224)
});
export const keccak256 = from({
code: 27,
name: 'keccak-256',
encode: encoder(sha3.keccak256)
});
export const keccak384 = from({
code: 28,
name: 'keccak-384',
encode: encoder(sha3.keccak384)
});
export const keccak512 = from({
code: 29,
name: 'keccak-512',
encode: encoder(sha3.keccak512)
});

@@ -1,18 +0,80 @@

import main from '../index.js';
import assert from 'assert';
import { create } from 'multiformats';
const test = it;
const same = assert.deepStrictEqual;
const {multihash, bytes} = create();
multihash.add(main);
const fixture = bytes.fromString('testFixture');
for (const {name, code} of main) {
describe(name, () => {
test('encode', async () => {
const hashed = await multihash.hash(fixture, name);
await multihash.validate(hashed, fixture);
const duplicate = await multihash.hash(fixture, code);
same(hashed, duplicate);
import * as sha3 from '../index.js';
import chai from 'chai';
import { bytes } from 'multiformats';
import table from './table.csv.js';
const {assert} = chai;
const fixtures = [
[
'sha3-512',
'beep boop',
'1440fae2c9eb19906057f8bf507f0e73ee02bb669d58c3069e7718b89ca4d314cf4fd6f1679019cc46d185c7af34f6c05a307b070e74e9ed5b9c64f86aacc2b90d10'
],
[
'sha3-384',
'beep boop',
'153075a9cff1bcfbe8a7025aa225dd558fb002769d4bf3b67d2aaf180459172208bea989804aefccf060b583e629e5f41e8d'
],
[
'sha3-256',
'beep boop',
'1620828705da60284b39de02e3599d1f39e6c1df001f5dbf63c9ec2d2c91a95a427f'
],
[
'sha3-224',
'beep boop',
'171c0da73a89549018df311c0a63250e008f7be357f93ba4e582aaea32b8'
],
[
'shake-128',
'foo',
'1820f84e95cb5fbd2038863ab27d3cdeac295ad2d4ab96ad1f4b070c0bf36078ef08'
],
[
'shake-256',
'foo',
'19401af97f7818a28edfdfce5ec66dbdc7e871813816d7d585fe1f12475ded5b6502b7723b74e2ee36f2651a10a8eaca72aa9148c3c761aaceac8f6d6cc64381ed39'
],
[
'keccak-224',
'beep boop',
'1a1c2bd72cde2f75e523512999eb7639f17b699efe29bec342f5a0270896'
],
[
'keccak-256',
'beep boop',
'1b20ee6f6b4ce5d754c01203cb3b99294b88615df5999e20d6fe509204fa254a0f97'
],
[
'keccak-384',
'beep boop',
'1c300e2fcca40e861fc425a2503a65f4a4befab7be7f193e57654ca3713e85262b035e54d5ade93f9632b810ab88b04f7d84'
],
[
'keccak-512',
'beep boop',
'1d40e161c54798f78eba3404ac5e7e12d27555b7b810e7fd0db3f25ffa0c785c438331b0fbb6156215f69edf403c642e5280f4521da9bd767296ec81f05100852e78'
]
];
describe('Digests', () => {
for (const [name, input, expectedDigest] of fixtures) {
it(name, async () => {
const hasher = sha3[name.replace('-', '')];
const hash = await hasher.digest(bytes.fromString(input));
assert.strictEqual(hash.code, hasher.code);
assert.strictEqual(bytes.toHex(hash.bytes), expectedDigest);
});
});
}
}
});
describe('Hashers', () => {
const beepboop = bytes.fromString('beep boop');
const codecs = table.split('\n').filter(Boolean).map(l => l.split(',').map(e => e.trim()).map(e => e.startsWith('0x') ? parseInt(e, 16) : e));
for (const [name, , code] of codecs) {
const exportName = name.replace('-', '');
it(name, async () => {
const hasher = sha3[exportName];
assert.strictEqual(hasher.code, code);
const hash = await hasher.digest(beepboop);
assert.strictEqual(hash.code, hasher.code);
});
}
});
{
"name": "@multiformats/sha3",
"version": "1.1.1",
"version": "2.0.0",
"description": "Multiformats hash functions for SHA3",
"main": "./cjs/index.js",
"scripts": {
"build": "npm_config_yes=true npx ipjs@latest build --tests",
"publish": "npm_config_yes=true npx ipjs@latest publish",
"build": "npm run build:js && npm run build:types",
"build:js": "ipjs build --tests --main && npm run build:copy",
"build:copy": "cp -a tsconfig.json *.js dist/",
"build:types": "npm run build:copy && cd dist && tsc --build",
"publish": "ipjs publish",
"lint": "standard",
"test:cjs": "npm run build && mocha dist/cjs/node-test/test-*.js",
"test:node": "hundreds mocha test/test-*.js",
"test:browser": "polendina --cleanup dist/cjs/browser-test/test-*.js",
"test": "npm run lint && npm run test:node && npm run test:cjs && npm run test:browser",
"coverage": "c8 --reporter=html mocha test/test-*.js && npx st -d coverage -p 8080"
"test:cjs": "npm run build && mocha dist/cjs/node-test/test-*.js && npm run test:cjs:browser",
"test:node": "c8 --check-coverage --branches 100 --functions 100 --lines 100 mocha test/test-*.js",
"test:cjs:browser": "polendina --cleanup dist/cjs/browser-test/test-*.js",
"test": "npm run lint && npm run test:node && npm run test:cjs",
"coverage": "c8 --reporter=html mocha test/test-*.js && npm_config_yes=true npx st -d coverage -p 8080"
},

@@ -19,14 +24,25 @@ "exports": {

},
"keywords": [],
"keywords": [
"IPFS",
"IPLD",
"multiformats",
"hash",
"multihash",
"blake2"
],
"author": "Mikeal Rogers <mikeal.rogers@gmail.com> (https://www.mikealrogers.com/)",
"license": "(Apache-2.0 AND MIT)",
"dependencies": {
"js-sha3": "^0.8.0"
"js-sha3": "^0.8.0",
"multiformats": "^9.4.1"
},
"devDependencies": {
"hundreds": "0.0.8",
"mocha": "^8.1.1",
"multiformats": "3.0.3",
"@ipld/dag-cbor": "^6.0.5",
"c8": "^7.7.3",
"chai": "^4.3.4",
"ipjs": "^5.0.2",
"mocha": "^9.0.2",
"polendina": "^1.1.0",
"standard": "^14.3.4"
"standard": "^16.0.3",
"typescript": "^4.3.5"
},

@@ -41,4 +57,99 @@ "repository": {

"homepage": "https://github.com/mikeal/js-sha3#readme",
"description": "Multiformats hash functions for SHA3",
"typesVersions": {
"*": {
"*": [
"types/*"
],
"types/*": [
"types/*"
]
}
},
"release": {
"branches": [
"master"
],
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "conventionalcommits",
"releaseRules": [
{
"breaking": true,
"release": "major"
},
{
"revert": true,
"release": "patch"
},
{
"type": "feat",
"release": "minor"
},
{
"type": "fix",
"release": "patch"
},
{
"type": "chore",
"release": "patch"
},
{
"type": "docs",
"release": "patch"
},
{
"type": "test",
"release": "patch"
},
{
"scope": "no-release",
"release": false
}
]
}
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "chore",
"section": "Trivial Changes"
},
{
"type": "docs",
"section": "Trivial Changes"
},
{
"type": "test",
"section": "Tests"
}
]
}
}
],
"@semantic-release/changelog",
[
"@semantic-release/npm",
{
"pkgRoot": "dist"
}
],
"@semantic-release/github",
"@semantic-release/git"
]
},
"browser": "./cjs/index.js"
}
}

@@ -1,16 +0,55 @@

# js-sha3
# @multiformats/sha3
Multiformats hash functions for SHA3.
SHA3 (and related) multihash hashers for [multiformats](https://github.com/multiformats/js-multiformats).
`MultihashHashers`s are exported from this library, they produce `MultihashDigest`s. Details about these can be found in the [multiformats multihash interface definitions](https://github.com/multiformats/js-multiformats/blob/master/src/hashes/interface.ts).
```js
import multiformats from 'multiformats/basics'
import sha3 from '@multiformats/sha3'
import * as Block from 'multiformats/block'
import * as codec from '@ipld/dag-cbor'
import { sha3256 as hasher } from '@multiformats/sha3'
const { multihash } = multiformats
multihash.add(sha3)
async function run () {
const value = { hello: 'world' }
const block = await Block.encode({ value, hasher, codec })
console.log(block.cid)
// -> CID(bafyrmidyqnbqbeh5lmkwavjizfmsz6ezwvjleweh5frwk56akfyugoio2e)
}
const data = new Uint8Array([...someData])
const hash = await multihash.hash(data, 'sha3-384')
run().catch(console.error)
```
This package contains hash functions for `sha3-224`, `sha3-256`, `sha3-384`,`sha3-512`, `shake-128`, `shake-256`, `keccak-224`, `keccak-256`, `keccak-384`, and `keccak-512`.
## Usage
The `@multiformats/sha3` package exports `sha3*`, `shake*` and `keccak*` `MultihashHasher`s. The Multicodecs [table](https://github.com/multiformats/multicodec/blob/master/table.csv) defines these multihashes.
The following `MultihashHasher`s are exported:
* `sha3224` - SHA3-224
* `sha3256` - SHA3-256
* `sha3384` - SHA3-384
* `sha3512` - SHA3-512
* `shake128` - SHAKE-128 (256 output bits)
* `shake256` - SHAKE-256 (512 output bits)
* `keccak224` - KECCAK-224
* `keccak256` - KECCAK-256
* `keccak384` - KECCAK-384
* `keccak512` - KECCAK-512
e.g. he `sha3-384`, multicodec code `0x15`, may be imported as:
```js
import { sha3384 } from '@multiformats/sha3'
```
## License
Licensed under either of
* Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / http://www.apache.org/licenses/LICENSE-2.0)
* MIT ([LICENSE-MIT](LICENSE-MIT) / http://opensource.org/licenses/MIT)
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc