crypto-cipher-types-0.0.9: Generic cryptography cipher types
LicenseBSD-style
MaintainerVincent Hanquez <[email protected]>
StabilityStable
PortabilityExcellent
Safe HaskellNone
LanguageHaskell98

Crypto.Cipher.Types.Unsafe

Description

mutable and unsafe interface for Block ciphers. export a BlockCipherIO class

Synopsis

Documentation

class BlockCipher cipher => BlockCipherIO cipher where Source #

Symmetric block cipher class, mutable API

Minimal complete definition

ecbEncryptMutable, ecbDecryptMutable

Methods

ecbEncryptMutable :: cipher -> PtrDest -> PtrSource -> BufferLength -> IO () Source #

Encrypt using the ECB mode.

input need to be a multiple of the blocksize

ecbDecryptMutable :: cipher -> PtrDest -> PtrSource -> BufferLength -> IO () Source #

Decrypt using the ECB mode.

input need to be a multiple of the blocksize

cbcEncryptMutable :: cipher -> PtrIV -> PtrDest -> PtrSource -> BufferLength -> IO () Source #

encrypt using the CBC mode.

input need to be a multiple of the blocksize

cbcDecryptMutable :: cipher -> PtrIV -> PtrDest -> PtrSource -> BufferLength -> IO () Source #

decrypt using the CBC mode.

input need to be a multiple of the blocksize

type BufferLength = Word32 Source #

Length of the pointed data

type PtrDest = Ptr Word8 Source #

pointer to the destination data

type PtrSource = Ptr Word8 Source #

pointer to the source data

type PtrIV = Ptr Word8 Source #

pointer to the IV data

onBlock :: BlockCipherIO cipher => cipher -> (ByteString -> ByteString) -> PtrDest -> PtrSource -> BufferLength -> IO () Source #

Helper to use a purer interface