# CipherModeDocumentation Struct Reference

`#include <modes.h>`

Inheritance diagram for CipherModeDocumentation:

List of all members.

## Detailed Description

Cipher modes documentation. See NIST SP 800-38A for definitions of these modes. See AuthenticatedSymmetricCipherDocumentation for authenticated encryption modes.

Each class derived from this one defines two types, Encryption and Decryption, both of which implement the SymmetricCipher interface. For each mode there are two classes, one of which is a template class, and the other one has a name that ends in "_ExternalCipher". The "external cipher" mode objects hold a reference to the underlying block cipher, instead of holding an instance of it. The reference must be passed in to the constructor. For the "cipher holder" classes, the CIPHER template parameter should be a class derived from BlockCipherDocumentation, for example DES or AES.

Definition at line 27 of file modes.h.

## Public Types
typedef SymmetricCipher | Encryption
| implements the SymmetricCipher interface
typedef SymmetricCipher | Decryption
| implements the SymmetricCipher interface

The documentation for this struct was generated from the following file:

- modes.h