{-# LANGUAGE DeriveDataTypeable #-}
-- |
-- Module : Crypto.Types.PubKey.ECDSA
-- License : BSD-style
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
-- Stability : Experimental
-- Portability : Excellent
--
module Crypto.Types.PubKey.ECDSA
( PrivateNumber
, PrivateKey(..)
, PublicKey(..)
) where
import qualified Crypto.Types.PubKey.ECC as ECC
import Data.Data
-- | ECDSA Private Number, usually embedded in ECDSA Private Key
type PrivateNumber = Integer
-- | ECDSA Private Key
data PrivateKey = PrivateKey
{ private_params :: ECC.Curve
, private_d :: PrivateNumber
} deriving (Show,Read,Eq,Data,Typeable)
-- | ECDSA Public Key
data PublicKey = PublicKey
{ public_params :: ECC.Curve
, public_q :: ECC.Point
} deriving (Show,Read,Eq,Data,Typeable)