Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Coordinates
- = Affine
- | Jacobian
- | Projective
- data Form
- class (GaloisField q, GaloisField r, Group (Point f c e q r)) => Curve (f :: Form) (c :: Coordinates) e q r where
- data Point f c e q r :: *
- char :: Point f c e q r -> Integer
- cof :: Point f c e q r -> Integer
- disc :: Point f c e q r -> q
- mul :: r ~ PrimeField p => Point f c e q r -> r -> Point f c e q r
- point :: q -> q -> Maybe (Point f c e q r)
- pointX :: q -> Maybe (Point f c e q r)
- yX :: Point f c e q r -> q -> Maybe q
- fromA :: Point f Affine e q r -> Point f c e q r
- toA :: Point f c e q r -> Point f Affine e q r
- class WCurve Projective e q r => WPCurve e q r where
- type WPPoint = WPoint Projective
- class WCurve Jacobian e q r => WJCurve e q r where
- type WJPoint = WPoint Jacobian
- class WCurve Affine e q r => WACurve e q r where
- type WAPoint = WPoint Affine
- class (GaloisField q, GaloisField r, Curve Weierstrass c e q r) => WCurve c e q r where
- type WPoint = Point Weierstrass
- class (Arbitrary g, Eq g, Generic g, Monoid g, Pretty g, Random g, Show g) => Group g where
Documentation
class (GaloisField q, GaloisField r, Group (Point f c e q r)) => Curve (f :: Form) (c :: Coordinates) e q r where Source #
Elliptic curves.
char :: Point f c e q r -> Integer Source #
Curve characteristic.
cof :: Point f c e q r -> Integer Source #
Curve cofactor.
disc :: Point f c e q r -> q Source #
Curve discriminant.
mul :: r ~ PrimeField p => Point f c e q r -> r -> Point f c e q r Source #
Curve point multiplication.
point :: q -> q -> Maybe (Point f c e q r) Source #
Get point from X and Y coordinates.
pointX :: q -> Maybe (Point f c e q r) Source #
Get point from X coordinate.
yX :: Point f c e q r -> q -> Maybe q Source #
Get Y coordinate from X coordinate.
fromA :: Point f Affine e q r -> Point f c e q r Source #
Transform from affine coordinates.
toA :: Point f c e q r -> Point f Affine e q r Source #
Transform to affine coordinates.
Instances
class WCurve Projective e q r => WPCurve e q r where Source #
Weierstrass projective curves y^2 = x^3 + Ax + B
.
Instances
WPCurve SECP521R1 Fq Fr Source # | Projective SECP521R1 curve is a Weierstrass projective curve. |
WPCurve SECP384R1 Fq Fr Source # | Projective SECP384R1 curve is a Weierstrass projective curve. |
WPCurve SECP256R1 Fq Fr Source # | Projective SECP256R1 curve is a Weierstrass projective curve. |
WPCurve SECP256K1 Fq Fr Source # | Projective SECP256K1 curve is a Weierstrass projective curve. |
WPCurve SECP224R1 Fq Fr Source # | Projective SECP224R1 curve is a Weierstrass projective curve. |
WPCurve SECP224K1 Fq Fr Source # | Projective SECP224K1 curve is a Weierstrass projective curve. |
WPCurve SECP192R1 Fq Fr Source # | Projective SECP192R1 curve is a Weierstrass projective curve. |
WPCurve SECP192K1 Fq Fr Source # | Projective SECP192K1 curve is a Weierstrass projective curve. |
WPCurve SECP160R2 Fq Fr Source # | Projective SECP160R2 curve is a Weierstrass projective curve. |
WPCurve SECP160R1 Fq Fr Source # | Projective SECP160R1 curve is a Weierstrass projective curve. |
WPCurve SECP160K1 Fq Fr Source # | Projective SECP160K1 curve is a Weierstrass projective curve. |
WPCurve SECP128R2 Fq Fr Source # | Projective SECP128R2 curve is a Weierstrass projective curve. |
WPCurve SECP128R1 Fq Fr Source # | Projective SECP128R1 curve is a Weierstrass projective curve. |
WPCurve SECP112R2 Fq Fr Source # | Projective SECP112R2 curve is a Weierstrass projective curve. |
WPCurve SECP112R1 Fq Fr Source # | Projective SECP112R1 curve is a Weierstrass projective curve. |
WPCurve BrainpoolP512T1 Fq Fr Source # | Projective BrainpoolP512T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP512T1 | |
WPCurve BrainpoolP512R1 Fq Fr Source # | Projective BrainpoolP512R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP512R1 | |
WPCurve BrainpoolP384T1 Fq Fr Source # | Projective BrainpoolP384T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP384T1 | |
WPCurve BrainpoolP384R1 Fq Fr Source # | Projective BrainpoolP384R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP384R1 | |
WPCurve BrainpoolP320T1 Fq Fr Source # | Projective BrainpoolP320T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP320T1 | |
WPCurve BrainpoolP320R1 Fq Fr Source # | Projective BrainpoolP320R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP320R1 | |
WPCurve BrainpoolP256T1 Fq Fr Source # | Projective BrainpoolP256T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP256T1 | |
WPCurve BrainpoolP256R1 Fq Fr Source # | Projective BrainpoolP256R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP256R1 | |
WPCurve BrainpoolP224T1 Fq Fr Source # | Projective BrainpoolP224T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP224T1 | |
WPCurve BrainpoolP224R1 Fq Fr Source # | Projective BrainpoolP224R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP224R1 | |
WPCurve BrainpoolP192T1 Fq Fr Source # | Projective BrainpoolP192T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP192T1 | |
WPCurve BrainpoolP192R1 Fq Fr Source # | Projective BrainpoolP192R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP192R1 | |
WPCurve BrainpoolP160T1 Fq Fr Source # | Projective BrainpoolP160T1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP160T1 | |
WPCurve BrainpoolP160R1 Fq Fr Source # | Projective BrainpoolP160R1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.BrainpoolP160R1 | |
WPCurve BN512 Fq Fr Source # | Projective BN512 curve is a Weierstrass projective curve. |
WPCurve BN462 Fq Fr Source # | Projective BN462 curve is a Weierstrass projective curve. |
WPCurve BN462T Fq2 Fr Source # | Projective BN462T curve is a Weierstrass projective curve. |
WPCurve BN384 Fq Fr Source # | Projective BN384 curve is a Weierstrass projective curve. |
WPCurve BN256 Fq Fr Source # | Projective BN256 curve is a Weierstrass projective curve. |
WPCurve BN254B Fq Fr Source # | Projective BN254B curve is a Weierstrass projective curve. |
WPCurve BN254BT Fq2 Fr Source # | Projective BN254BT curve is a Weierstrass projective curve. |
WPCurve BN254A Fq Fr Source # | Projective BN254A curve is a Weierstrass projective curve. |
WPCurve BN254AT Fq2 Fr Source # | Projective BN254AT curve is a Weierstrass projective curve. |
WPCurve BN254 Fq Fr Source # | Projective BN254 curve is a Weierstrass projective curve. |
WPCurve BN254T Fq2 Fr Source # | Projective BN254T curve is a Weierstrass projective curve. |
WPCurve BN224 Fq Fr Source # | Projective BN224 curve is a Weierstrass projective curve. |
WPCurve BLS48581 Fq Fr Source # | Projective BLS48581 curve is a Weierstrass projective curve. |
WPCurve BLS48581T Fq8 Fr Source # | Projective BLS48581T curve is a Weierstrass projective curve. |
WPCurve BLS12381 Fq Fr Source # | Projective BLS12381 curve is a Weierstrass projective curve. |
WPCurve BLS12381T Fq2 Fr Source # | Projective BLS12381T curve is a Weierstrass projective curve. |
WPCurve Anomalous Fq Fr Source # | Projective Anomalous curve is a Weierstrass projective curve. |
WPCurve ANSSIFRP256V1 Fq Fr Source # | Projective ANSSIFRP256V1 curve is a Weierstrass projective curve. |
Defined in Curve.Weierstrass.ANSSIFRP256V1 |
type WPPoint = WPoint Projective Source #
Weierstrass projective points.
class WCurve Jacobian e q r => WJCurve e q r where Source #
Weierstrass Jacobian curves y^2 = x^3 + Ax + B
.
Instances
WJCurve SECP521R1 Fq Fr Source # | Jacobian SECP521R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP384R1 Fq Fr Source # | Jacobian SECP384R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP256R1 Fq Fr Source # | Jacobian SECP256R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP256K1 Fq Fr Source # | Jacobian SECP256K1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP224R1 Fq Fr Source # | Jacobian SECP224R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP224K1 Fq Fr Source # | Jacobian SECP224K1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP192R1 Fq Fr Source # | Jacobian SECP192R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP192K1 Fq Fr Source # | Jacobian SECP192K1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP160R2 Fq Fr Source # | Jacobian SECP160R2 curve is a Weierstrass Jacobian curve. |
WJCurve SECP160R1 Fq Fr Source # | Jacobian SECP160R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP160K1 Fq Fr Source # | Jacobian SECP160K1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP128R2 Fq Fr Source # | Jacobian SECP128R2 curve is a Weierstrass Jacobian curve. |
WJCurve SECP128R1 Fq Fr Source # | Jacobian SECP128R1 curve is a Weierstrass Jacobian curve. |
WJCurve SECP112R2 Fq Fr Source # | Jacobian SECP112R2 curve is a Weierstrass Jacobian curve. |
WJCurve SECP112R1 Fq Fr Source # | Jacobian SECP112R1 curve is a Weierstrass Jacobian curve. |
WJCurve BrainpoolP512T1 Fq Fr Source # | Jacobian BrainpoolP512T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP512T1 | |
WJCurve BrainpoolP512R1 Fq Fr Source # | Jacobian BrainpoolP512R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP512R1 | |
WJCurve BrainpoolP384T1 Fq Fr Source # | Jacobian BrainpoolP384T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP384T1 | |
WJCurve BrainpoolP384R1 Fq Fr Source # | Jacobian BrainpoolP384R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP384R1 | |
WJCurve BrainpoolP320T1 Fq Fr Source # | Jacobian BrainpoolP320T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP320T1 | |
WJCurve BrainpoolP320R1 Fq Fr Source # | Jacobian BrainpoolP320R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP320R1 | |
WJCurve BrainpoolP256T1 Fq Fr Source # | Jacobian BrainpoolP256T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP256T1 | |
WJCurve BrainpoolP256R1 Fq Fr Source # | Jacobian BrainpoolP256R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP256R1 | |
WJCurve BrainpoolP224T1 Fq Fr Source # | Jacobian BrainpoolP224T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP224T1 | |
WJCurve BrainpoolP224R1 Fq Fr Source # | Jacobian BrainpoolP224R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP224R1 | |
WJCurve BrainpoolP192T1 Fq Fr Source # | Jacobian BrainpoolP192T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP192T1 | |
WJCurve BrainpoolP192R1 Fq Fr Source # | Jacobian BrainpoolP192R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP192R1 | |
WJCurve BrainpoolP160T1 Fq Fr Source # | Jacobian BrainpoolP160T1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP160T1 | |
WJCurve BrainpoolP160R1 Fq Fr Source # | Jacobian BrainpoolP160R1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.BrainpoolP160R1 | |
WJCurve BN512 Fq Fr Source # | Jacobian BN512 curve is a Weierstrass Jacobian curve. |
WJCurve BN462 Fq Fr Source # | Jacobian BN462 curve is a Weierstrass Jacobian curve. |
WJCurve BN462T Fq2 Fr Source # | Jacobian BN462T curve is a Weierstrass Jacobian curve. |
WJCurve BN384 Fq Fr Source # | Jacobian BN384 curve is a Weierstrass Jacobian curve. |
WJCurve BN256 Fq Fr Source # | Jacobian BN256 curve is a Weierstrass Jacobian curve. |
WJCurve BN254B Fq Fr Source # | Jacobian BN254B curve is a Weierstrass Jacobian curve. |
WJCurve BN254BT Fq2 Fr Source # | Jacobian BN254BT curve is a Weierstrass Jacobian curve. |
WJCurve BN254A Fq Fr Source # | Jacobian BN254A curve is a Weierstrass Jacobian curve. |
WJCurve BN254AT Fq2 Fr Source # | Jacobian BN254AT curve is a Weierstrass Jacobian curve. |
WJCurve BN254 Fq Fr Source # | Jacobian BN254 curve is a Weierstrass Jacobian curve. |
WJCurve BN254T Fq2 Fr Source # | Jacobian BN254T curve is a Weierstrass Jacobian curve. |
WJCurve BN224 Fq Fr Source # | Jacobian BN224 curve is a Weierstrass Jacobian curve. |
WJCurve BLS48581 Fq Fr Source # | Jacobian BLS48581 curve is a Weierstrass Jacobian curve. |
WJCurve BLS48581T Fq8 Fr Source # | Jacobian BLS48581T curve is a Weierstrass Jacobian curve. |
WJCurve BLS12381 Fq Fr Source # | Jacobian BLS12381 curve is a Weierstrass Jacobian curve. |
WJCurve BLS12381T Fq2 Fr Source # | Jacobian BLS12381T curve is a Weierstrass Jacobian curve. |
WJCurve Anomalous Fq Fr Source # | Jacobian Anomalous curve is a Weierstrass Jacobian curve. |
WJCurve ANSSIFRP256V1 Fq Fr Source # | Jacobian ANSSIFRP256V1 curve is a Weierstrass Jacobian curve. |
Defined in Curve.Weierstrass.ANSSIFRP256V1 |
class WCurve Affine e q r => WACurve e q r where Source #
Weierstrass affine curves y^2 = x^3 + Ax + B
.
Instances
WACurve SECP521R1 Fq Fr Source # | Affine SECP521R1 curve is a Weierstrass affine curve. |
WACurve SECP384R1 Fq Fr Source # | Affine SECP384R1 curve is a Weierstrass affine curve. |
WACurve SECP256R1 Fq Fr Source # | Affine SECP256R1 curve is a Weierstrass affine curve. |
WACurve SECP256K1 Fq Fr Source # | Affine SECP256K1 curve is a Weierstrass affine curve. |
WACurve SECP224R1 Fq Fr Source # | Affine SECP224R1 curve is a Weierstrass affine curve. |
WACurve SECP224K1 Fq Fr Source # | Affine SECP224K1 curve is a Weierstrass affine curve. |
WACurve SECP192R1 Fq Fr Source # | Affine SECP192R1 curve is a Weierstrass affine curve. |
WACurve SECP192K1 Fq Fr Source # | Affine SECP192K1 curve is a Weierstrass affine curve. |
WACurve SECP160R2 Fq Fr Source # | Affine SECP160R2 curve is a Weierstrass affine curve. |
WACurve SECP160R1 Fq Fr Source # | Affine SECP160R1 curve is a Weierstrass affine curve. |
WACurve SECP160K1 Fq Fr Source # | Affine SECP160K1 curve is a Weierstrass affine curve. |
WACurve SECP128R2 Fq Fr Source # | Affine SECP128R2 curve is a Weierstrass affine curve. |
WACurve SECP128R1 Fq Fr Source # | Affine SECP128R1 curve is a Weierstrass affine curve. |
WACurve SECP112R2 Fq Fr Source # | Affine SECP112R2 curve is a Weierstrass affine curve. |
WACurve SECP112R1 Fq Fr Source # | Affine SECP112R1 curve is a Weierstrass affine curve. |
WACurve BrainpoolP512T1 Fq Fr Source # | Affine BrainpoolP512T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP512T1 | |
WACurve BrainpoolP512R1 Fq Fr Source # | Affine BrainpoolP512R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP512R1 | |
WACurve BrainpoolP384T1 Fq Fr Source # | Affine BrainpoolP384T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP384T1 | |
WACurve BrainpoolP384R1 Fq Fr Source # | Affine BrainpoolP384R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP384R1 | |
WACurve BrainpoolP320T1 Fq Fr Source # | Affine BrainpoolP320T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP320T1 | |
WACurve BrainpoolP320R1 Fq Fr Source # | Affine BrainpoolP320R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP320R1 | |
WACurve BrainpoolP256T1 Fq Fr Source # | Affine BrainpoolP256T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP256T1 | |
WACurve BrainpoolP256R1 Fq Fr Source # | Affine BrainpoolP256R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP256R1 | |
WACurve BrainpoolP224T1 Fq Fr Source # | Affine BrainpoolP224T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP224T1 | |
WACurve BrainpoolP224R1 Fq Fr Source # | Affine BrainpoolP224R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP224R1 | |
WACurve BrainpoolP192T1 Fq Fr Source # | Affine BrainpoolP192T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP192T1 | |
WACurve BrainpoolP192R1 Fq Fr Source # | Affine BrainpoolP192R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP192R1 | |
WACurve BrainpoolP160T1 Fq Fr Source # | Affine BrainpoolP160T1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP160T1 | |
WACurve BrainpoolP160R1 Fq Fr Source # | Affine BrainpoolP160R1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.BrainpoolP160R1 | |
WACurve BN512 Fq Fr Source # | Affine BN512 curve is a Weierstrass affine curve. |
WACurve BN462 Fq Fr Source # | Affine BN462 curve is a Weierstrass affine curve. |
WACurve BN462T Fq2 Fr Source # | Affine BN462T curve is a Weierstrass affine curve. |
WACurve BN384 Fq Fr Source # | Affine BN384 curve is a Weierstrass affine curve. |
WACurve BN256 Fq Fr Source # | Affine BN256 curve is a Weierstrass affine curve. |
WACurve BN254B Fq Fr Source # | Affine BN254B curve is a Weierstrass affine curve. |
WACurve BN254BT Fq2 Fr Source # | Affine BN254BT curve is a Weierstrass affine curve. |
WACurve BN254A Fq Fr Source # | Affine BN254A curve is a Weierstrass affine curve. |
WACurve BN254AT Fq2 Fr Source # | Affine BN254AT curve is a Weierstrass affine curve. |
WACurve BN254 Fq Fr Source # | Affine BN254 curve is a Weierstrass affine curve. |
WACurve BN254T Fq2 Fr Source # | Affine BN254T curve is a Weierstrass affine curve. |
WACurve BN224 Fq Fr Source # | Affine BN224 curve is a Weierstrass affine curve. |
WACurve BLS48581 Fq Fr Source # | Affine BLS48581 curve is a Weierstrass affine curve. |
WACurve BLS48581T Fq8 Fr Source # | Affine BLS48581T curve is a Weierstrass affine curve. |
WACurve BLS12381 Fq Fr Source # | Affine BLS12381 curve is a Weierstrass affine curve. |
WACurve BLS12381T Fq2 Fr Source # | Affine BLS12381T curve is a Weierstrass affine curve. |
WACurve Anomalous Fq Fr Source # | Affine Anomalous curve is a Weierstrass affine curve. |
WACurve ANSSIFRP256V1 Fq Fr Source # | Affine ANSSIFRP256V1 curve is a Weierstrass affine curve. |
Defined in Curve.Weierstrass.ANSSIFRP256V1 |
class (GaloisField q, GaloisField r, Curve Weierstrass c e q r) => WCurve c e q r where Source #
Weierstrass curves.
:: WPoint c e q r | |
-> q | Coefficient |
:: WPoint c e q r | |
-> q | Coefficient |
:: WPoint c e q r | |
-> q | Coordinate |
:: WPoint c e q r | |
-> q | Coordinate |
Instances
type WPoint = Point Weierstrass Source #
Weierstrass points.
class (Arbitrary g, Eq g, Generic g, Monoid g, Pretty g, Random g, Show g) => Group g where Source #
Groups.
Element addition.
Element doubling.
Check well-defined.
Group generator.
Identity element.
Element inversion.
mul' :: g -> Integer -> g Source #
Element multiplication.
order :: g -> Integer Source #
Curve order.
rnd :: MonadRandom m => m g Source #
Random element.