@holo-host/wasm-key-manager
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

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.

Release

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

Readme

Keywords

none

Package Sidebar

Install

npm i @holo-host/wasm-key-manager

Weekly Downloads

58

Version

1.1.1

License

none

Unpacked Size

213 kB

Total Files

7

Last publish

Collaborators

  • mrruby
  • evangineer
  • brisebom
  • peeech
  • jetttech
  • robbiecarlton
  • zo-el