crypton-1.0.4: Cryptography Primitives sink
LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
PortabilityGood
Safe HaskellNone
LanguageHaskell2010

Crypto.PubKey.RSA.Types

Description

 
Synopsis

Documentation

data Error Source #

error possible during encryption, decryption or signing.

Constructors

MessageSizeIncorrect

the message to decrypt is not of the correct size (need to be == private_size)

MessageTooLong

the message to encrypt is too long

MessageNotRecognized

the message decrypted doesn't have a PKCS15 structure (0 2 .. 0 msg)

SignatureTooLong

the message's digest is too long

InvalidParameters

some parameters lead to breaking assumptions.

Instances

Instances details
Show Error Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

showsPrec :: Int -> Error -> ShowS

show :: Error -> String

showList :: [Error] -> ShowS

Eq Error Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

(==) :: Error -> Error -> Bool

(/=) :: Error -> Error -> Bool

data Blinder Source #

Blinder which is used to obfuscate the timing of the decryption primitive (used by decryption and signing).

Constructors

Blinder !Integer !Integer 

Instances

Instances details
Show Blinder Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

showsPrec :: Int -> Blinder -> ShowS

show :: Blinder -> String

showList :: [Blinder] -> ShowS

Eq Blinder Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

(==) :: Blinder -> Blinder -> Bool

(/=) :: Blinder -> Blinder -> Bool

data PublicKey Source #

Represent a RSA public key

Constructors

PublicKey 

Fields

Instances

Instances details
Data PublicKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PublicKey -> c PublicKey

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PublicKey

toConstr :: PublicKey -> Constr

dataTypeOf :: PublicKey -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PublicKey)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PublicKey)

gmapT :: (forall b. Data b => b -> b) -> PublicKey -> PublicKey

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PublicKey -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PublicKey -> r

gmapQ :: (forall d. Data d => d -> u) -> PublicKey -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> PublicKey -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PublicKey -> m PublicKey

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PublicKey -> m PublicKey

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PublicKey -> m PublicKey

Read PublicKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

readsPrec :: Int -> ReadS PublicKey

readList :: ReadS [PublicKey]

readPrec :: ReadPrec PublicKey

readListPrec :: ReadPrec [PublicKey]

Show PublicKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

showsPrec :: Int -> PublicKey -> ShowS

show :: PublicKey -> String

showList :: [PublicKey] -> ShowS

NFData PublicKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

rnf :: PublicKey -> ()

Eq PublicKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

(==) :: PublicKey -> PublicKey -> Bool

(/=) :: PublicKey -> PublicKey -> Bool

data PrivateKey Source #

Represent a RSA private key.

Only the pub, d fields are mandatory to fill.

p, q, dP, dQ, qinv are by-product during RSA generation, but are useful to record here to speed up massively the decrypt and sign operation.

implementations can leave optional fields to 0.

Constructors

PrivateKey 

Fields

Instances

Instances details
Data PrivateKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PrivateKey -> c PrivateKey

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PrivateKey

toConstr :: PrivateKey -> Constr

dataTypeOf :: PrivateKey -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PrivateKey)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PrivateKey)

gmapT :: (forall b. Data b => b -> b) -> PrivateKey -> PrivateKey

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PrivateKey -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PrivateKey -> r

gmapQ :: (forall d. Data d => d -> u) -> PrivateKey -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> PrivateKey -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PrivateKey -> m PrivateKey

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PrivateKey -> m PrivateKey

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PrivateKey -> m PrivateKey

Read PrivateKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

readsPrec :: Int -> ReadS PrivateKey

readList :: ReadS [PrivateKey]

readPrec :: ReadPrec PrivateKey

readListPrec :: ReadPrec [PrivateKey]

Show PrivateKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

showsPrec :: Int -> PrivateKey -> ShowS

show :: PrivateKey -> String

showList :: [PrivateKey] -> ShowS

NFData PrivateKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

rnf :: PrivateKey -> ()

Eq PrivateKey Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

(==) :: PrivateKey -> PrivateKey -> Bool

(/=) :: PrivateKey -> PrivateKey -> Bool

newtype KeyPair Source #

Represent RSA KeyPair

note the RSA private key contains already an instance of public key for efficiency

Constructors

KeyPair PrivateKey 

Instances

Instances details
Data KeyPair Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> KeyPair -> c KeyPair

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c KeyPair

toConstr :: KeyPair -> Constr

dataTypeOf :: KeyPair -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c KeyPair)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPair)

gmapT :: (forall b. Data b => b -> b) -> KeyPair -> KeyPair

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> KeyPair -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> KeyPair -> r

gmapQ :: (forall d. Data d => d -> u) -> KeyPair -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> KeyPair -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> KeyPair -> m KeyPair

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> KeyPair -> m KeyPair

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> KeyPair -> m KeyPair

Read KeyPair Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

readsPrec :: Int -> ReadS KeyPair

readList :: ReadS [KeyPair]

readPrec :: ReadPrec KeyPair

readListPrec :: ReadPrec [KeyPair]

Show KeyPair Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

showsPrec :: Int -> KeyPair -> ShowS

show :: KeyPair -> String

showList :: [KeyPair] -> ShowS

NFData KeyPair Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

rnf :: KeyPair -> ()

Eq KeyPair Source # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

(==) :: KeyPair -> KeyPair -> Bool

(/=) :: KeyPair -> KeyPair -> Bool

toPublicKey :: KeyPair -> PublicKey Source #

Public key of a RSA KeyPair

toPrivateKey :: KeyPair -> PrivateKey Source #

Private key of a RSA KeyPair

private_size :: PrivateKey -> Int Source #

get the size in bytes from a private key

private_n :: PrivateKey -> Integer Source #

get n from a private key

private_e :: PrivateKey -> Integer Source #

get e from a private key