crypto-cipher-types-0.0.8: Generic cryptography cipher types

PortabilityExcellent
StabilityStable
MaintainerVincent Hanquez <vincent@snarc.org>
Safe HaskellNone

Crypto.Cipher.Types.Unsafe

Description

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

Synopsis

Documentation

class BlockCipher cipher => BlockCipherIO cipher whereSource

Symmetric block cipher class, mutable API

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 = Word32Source

Length of the pointed data

type PtrDest = Ptr Word8Source

pointer to the destination data

type PtrSource = Ptr Word8Source

pointer to the source data

type PtrIV = Ptr Word8Source

pointer to the IV data

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

Helper to use a purer interface