HsOpenSSL-0.11.7.9: Partial OpenSSL binding for Haskell

Safe Haskell | None
Language | Haskell2010

OpenSSL.EVP.Cipher

Description

An interface to symmetric cipher algorithms.

Synopsis

- data Cipher
- getCipherByName :: String -> IO (Maybe Cipher)
- getCipherNames :: IO [String]
- data CryptoMode
  - = Encrypt
  - | Decrypt
- cipher :: Cipher -> String -> String -> CryptoMode -> String -> IO String
- cipherBS :: Cipher -> ByteString -> ByteString -> CryptoMode -> ByteString -> IO ByteString
- cipherLBS :: Cipher -> ByteString -> ByteString -> CryptoMode -> ByteString -> IO ByteString
- cipherStrictLBS :: Cipher -> ByteString -> ByteString -> CryptoMode -> ByteString -> IO ByteString

# 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.