HsOpenSSL-0.10.3.6: Partial OpenSSL binding for Haskell

Safe HaskellNone

OpenSSL.EVP.Cipher

Description

An interface to symmetric cipher algorithms.

Synopsis

Documentation

data Cipher Source

Cipher is an opaque object that represents an algorithm of symmetric cipher.

getCipherByName :: String -> IO (Maybe Cipher)Source

getCipherByName name returns a symmetric cipher algorithm whose name is name. If no algorithms are found, the result is Nothing.

getCipherNames :: IO [String]Source

getCipherNames returns a list of name of symmetric cipher algorithms.

data CryptoMode Source

CryptoMode represents instruction to cipher and such like.

Constructors

Encrypt 
Decrypt 

cipherSource

Arguments

:: Cipher

algorithm to use

-> String

symmetric key

-> String

IV

-> CryptoMode

operation

-> String

An input string to encrypt/decrypt. Note that the string must not contain any letters which aren't in the range of U+0000 - U+00FF.

-> IO String

the result string

cipher lazilly encrypts or decrypts a stream of data. The input string doesn't necessarily have to be finite.

cipherBSSource

Arguments

:: Cipher

algorithm to use

-> String

symmetric key

-> String

IV

-> CryptoMode

operation

-> ByteString

input string to encrypt/decrypt

-> IO ByteString

the result string

cipherBS strictly encrypts or decrypts a chunk of data.

cipherLBSSource

Arguments

:: Cipher

algorithm to use

-> String

symmetric key

-> String

IV

-> CryptoMode

operation

-> ByteString

input string to encrypt/decrypt

-> IO ByteString

the result string

cipherLBS lazilly encrypts or decrypts a stream of data. The input string doesn't necessarily have to be finite.

cipherStrictLBSSource

Arguments

:: Cipher

Cipher

-> ByteString

Key

-> ByteString

IV

-> CryptoMode

Encrypt/Decrypt

-> ByteString

Input

-> IO ByteString 

Encrypt a lazy bytestring in a strict manner. Does not leak the keys.