Skip to main content
Version: 5.24.3

Namespace: weierstrass

ec.weierstrass

Interfaces​

Type Aliases​

AffinePoint​

Ƭ AffinePoint<T>: { x: T ; y: T } & { z?: never ; t?: never }

Type parameters​

Name
T

Defined in​

node_modules/@noble/curves/abstract/curve.d.ts:3


BasicWCurve​

Ƭ BasicWCurve<T>: BasicCurve<T> & { a: T ; b: T ; allowedPrivateKeyLengths?: readonly number[] ; wrapPrivateKey?: boolean ; endo?: EndomorphismOpts ; isTorsionFree?: (c: ProjConstructor<T>, point: ProjPointType<T>) => boolean ; clearCofactor?: (c: ProjConstructor<T>, point: ProjPointType<T>) => ProjPointType<T> }

Type parameters​

Name
T

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:17


SignOpts​

Ƭ SignOpts: Object

Type declaration​

NameType
lowS?boolean
extraEntropy?Entropy
prehash?boolean

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:27


VerOpts​

Ƭ VerOpts: Object

Type declaration​

NameType
lowS?boolean
prehash?boolean

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:32


CurvePointsType​

Ƭ CurvePointsType<T>: BasicWCurve<T> & { fromBytes?: (bytes: Uint8Array) => AffinePoint<T> ; toBytes?: (c: ProjConstructor<T>, point: ProjPointType<T>, isCompressed: boolean) => Uint8Array }

Type parameters​

Name
T

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:82


CurvePointsRes​

Ƭ CurvePointsRes<T>: Object

Type parameters​

Name
T

Type declaration​

NameType
ProjectivePointProjConstructor<T>
normPrivateKeyToScalar(key: PrivKey) => bigint
weierstrassEquation(x: T) => T
isWithinCurveOrder(num: bigint) => boolean

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:86


RecoveredSignatureType​

Ƭ RecoveredSignatureType: SignatureType & { recovery: number }

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:154


SignatureConstructor​

Ƭ SignatureConstructor: Object

Call signature​

• new SignatureConstructor(r, s): SignatureType

Parameters​
NameType
rbigint
sbigint
Returns​

SignatureType

Type declaration​

NameType
fromCompact(hex: Hex) => SignatureType
fromDER(hex: Hex) => SignatureType

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:157


PubKey​

Ƭ PubKey: Hex | ProjPointType<bigint>

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:166


CurveType​

Ƭ CurveType: BasicWCurve<bigint> & { hash: CHash ; hmac: HmacFnSync ; randomBytes: (bytesLength?: number) => Uint8Array ; lowS?: boolean ; bits2int?: (bytes: Uint8Array) => bigint ; bits2int_modN?: (bytes: Uint8Array) => bigint }

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:167


CurveFn​

Ƭ CurveFn: Object

Type declaration​

NameType
CURVEReturnType<typeof validateOpts>
getPublicKey(privateKey: PrivKey, isCompressed?: boolean) => Uint8Array
getSharedSecret(privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array
sign(msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType
verify(signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean
ProjectivePointProjConstructor<bigint>
SignatureSignatureConstructor
utils{ normPrivateKeyToScalar: (key: PrivKey) => bigint ; randomPrivateKey: () => Uint8Array ; precompute: (windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint> ; isValidPrivateKey: (privateKey: PrivKey) => boolean }
utils.normPrivateKeyToScalar(key: PrivKey) => bigint
utils.randomPrivateKey() => Uint8Array
utils.precompute(windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint>
utils.isValidPrivateKey[object Object]

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:200

Variables​

DER​

• Const DER: Object

Type declaration​

NameType
Err(m?: string) => { name: string ; message: string ; stack?: string }
_parseInt(data: Uint8Array) => { d: bigint ; l: Uint8Array }
toSig(hex: string | Uint8Array) => { r: bigint ; s: bigint }
hexFromSig(sig: { r: bigint ; s: bigint }) => string

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:92

Functions​

weierstrassPoints​

â–¸ weierstrassPoints<T>(opts): Object

Type parameters​

Name
T

Parameters​

NameType
optsCurvePointsType<T>

Returns​

Object

NameType
CURVEReadonly<{ nBitLength: number ; nByteLength: number ; Fp: mod.IField<T> ; n: bigint ; h: bigint ; hEff?: bigint ; Gx: T ; Gy: T ; allowInfinityPoint?: boolean ; a: T ; b: T ; allowedPrivateKeyLengths?: readonly number[] ; wrapPrivateKey?: boolean ; endo?: EndomorphismOpts ; isTorsionFree?: (c: ProjConstructor<T>, point: ProjPointType<T>) => boolean ; clearCofactor?: (c: ProjConstructor<T>, point: ProjPointType<T>) => ProjPointType<T> ; fromBytes?: (bytes: Uint8Array) => AffinePoint<T> ; toBytes?: (c: ProjConstructor<T>, point: ProjPointType<T>, isCompressed: boolean) => Uint8Array ; p: bigint }>
ProjectivePointProjConstructor<T>
normPrivateKeyToScalar(key: PrivKey) => bigint
weierstrassEquation(x: T) => T
isWithinCurveOrder(num: bigint) => boolean

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:113


weierstrass​

â–¸ weierstrass(curveDef): CurveFn

Parameters​

NameType
curveDefCurveType

Returns​

CurveFn

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:215


SWUFpSqrtRatio​

â–¸ SWUFpSqrtRatio<T>(Fp, Z): (u: T, v: T) => { isValid: boolean ; value: T }

Implementation of the Shallue and van de Woestijne method for any weierstrass curve. TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular. b = True and y = sqrt(u / v) if (u / v) is square in F, and b = False and y = sqrt(Z * (u / v)) otherwise.

Type parameters​

Name
T

Parameters​

NameType
FpIField<T>
ZT

Returns​

fn

â–¸ (u, v): Object

Parameters​
NameType
uT
vT
Returns​

Object

NameType
isValidboolean
valueT

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:225


mapToCurveSimpleSWU​

â–¸ mapToCurveSimpleSWU<T>(Fp, opts): (u: T) => { x: T ; y: T }

Simplified Shallue-van de Woestijne-Ulas Method https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2

Type parameters​

Name
T

Parameters​

NameType
FpIField<T>
optsObject
opts.AT
opts.BT
opts.ZT

Returns​

fn

â–¸ (u): Object

Parameters​
NameType
uT
Returns​

Object

NameType
xT
yT

Defined in​

node_modules/@noble/curves/abstract/weierstrass.d.ts:233