Elliptic curve
@webbuf/secp256k1
Rust/wasm optimized secp256k1 ecdsa and Diffie-Hellman
Install
npm install @webbuf/secp256k1Usage
import { publicKeyCreate, publicKeyConvert } from "@webbuf/secp256k1";
import { FixedBuf } from "@webbuf/fixedbuf";
// Public example scalar; never use this fixed key for real signatures.
const privKey = FixedBuf.fromHex(32, "01".padStart(64, "0"));
const compressed = publicKeyCreate(privKey); // FixedBuf<33>, unchanged
const uncompressed = publicKeyConvert(compressed, false); // FixedBuf<65>
const restored = publicKeyConvert(uncompressed, true); // FixedBuf<33>API reference (13 exports)
Functions
bchSchnorrNonceX
functionLow-level x(kG). Never reuse a nonce or use this as a nonce generator.
bchSchnorrNonceX(k: FixedBuf<32>): FixedBuf<32>bchSchnorrSignWithChallenge
functionLow-level signing of a BCH challenge, NOT a message digest. Never reuse k.
bchSchnorrSignWithChallenge(challenge: FixedBuf<32>, privateKey: FixedBuf<32>, k: FixedBuf<32>): FixedBuf<64>bchSchnorrVerifyWithChallenge
functionLow-level equation check. This does NOT authenticate a message digest.
bchSchnorrVerifyWithChallenge(signature: FixedBuf<64>, challenge: FixedBuf<32>, publicKey: PublicKeyBuf): booleanprivateKeyAdd
functionprivateKeyAdd(privKey1: FixedBuf<32>, privKey2: FixedBuf<32>): FixedBuf<32>privateKeyVerify
functionprivateKeyVerify(privateKey: FixedBuf<32>): booleanpublicKeyAdd
functionpublicKeyAdd(publicKey1: PublicKeyBuf, publicKey2: PublicKeyBuf): FixedBuf<33>publicKeyConvert
functionValidate a SEC1 point and return independent bytes in the selected encoding.
publicKeyConvert(key: PublicKeyBuf, compressed: true): FixedBuf<33>
publicKeyConvert(key: PublicKeyBuf, compressed: false): FixedBuf<65>
publicKeyConvert(key: PublicKeyBuf, compressed: boolean): PublicKeyBufpublicKeyCreate
functionpublicKeyCreate(privateKey: FixedBuf<32>): FixedBuf<33>publicKeyVerify
functionpublicKeyVerify(publicKey: PublicKeyBuf): booleansign
functionsign(digest: FixedBuf<32>, privateKey: FixedBuf<32>, k: FixedBuf<32>): FixedBuf<64>verify
functionverify(signature: FixedBuf<64>, digest: FixedBuf<32>, publicKey: PublicKeyBuf): booleanType aliases
PublicKeyBuf
typetype PublicKeyBuf = FixedBuf<33> | FixedBuf<65>