1.1.1 • Published 11 months ago

@holo-host/wasm-key-manager v1.1.1

Weekly downloads
164
License
-
Repository
github
Last release
11 months ago

Wasm Key Manager

Rust/Wasm key management implementation that uses Ed25519 signing algorithm and Argon2 key derivation. The private key remains in Wasm memory with no direct access for Javascript.

npm.io npm.io

Release npm.io

Release source - https://github.com/Holo-Host/wasm-key-manager/

API Reference

API Reference

Usage

const { KeyManager, deriveSeedFrom } = require('@holo-host/wasm-key-manager')
const crypto = require('crypto')

const seed = crypto.randomBytes(32)
const hha_id = new Uint8Array([
	66, 123, 133, 136, 133, 6, 247, 116, 4, 59, 43, 206, 131, 168, 123, 44, 54, 52, 3, 53, 134, 75,
	137, 43, 63, 26, 216, 191, 67, 117, 38, 142,
])

// or derive seed
const seed = deriveSeedFrom(hha_id, 'someone@example.com', 'Passw0rd!')

const message = 'Hello World'
const keys = new KeyManager(seed)

const signature = keys.sign(message)
const verified = keys.verify(message, signature)

const public_key = keys.publicKey()
const verified = KeyManager.verifyWithPublicKey(message, signature, public_key)

Bundle for web

bootstrap.js

import('./index.js')
	.then((m) => Object.assign(window, m))
	.catch((e) => console.error('Error importing `index.js`:', e))

index.js

const { KeyManager, deriveSeedFrom } = require('@holo-host/wasm-key-manager')

module.exports = {
	KeyManager,
	deriveSeedFrom,
}

webpack.config.js

module.exports = {
	target: 'web',

	entry: './bootstrap.js',

	// Assign 'module.exports' to the window variable
	output: {
		libraryTarget: 'window',
	},
}

Contributing

1.1.1

11 months ago

1.1.0

11 months ago

1.0.0-dev.0

11 months ago

1.0.0

3 years ago

0.0.5

4 years ago

0.0.4

5 years ago