Rename to Edwards25519
This commit is contained in:
parent
d472d9b74f
commit
45723e3542
@ -17,7 +17,7 @@ module Crypto.ECC
|
||||
, Curve_P521R1(..)
|
||||
, Curve_X25519(..)
|
||||
, Curve_X448(..)
|
||||
, Curve_Ed25519(..)
|
||||
, Curve_Edwards25519(..)
|
||||
, EllipticCurve(..)
|
||||
, EllipticCurveDH(..)
|
||||
, EllipticCurveArith(..)
|
||||
@ -26,7 +26,7 @@ module Crypto.ECC
|
||||
) where
|
||||
|
||||
import qualified Crypto.PubKey.ECC.P256 as P256
|
||||
import qualified Crypto.ECC.Ed25519 as Ed25519
|
||||
import qualified Crypto.ECC.Edwards25519 as Edwards25519
|
||||
import qualified Crypto.ECC.Simple.Types as Simple
|
||||
import qualified Crypto.ECC.Simple.Prim as Simple
|
||||
import Crypto.Random
|
||||
@ -233,23 +233,23 @@ instance EllipticCurveDH Curve_X448 where
|
||||
where secret = X448.dh p s
|
||||
ecdh prx s p = checkNonZeroDH (ecdhRaw prx s p)
|
||||
|
||||
data Curve_Ed25519 = Curve_Ed25519
|
||||
data Curve_Edwards25519 = Curve_Edwards25519
|
||||
deriving (Show,Data,Typeable)
|
||||
|
||||
instance EllipticCurve Curve_Ed25519 where
|
||||
type Point Curve_Ed25519 = Ed25519.Point
|
||||
type Scalar Curve_Ed25519 = Ed25519.Scalar
|
||||
instance EllipticCurve Curve_Edwards25519 where
|
||||
type Point Curve_Edwards25519 = Edwards25519.Point
|
||||
type Scalar Curve_Edwards25519 = Edwards25519.Scalar
|
||||
curveSizeBits _ = 255
|
||||
curveGenerateScalar _ = Ed25519.scalarGenerate
|
||||
curveGenerateKeyPair _ = toKeyPair <$> Ed25519.scalarGenerate
|
||||
where toKeyPair scalar = KeyPair (Ed25519.toPoint scalar) scalar
|
||||
encodePoint _ point = Ed25519.pointEncode point
|
||||
decodePoint _ bs = Ed25519.pointDecode bs
|
||||
curveGenerateScalar _ = Edwards25519.scalarGenerate
|
||||
curveGenerateKeyPair _ = toKeyPair <$> Edwards25519.scalarGenerate
|
||||
where toKeyPair scalar = KeyPair (Edwards25519.toPoint scalar) scalar
|
||||
encodePoint _ point = Edwards25519.pointEncode point
|
||||
decodePoint _ bs = Edwards25519.pointDecode bs
|
||||
|
||||
instance EllipticCurveArith Curve_Ed25519 where
|
||||
pointAdd _ a b = Ed25519.pointAdd a b
|
||||
pointNegate _ p = Ed25519.pointNegate p
|
||||
pointSmul _ s p = Ed25519.pointMul s p
|
||||
instance EllipticCurveArith Curve_Edwards25519 where
|
||||
pointAdd _ a b = Edwards25519.pointAdd a b
|
||||
pointNegate _ p = Edwards25519.pointNegate p
|
||||
pointSmul _ s p = Edwards25519.pointMul s p
|
||||
|
||||
checkNonZeroDH :: SharedSecret -> CryptoFailable SharedSecret
|
||||
checkNonZeroDH s@(SharedSecret b)
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
-- |
|
||||
-- Module : Crypto.ECC.Ed25519
|
||||
-- Module : Crypto.ECC.Edwards25519
|
||||
-- License : BSD-style
|
||||
-- Maintainer : Olivier Chéron <olivier.cheron@gmail.com>
|
||||
-- Stability : experimental
|
||||
-- Portability : unknown
|
||||
--
|
||||
-- Ed25519 arithmetic primitives.
|
||||
-- Arithmetic primitives over curve edwards25519.
|
||||
--
|
||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||
module Crypto.ECC.Ed25519
|
||||
module Crypto.ECC.Edwards25519
|
||||
( Scalar
|
||||
, Point
|
||||
-- * Scalars
|
||||
@ -47,7 +47,7 @@ import Crypto.Random
|
||||
scalarArraySize :: Int
|
||||
scalarArraySize = 40 -- maximum [9 * 4 {- 32 bits -}, 5 * 8 {- 64 bits -}]
|
||||
|
||||
-- | A scalar modulo order of curve Ed25519.
|
||||
-- | A scalar modulo order of curve edwards25519.
|
||||
newtype Scalar = Scalar ScrubbedBytes
|
||||
deriving (Show,NFData)
|
||||
|
||||
@ -61,7 +61,7 @@ instance Eq Scalar where
|
||||
pointArraySize :: Int
|
||||
pointArraySize = 160 -- maximum [4 * 10 * 4 {- 32 bits -}, 4 * 5 * 8 {- 64 bits -}]
|
||||
|
||||
-- | A point on curve Ed25519.
|
||||
-- | A point on curve edwards25519.
|
||||
newtype Point = Point Bytes
|
||||
deriving NFData
|
||||
|
||||
@ -156,7 +156,7 @@ pointEncode (Point p) =
|
||||
ed25519_point_encode out pp
|
||||
|
||||
-- | Deserialize a 32-byte array as a point, ensuring the point is
|
||||
-- valid on Ed25519.
|
||||
-- valid on edwards25519.
|
||||
--
|
||||
-- /WARNING:/ variable time
|
||||
pointDecode :: B.ByteArrayAccess bs => bs -> CryptoFailable Point
|
||||
@ -197,7 +197,7 @@ pointDouble (Point a) =
|
||||
withByteArray a $ \pa ->
|
||||
ed25519_point_double out pa
|
||||
|
||||
-- | Scalar multiplication over Ed25519.
|
||||
-- | Scalar multiplication over curve edwards25519.
|
||||
pointMul :: Scalar -> Point -> Point
|
||||
pointMul (Scalar scalar) (Point base) =
|
||||
Point $ B.allocAndFreeze pointArraySize $ \out ->
|
||||
@ -121,7 +121,7 @@ Library
|
||||
Crypto.Data.AFIS
|
||||
Crypto.Data.Padding
|
||||
Crypto.ECC
|
||||
Crypto.ECC.Ed25519
|
||||
Crypto.ECC.Edwards25519
|
||||
Crypto.Error
|
||||
Crypto.MAC.CMAC
|
||||
Crypto.MAC.Poly1305
|
||||
@ -371,7 +371,7 @@ Test-Suite test-cryptonite
|
||||
ChaCha
|
||||
BCrypt
|
||||
ECC
|
||||
ECC.Ed25519
|
||||
ECC.Edwards25519
|
||||
Hash
|
||||
Imports
|
||||
KAT_AES.KATCBC
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
module ECC.Ed25519 ( tests ) where
|
||||
module ECC.Edwards25519 ( tests ) where
|
||||
|
||||
import Crypto.Error
|
||||
import Crypto.ECC.Ed25519
|
||||
import Crypto.ECC.Edwards25519
|
||||
import Imports
|
||||
|
||||
instance Arbitrary Scalar where
|
||||
@ -12,7 +12,7 @@ instance Arbitrary Scalar where
|
||||
instance Arbitrary Point where
|
||||
arbitrary = toPoint `fmap` arbitrary
|
||||
|
||||
tests = testGroup "ECC.Ed25519"
|
||||
tests = testGroup "ECC.Edwards25519"
|
||||
[ testGroup "vectors"
|
||||
[ testCase "11*G" $ p011 @=? toPoint s011
|
||||
, testCase "123*G" $ p123 @=? toPoint s123
|
||||
@ -7,7 +7,7 @@ import qualified Number
|
||||
import qualified Number.F2m
|
||||
import qualified BCrypt
|
||||
import qualified ECC
|
||||
import qualified ECC.Ed25519
|
||||
import qualified ECC.Edwards25519
|
||||
import qualified Hash
|
||||
import qualified Poly1305
|
||||
import qualified Salsa
|
||||
@ -84,7 +84,7 @@ tests = testGroup "cryptonite"
|
||||
]
|
||||
, KAT_AFIS.tests
|
||||
, ECC.tests
|
||||
, ECC.Ed25519.tests
|
||||
, ECC.Edwards25519.tests
|
||||
]
|
||||
|
||||
main = defaultMain tests
|
||||
|
||||
Loading…
Reference in New Issue
Block a user