cryptonite-0.27: Cryptography Primitives sink
License BSD-style
Maintainer Vincent Hanquez <vincent@snarc.org>
Stability experimental
Portability Good
Safe Haskell None
Language Haskell2010

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.

data Blinder Source #

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

data PublicKey Source #

Represent a RSA public key

Constructors

PublicKey

Fields

Instances

Instances details
Eq PublicKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

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 Source #

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

toConstr :: PublicKey -> Constr Source #

dataTypeOf :: PublicKey -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Read PublicKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

Show PublicKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

NFData PublicKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

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

Defined in Crypto.PubKey.RSA.Types

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 Source #

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

toConstr :: PrivateKey -> Constr Source #

dataTypeOf :: PrivateKey -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Read PrivateKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

Show PrivateKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

NFData PrivateKey Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

newtype KeyPair Source #

Represent RSA KeyPair

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

Instances

Instances details
Eq KeyPair Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

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 Source #

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

toConstr :: KeyPair -> Constr Source #

dataTypeOf :: KeyPair -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Read KeyPair Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

Show KeyPair Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

NFData KeyPair Source #
Instance details

Defined in Crypto.PubKey.RSA.Types

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