cryptocipher-0.2.4: Symmetrical Block, Stream and PubKey Ciphers

PortabilityGood
Stabilityexperimental
MaintainerVincent Hanquez <vincent@snarc.org>

Crypto.Cipher.RSA

Description

 

Synopsis

Documentation

data Error Source

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 (>= private_size - 11)

MessageNotRecognized

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

SignatureTooLong

the signature generated through the hash is too long to process with this key

RandomGenFailure GenError

the random generator returns an error. give the opportunity to reseed for example.

KeyInternalError

the whole key is probably not valid, since the message is bigger than the key size

Instances

data PublicKey Source

Constructors

PublicKey 

Fields

public_sz :: Int

size of key in bytes

public_n :: Integer

public p*q

public_e :: Integer

public exponant e

Instances

data PrivateKey Source

Constructors

PrivateKey 

Fields

private_sz :: Int

size of key in bytes

private_n :: Integer

private p*q

private_d :: Integer

private exponant d

private_p :: Integer

p prime number

private_q :: Integer

q prime number

private_dP :: Integer

d mod (p-1)

private_dQ :: Integer

d mod (q-1)

private_qinv :: Integer

q^(-1) mod p

Instances

decrypt :: PrivateKey -> ByteString -> Either Error ByteStringSource

decrypt message using the private key.

encrypt :: CryptoRandomGen g => g -> PublicKey -> ByteString -> Either Error (ByteString, g)Source

encrypt a bytestring using the public key and a CryptoRandomGen random generator. - the message need to be smaller than the key size - 11

sign :: HashF -> HashASN1 -> PrivateKey -> ByteString -> Either Error ByteStringSource

sign message using private key, a hash and its ASN1 description

verify :: HashF -> HashASN1 -> PublicKey -> ByteString -> ByteString -> Either Error BoolSource

verify message with the signed message