HsOpenSSL-0.3: (Part of) OpenSSL binding for HaskellContentsIndex
OpenSSL.Cipher
Description

This module interfaces to some of the OpenSSL ciphers without using EVP (see OpenSSL.EVP.Cipher). The EVP ciphers are easier to use, however, in some cases you cannot do without using the OpenSSL fuctions directly.

One of these cases (and the motivating example for this module) is that the EVP CBC functions try to encode the length of the input string in the output (thus hiding the fact that the cipher is, in fact, block based and needs padding). This means that the EVP CBC functions cannot, in some cases, interface with other users which don't use that system (like SSH).

Synopsis
data Mode
= Encrypt
| Decrypt
newAESCtx :: Mode -> ByteString -> ByteString -> IO AESCtx
aesCBC :: AESCtx -> ByteString -> IO ByteString
aesCTR :: AESCtx -> ByteString -> IO ByteString
Documentation
data Mode
Constructors
Encrypt
Decrypt
show/hide Instances
Eq Mode
Show Mode
newAESCtx
:: ModeFor CTR mode, this must always be Encrypt
-> ByteStringKey: 128, 192 or 256 bits long
-> ByteStringIV: 16 bytes long
-> IO AESCtx
Construct a new context which holds the key schedule and IV.
aesCBC
:: AESCtxcontext
-> ByteStringinput, must be multiple of block size (16 bytes)
-> IO ByteString
Encrypt some number of blocks using CBC. This is an IO function because the context is destructivly updated.
aesCTR
:: AESCtxcontext
-> ByteStringinput, any number of bytes
-> IO ByteString
Encrypt some number of bytes using CTR mode. This is an IO function because the context is destructivly updated.
Produced by Haddock version 0.8