UNPKG

@webbuf/secp256k1

Version:

Rust/wasm optimized secp256k1 ecdsa and Diffie-Hellman for the web, node.js, deno, and bun.

34 lines (33 loc) 1.45 kB
import { sign as raw_sign, verify as raw_verify, shared_secret, public_key_add, public_key_create, public_key_verify, private_key_add, private_key_verify, } from "./rs-webbuf_secp256k1-inline-base64/webbuf_secp256k1.js"; import { WebBuf } from "@webbuf/webbuf"; import { FixedBuf } from "@webbuf/fixedbuf"; export function sign(digest, privateKey, k) { return FixedBuf.fromBuf(64, WebBuf.fromUint8Array(raw_sign(digest.buf, privateKey.buf, k.buf))); } export function verify(signature, digest, publicKey) { try { raw_verify(signature.buf, digest.buf, publicKey.buf); } catch (e) { return false; } return true; } export function sharedSecret(privateKey, publicKey) { return FixedBuf.fromBuf(33, WebBuf.fromUint8Array(shared_secret(privateKey.buf, publicKey.buf))); } export function publicKeyAdd(publicKey1, publicKey2) { return FixedBuf.fromBuf(33, WebBuf.fromUint8Array(public_key_add(publicKey1.buf, publicKey2.buf))); } export function publicKeyCreate(privateKey) { return FixedBuf.fromBuf(33, WebBuf.fromUint8Array(public_key_create(privateKey.buf))); } export function publicKeyVerify(publicKey) { return public_key_verify(publicKey.buf); } export function privateKeyAdd(privKey1, privKey2) { return FixedBuf.fromBuf(32, WebBuf.fromUint8Array(private_key_add(privKey1.buf, privKey2.buf))); } export function privateKeyVerify(privateKey) { return private_key_verify(privateKey.buf); }