import { Point } from "https://deno.land/x/alosaur@v0.38.0/src/security/session/src/secp256k1/mod.ts";
Default Point works in default aka affine coordinates: (x, y)
Methods
_setWindowSize(windowSize: number)
assertValidity(): void
double()
hasEvenY()
multiply(scalar: number | bigint)
multiplyAndAddUnsafe(): Point | undefined
Efficiently calculate aP + bQ
.
Unsafe, can expose private key, if used incorrectly.
TODO: Utilize Shamir's trick
negate()
toHex(isCompressed?): string
toHexX()
toRawBytes(isCompressed?): Uint8Array
toRawX()
Static Methods
private
fromCompressedHex(bytes: Uint8Array)Supports compressed Schnorr (32-byte) and ECDSA (33-byte) points
private
fromUncompressedHex(bytes: Uint8Array)fromPrivateKey(privateKey: PrivKey)
fromSignature(): Point
msgHash: Hex,
signature: Sig,
recovery: number,
Recovers public key from ECDSA signature. https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm#Public_key_recovery
recover(r, s, h) where
u1 = hs^-1 mod n
u2 = sr^-1 mod n
Q = u1⋅G + u2⋅R