crypto-pubkey-types-0.4.3: Generic cryptography Public keys algorithm types

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
StabilityStable
PortabilityExcellent
Safe HaskellNone
LanguageHaskell98

Crypto.Types.PubKey.RSA

Description

 

Synopsis

Documentation

data PublicKey

Represent a RSA public key

Constructors

PublicKey 

Fields

public_size :: Int

size of key in bytes

public_n :: Integer

public p*q

public_e :: Integer

public exponant e

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

private_pub :: PublicKey

public part of a private key (size, n and e)

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

newtype KeyPair

Represent RSA KeyPair

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

Constructors

KeyPair PrivateKey 

private_size :: PrivateKey -> Int

get the size in bytes from a private key

private_n :: PrivateKey -> Integer

get n from a private key

toPublicKey :: KeyPair -> PublicKey

Public key of a RSA KeyPair

toPrivateKey :: KeyPair -> PrivateKey

Private key of a RSA KeyPair