Elliptic curve
@webbuf/secp256k1
Rust/wasm optimized secp256k1 ecdsa and Diffie-Hellman
Install
npm install @webbuf/secp256k1 Usage
import {
publicKeyCreate,
privateKeyVerify,
publicKeyVerify,
} from "@webbuf/secp256k1";
import { FixedBuf } from "@webbuf/fixedbuf";
// Generate random private key
const privKey = FixedBuf.fromRandom<32>(32);
// Verify private key is valid
privateKeyVerify(privKey); // true
// Derive public key (compressed, 33 bytes)
const pubKey = publicKeyCreate(privKey);
// Verify public key
publicKeyVerify(pubKey); // true API reference (8 exports)
Functions
privateKeyAdd
functionprivateKeyAdd(privKey1: FixedBuf<32>, privKey2: FixedBuf<32>): FixedBuf<32> privateKeyVerify
functionprivateKeyVerify(privateKey: FixedBuf<32>): boolean publicKeyAdd
functionpublicKeyAdd(publicKey1: FixedBuf<33>, publicKey2: FixedBuf<33>): FixedBuf<33> publicKeyCreate
functionpublicKeyCreate(privateKey: FixedBuf<32>): FixedBuf<33> publicKeyVerify
functionpublicKeyVerify(publicKey: FixedBuf<33>): boolean sign
functionsign(digest: FixedBuf<32>, privateKey: FixedBuf<32>, k: FixedBuf<32>): FixedBuf<64> verify
functionverify(signature: FixedBuf<64>, digest: FixedBuf<32>, publicKey: FixedBuf<33>): boolean