-- | This module exposes all the ciphers provided by raaz. The -- interface here is pretty low level and it is usually the case that -- you would not need to work at this level of detail. module Raaz.Cipher ( -- * Ciphers -- $cipherdoc$ StreamCipher , transform, chacha20 , Cipher , aes128cbc, aes192cbc, aes256cbc ) where import Raaz.Cipher.AES ( aes128cbc, aes192cbc, aes256cbc) import Raaz.Cipher.ChaCha20 import Raaz.Cipher.Internal (transform, Cipher, StreamCipher) -- $cipherdoc$ -- -- The raaz library exposes symmetric key encryption using instances -- of the class `Cipher`. For a cipher @c@, the type family @`Key` c@ -- gives the type of its key. As of now, we only support the safe -- usage of stream ciphers. Encryption and Decryption are the same for -- stream ciphers and we call this combinator `transform`. Block -- ciphers do not have a natural way to handle streams that are of -- size less than their block size. A future release will handle these -- issues. -- -- If you are thinking of encryption using private keys consider -- encrypted-authenticated modes. Currently we do not have support for -- this either but hopefully this will also be fixed soon. -- -- TODO: Fix the above documentation when it is done.