Elliptic curve
@webbuf/secp256k1
Rust/wasm optimized secp256k1 ecdsa and Diffie-Hellman
Install
npm install @webbuf/secp256k1Usage
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); // trueAPI reference (8 exports)
Functions
privateKeyAdd
functionprivateKeyAdd(privKey1: FixedBuf<32>, privKey2: FixedBuf<32>): FixedBuf<32>privateKeyVerify
functionprivateKeyVerify(privateKey: FixedBuf<32>): booleanpublicKeyAdd
functionpublicKeyAdd(publicKey1: FixedBuf<33>, publicKey2: FixedBuf<33>): FixedBuf<33>publicKeyCreate
functionpublicKeyCreate(privateKey: FixedBuf<32>): FixedBuf<33>publicKeyVerify
functionpublicKeyVerify(publicKey: FixedBuf<33>): booleansign
functionsign(digest: FixedBuf<32>, privateKey: FixedBuf<32>, k: FixedBuf<32>): FixedBuf<64>verify
functionverify(signature: FixedBuf<64>, digest: FixedBuf<32>, publicKey: FixedBuf<33>): boolean