cryptonite-0.25: Cryptography Primitives sink

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
PortabilityGood
Safe HaskellNone
LanguageHaskell2010

Crypto.PubKey.RSA.Types

Description

 
Synopsis

Documentation

data Error #

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
Eq Error # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

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

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

Show Error # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

showsPrec :: Int -> Error -> ShowS #

show :: Error -> String #

showList :: [Error] -> ShowS #

data Blinder #

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

Constructors

Blinder !Integer !Integer 
Instances
Eq Blinder # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

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

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

Show Blinder # 
Instance details

Defined in Crypto.PubKey.RSA.Types

data PublicKey #

Represent a RSA public key

Constructors

PublicKey 

Fields

Instances
Eq PublicKey # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Data PublicKey # 
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 :: (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 # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Show PublicKey # 
Instance details

Defined in Crypto.PubKey.RSA.Types

NFData PublicKey # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

rnf :: PublicKey -> () #

data PrivateKey #

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
Eq PrivateKey # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Data PrivateKey # 
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 :: (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 # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Show PrivateKey # 
Instance details

Defined in Crypto.PubKey.RSA.Types

NFData PrivateKey # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

rnf :: PrivateKey -> () #

newtype KeyPair #

Represent RSA KeyPair

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

Constructors

KeyPair PrivateKey 
Instances
Eq KeyPair # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

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

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

Data KeyPair # 
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 :: (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 # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Show KeyPair # 
Instance details

Defined in Crypto.PubKey.RSA.Types

NFData KeyPair # 
Instance details

Defined in Crypto.PubKey.RSA.Types

Methods

rnf :: KeyPair -> () #

toPublicKey :: KeyPair -> PublicKey #

Public key of a RSA KeyPair

toPrivateKey :: KeyPair -> PrivateKey #

Private key of a RSA KeyPair

private_size :: PrivateKey -> Int #

get the size in bytes from a private key

private_n :: PrivateKey -> Integer #

get n from a private key

private_e :: PrivateKey -> Integer #

get e from a private key