      - parameter algorithm: The symmetric algorithm to use for encryption
      - parameter options:   The encryption options.
      - parameter key:       The shared secret key.
-     - parameter iv:        Initialization vector, optional.
+     - parameter iv:        Initialization vector, optional. Used by block ciphers when Cipher Block Chaining (CBC) mode is enabled. If present, must be the same length as the selected algorithm's block size. This parameter is ignored if ECB mode is used or if a stream cipher algorithm is selected. nil by default.
 
      - throws: `SCryptoError` instance in case of eny errors.
 

     - parameter algorithm: The symmetric algorithm to use for encryption
     - parameter options:   The encryption options.
     - parameter key:       The shared secret key.
     - parameter iv:        Initialization vector, optional.

     - throws: `SCryptoError` instance in case of eny errors.



    /**
     The encryption algorithms that are supported by the Cipher.
     
     - AES: Advanced Encryption Standard is a block cipher standardized by NIST. AES is both fast, and cryptographically strong. It is a good default choice for encryption.
            The secret key must be either 128, 192, or 256 bits long.
     - DES: A block cipher. The key should be either 64 bits long.
     - TripleDES: A block cipher standardized by NIST and not recommended for new applications because it is incredibly slow. The key should be 192 bits long.
     - CAST: A block cipher approved for use in the Canadian government by the Communications Security Establishment. It is a variable key length cipher and supports keys from 40-128 bits in length in increments of 8 bits.
     - RC2: A block cipher with variable key length from 8 to 1024 bits, in steps of 8 bits.
     - RC4: A stream cipher with serious weaknesses in its initial stream output. Its use is strongly discouraged. The secret key must be either 40, 56, 64, 80, 128, 192, or 256 bits in length.
     - Blowfish: A block cipher with variable key length from 32 to 448 bits in increments of 8 bits. Known to be susceptible to attacks when using weak keys.
     */
    public enum Algorithm: RawConvertible {
        case AES, DES, TripleDES, CAST, RC2, RC4, Blowfish
