DarkCurves.Curve_secp256k1Type

SECP256k1 curve y^2 = x^3 + 7 over the field of integers modulo 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1 with the order (little-endian) 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141.

DarkCurves.EllipticCurveType

Abstract type for an elliptic curve "bundle" that includes a point type, a scalar type, and operations on them.

DarkCurves.curve_point_typeMethod
curve_point_type(::Type{<:EllipticCurve})

Returns the type of a curve point (a subtype of EllipticCurvePoint) for an object of type EllipticCurve.

Objects of this type support zero(), iszero(), one(), rand(), +, -, ==, * (by a scalar type).

Base point is returned by one(), and infinity point by zero().

DarkCurves.curve_scalar_typeMethod
curve_scalar_type(::Type{<:EllipticCurve})

Returns the type of an associated scalar for an object of type EllipticCurve. All operations with objects of this type are done modulo curve order.

Objects of this type support zero(), iszero(), one(), rand(), +, -, ==, * (by a scalar type or a point type), iseven(), isodd(), >>, inv(), divrem(), trailing_zeros(), DarkIntegers.num_bits().

DarkCurves.lin_combMethod

Calculates a linear combination of curve points given an array of points and an array of coefficients.