HsOpenSSL-0.11.7.7: Partial OpenSSL binding for Haskell
Safe HaskellSafe-Inferred
LanguageHaskell2010

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 

cipher Source #

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

Deprecated: Use cipherBS, cipherLBS or cipherStrictLBS.

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

cipherBS Source #

Arguments

:: Cipher

algorithm to use

-> ByteString

symmetric key

-> ByteString

IV

-> CryptoMode

operation

-> ByteString

input string to encrypt/decrypt

-> IO ByteString

the result string

cipherBS strictly encrypts or decrypts a chunk of data.

cipherLBS Source #

Arguments

:: Cipher

algorithm to use

-> ByteString

symmetric key

-> ByteString

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.

cipherStrictLBS Source #

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.