x25519-wasm-vn
v1.4.3
Published
X25519 for WebAssembly
Readme
x25519-wasm-vn
Usage
import instantiate, { DiffieHellman, generate_keypair, X25519Keypair } from 'x25519-wasm-vn/web'
interface KeyPair {
privateKey: Uint8Array
publicKey: Uint8Array
}
export const generateKeyPair = async (): Promise<KeyPair> => {
let keypair_wasm: X25519Keypair | null = null
try {
await instantiate()
keypair_wasm = generate_keypair()
return {
privateKey: keypair_wasm.private_key,
publicKey: keypair_wasm.public_key
}
} catch (err) {
console.error(err)
} finally {
if (keypair_wasm) {
keypair_wasm.free()
}
}
}
export const diffieHellman = async (privateKey: Uint8Array, publicKey: Uint8Array): Promise<Uint8Array> => {
let _wasm: DiffieHellman | null = null
try {
await instantiate()
_wasm = new DiffieHellman(privateKey)
return _wasm.get_shared_key(publicKey)
} catch (err) {
console.error(err)
} finally {
if (_wasm) {
_wasm.free()
}
}
}