Require point equality in EllipticCurveArith
This is an incompatible API change but is very useful to test properties and algorithms derived from the primitives. An ECC instance sufficiently advanced to have math primitives should implement equality too.
This commit is contained in:
parent
e0b201b5e7
commit
bdf1a7a133
@ -8,6 +8,7 @@
|
|||||||
-- Elliptic Curve Cryptography
|
-- Elliptic Curve Cryptography
|
||||||
--
|
--
|
||||||
{-# LANGUAGE DeriveDataTypeable #-}
|
{-# LANGUAGE DeriveDataTypeable #-}
|
||||||
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
{-# LANGUAGE ScopedTypeVariables #-}
|
||||||
@ -98,7 +99,7 @@ class EllipticCurve curve => EllipticCurveDH curve where
|
|||||||
-- value or an exception.
|
-- value or an exception.
|
||||||
ecdh :: proxy curve -> Scalar curve -> Point curve -> CryptoFailable SharedSecret
|
ecdh :: proxy curve -> Scalar curve -> Point curve -> CryptoFailable SharedSecret
|
||||||
|
|
||||||
class EllipticCurve curve => EllipticCurveArith curve where
|
class (EllipticCurve curve, Eq (Point curve)) => EllipticCurveArith curve where
|
||||||
-- | Add points on a curve
|
-- | Add points on a curve
|
||||||
pointAdd :: proxy curve -> Point curve -> Point curve -> Point curve
|
pointAdd :: proxy curve -> Point curve -> Point curve -> Point curve
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user