elliptic-curve-0.3.0: Elliptic curve library

Safe HaskellNone
LanguageHaskell2010

Data.Curve.Edwards

Contents

Synopsis

Documentation

module Data.Curve

Edwards curves

class (GaloisField q, PrimeField r, Curve Edwards c e q r) => ECurve c e q r where Source #

Edwards curves.

Methods

a_ Source #

Arguments

:: EPoint c e q r 
-> q

Coefficient A.

d_ Source #

Arguments

:: EPoint c e q r 
-> q

Coefficient D.

h_ Source #

Arguments

:: EPoint c e q r 
-> Natural

Curve cofactor.

q_ Source #

Arguments

:: EPoint c e q r 
-> Natural

Curve characteristic.

r_ Source #

Arguments

:: EPoint c e q r 
-> Natural

Curve order.

Instances
Curve Edwards c Curve1174 Fq Fr => ECurve c Curve1174 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Curve1174

Curve Edwards c Curve41417 Fq Fr => ECurve c Curve41417 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Curve41417

Curve Edwards c E222 Fq Fr => ECurve c E222 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E222

Curve Edwards c E382 Fq Fr => ECurve c E382 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E382

Curve Edwards c E521 Fq Fr => ECurve c E521 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E521

Curve Edwards c Ed25519 Fq Fr => ECurve c Ed25519 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed25519

Curve Edwards c Ed3363 Fq Fr => ECurve c Ed3363 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed3363

Curve Edwards c Ed448 Fq Fr => ECurve c Ed448 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed448

Curve Edwards c JubJub Fq Fr => ECurve c JubJub Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.JubJub

type EPoint = Point Edwards Source #

Edwards points.

Edwards affine curves

class ECurve Affine e q r => EACurve e q r where Source #

Edwards affine curves Ax^2 + y^2 = 1 + Dx^2y^2.

Methods

gA_ Source #

Arguments

:: EAPoint e q r

Curve generator.

Instances
EACurve Curve1174 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Curve1174

EACurve Curve41417 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Curve41417

EACurve E222 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E222

EACurve E382 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E382

EACurve E521 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E521

EACurve Ed25519 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed25519

EACurve Ed3363 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed3363

EACurve Ed448 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed448

EACurve JubJub Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.JubJub

type EAPoint = EPoint Affine Source #

Edwards affine curves.

Edwards projective curves

class ECurve Projective e q r => EPCurve e q r where Source #

Edwards projective curves Ax^2z^2 + y^2z^2 = z^4 + Dx^2y^2.

Methods

gP_ Source #

Arguments

:: EPPoint e q r

Curve generator.

Instances
EPCurve Curve1174 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Curve1174

EPCurve Curve41417 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Curve41417

EPCurve E222 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E222

EPCurve E382 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E382

EPCurve E521 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.E521

EPCurve Ed25519 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed25519

EPCurve Ed3363 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed3363

EPCurve Ed448 Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.Ed448

EPCurve JubJub Fq Fr Source # 
Instance details

Defined in Data.Curve.Edwards.JubJub

type EPPoint = EPoint Projective Source #

Edwards projective curves.

Orphan instances

EACurve e q r => Curve Edwards Affine (e :: k) q r Source # 
Instance details

Associated Types

data Point Edwards Affine e q r :: Type Source #

EPCurve e q r => Curve Edwards Projective (e :: k) q r Source # 
Instance details

Associated Types

data Point Edwards Projective e q r :: Type Source #

EPCurve e q r => Eq (EPPoint e q r) Source # 
Instance details

Methods

(==) :: EPPoint e q r -> EPPoint e q r -> Bool #

(/=) :: EPPoint e q r -> EPPoint e q r -> Bool #

EPCurve e q r => Pretty (EPPoint e q r) Source # 
Instance details

Methods

pretty :: EPPoint e q r -> Doc #

prettyList :: [EPPoint e q r] -> Doc #

EACurve e q r => Pretty (EAPoint e q r) Source # 
Instance details

Methods

pretty :: EAPoint e q r -> Doc #

prettyList :: [EAPoint e q r] -> Doc #

Eq q => Eq (Point Edwards Affine e q r) Source # 
Instance details

Methods

(==) :: Point Edwards Affine e q r -> Point Edwards Affine e q r -> Bool #

(/=) :: Point Edwards Affine e q r -> Point Edwards Affine e q r -> Bool #

Read q => Read (Point Edwards Affine e q r) Source # 
Instance details

Read q => Read (Point Edwards Projective e q r) Source # 
Instance details

Show q => Show (Point Edwards Affine e q r) Source # 
Instance details

Show q => Show (Point Edwards Projective e q r) Source # 
Instance details

Generic (Point Edwards Affine e q r) Source # 
Instance details

Associated Types

type Rep (Point Edwards Affine e q r) :: Type -> Type #

Methods

from :: Point Edwards Affine e q r -> Rep (Point Edwards Affine e q r) x #

to :: Rep (Point Edwards Affine e q r) x -> Point Edwards Affine e q r #

Generic (Point Edwards Projective e q r) Source # 
Instance details

Associated Types

type Rep (Point Edwards Projective e q r) :: Type -> Type #

NFData q => NFData (Point Edwards Affine e q r) Source # 
Instance details

Methods

rnf :: Point Edwards Affine e q r -> () #

NFData q => NFData (Point Edwards Projective e q r) Source # 
Instance details

Methods

rnf :: Point Edwards Projective e q r -> () #