elliptic-curve-0.3.0: Elliptic curve library

Safe HaskellNone
LanguageHaskell2010

Data.Curve.Binary

Contents

Synopsis

Documentation

module Data.Curve

Binary curves

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

Binary curves.

Methods

a_ Source #

Arguments

:: BPoint c e q r 
-> q

Coefficient A.

b_ Source #

Arguments

:: BPoint c e q r 
-> q

Coefficient B.

h_ Source #

Arguments

:: BPoint c e q r 
-> Natural

Curve cofactor.

p_ Source #

Arguments

:: BPoint c e q r 
-> Natural

Curve polynomial.

r_ Source #

Arguments

:: BPoint c e q r 
-> Natural

Curve order.

Instances
Curve Binary c SECT113R1 F2m Fr => BCurve c SECT113R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT113R1

Curve Binary c SECT113R2 F2m Fr => BCurve c SECT113R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT113R2

Curve Binary c SECT131R1 F2m Fr => BCurve c SECT131R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT131R1

Curve Binary c SECT131R2 F2m Fr => BCurve c SECT131R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT131R2

Curve Binary c SECT163K1 F2m Fr => BCurve c SECT163K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163K1

Curve Binary c SECT163R1 F2m Fr => BCurve c SECT163R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163R1

Curve Binary c SECT163R2 F2m Fr => BCurve c SECT163R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163R2

Curve Binary c SECT193R1 F2m Fr => BCurve c SECT193R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT193R1

Curve Binary c SECT193R2 F2m Fr => BCurve c SECT193R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT193R2

Curve Binary c SECT233K1 F2m Fr => BCurve c SECT233K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT233K1

Curve Binary c SECT233R1 F2m Fr => BCurve c SECT233R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT233R1

Curve Binary c SECT239K1 F2m Fr => BCurve c SECT239K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT239K1

Curve Binary c SECT283K1 F2m Fr => BCurve c SECT283K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT283K1

Curve Binary c SECT283R1 F2m Fr => BCurve c SECT283R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT283R1

Curve Binary c SECT409K1 F2m Fr => BCurve c SECT409K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT409K1

Curve Binary c SECT409R1 F2m Fr => BCurve c SECT409R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT409R1

Curve Binary c SECT571K1 F2m Fr => BCurve c SECT571K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT571K1

Curve Binary c SECT571R1 F2m Fr => BCurve c SECT571R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT571R1

type BPoint = Point Binary Source #

Binary points.

Binary affine curves

class BCurve Affine e q r => BACurve e q r where Source #

Binary affine curves y^2 + xy = x^3 + Ax^2 + B.

Methods

gA_ Source #

Arguments

:: BAPoint e q r

Curve generator.

Instances
BACurve SECT113R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT113R1

BACurve SECT113R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT113R2

BACurve SECT131R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT131R1

BACurve SECT131R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT131R2

BACurve SECT163K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163K1

BACurve SECT163R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163R1

BACurve SECT163R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163R2

BACurve SECT193R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT193R1

BACurve SECT193R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT193R2

BACurve SECT233K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT233K1

BACurve SECT233R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT233R1

BACurve SECT239K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT239K1

BACurve SECT283K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT283K1

BACurve SECT283R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT283R1

BACurve SECT409K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT409K1

BACurve SECT409R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT409R1

BACurve SECT571K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT571K1

BACurve SECT571R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT571R1

type BAPoint = BPoint Affine Source #

Binary affine points.

Binary projective curves

class BCurve Projective e q r => BPCurve e q r where Source #

Binary projective curves y^2z + xyz = x^3 + Ax^2z + Bz.

Methods

gP_ Source #

Arguments

:: BPPoint e q r

Curve generator.

Instances
BPCurve SECT113R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT113R1

BPCurve SECT113R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT113R2

BPCurve SECT131R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT131R1

BPCurve SECT131R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT131R2

BPCurve SECT163K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163K1

BPCurve SECT163R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163R1

BPCurve SECT163R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT163R2

BPCurve SECT193R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT193R1

BPCurve SECT193R2 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT193R2

BPCurve SECT233K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT233K1

BPCurve SECT233R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT233R1

BPCurve SECT239K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT239K1

BPCurve SECT283K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT283K1

BPCurve SECT283R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT283R1

BPCurve SECT409K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT409K1

BPCurve SECT409R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT409R1

BPCurve SECT571K1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT571K1

BPCurve SECT571R1 F2m Fr Source # 
Instance details

Defined in Data.Curve.Binary.SECT571R1

type BPPoint = BPoint Projective Source #

Binary projective points.

Orphan instances

BACurve e q r => Curve Binary Affine (e :: k) q r Source # 
Instance details

Associated Types

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

BPCurve e q r => Curve Binary Projective (e :: k) q r Source # 
Instance details

Associated Types

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

BPCurve e q r => Eq (BPPoint e q r) Source # 
Instance details

Methods

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

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

BPCurve e q r => Pretty (BPPoint e q r) Source # 
Instance details

Methods

pretty :: BPPoint e q r -> Doc #

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

BACurve e q r => Pretty (BAPoint e q r) Source # 
Instance details

Methods

pretty :: BAPoint e q r -> Doc #

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

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

Methods

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

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

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

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

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

Methods

showsPrec :: Int -> Point Binary Affine e q r -> ShowS #

show :: Point Binary Affine e q r -> String #

showList :: [Point Binary Affine e q r] -> ShowS #

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

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

Associated Types

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

Methods

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

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

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

Associated Types

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

Methods

from :: Point Binary Projective e q r -> Rep (Point Binary Projective e q r) x #

to :: Rep (Point Binary Projective e q r) x -> Point Binary Projective e q r #

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

Methods

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

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

Methods

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