# cryptlib.h File Reference

## Detailed Description

This file contains the declarations for the abstract base classes that provide a uniform interface to this library.

Definition in file cryptlib.h.

`#include "config.h"`
`#include "stdcpp.h"`

Go to the source code of this file.

## Namespaces
namespace | Name
## Classes
struct | EnumToType< ENUM_TYPE, VALUE >
class | Exception
| base class for all exceptions thrown by Crypto++ More...
class | InvalidArgument
| exception thrown when an invalid argument is detected More...
class | InvalidDataFormat
| exception thrown when input data is received that doesn't conform to expected format More...
class | InvalidCiphertext
| exception thrown by decryption filters when trying to decrypt an invalid ciphertext More...
class | NotImplemented
| exception thrown by a class if a non-implemented method is called More...
class | CannotFlush
| exception thrown by a class when Flush(true) is called but it can't completely flush its buffers More...
class | OS_Error
| error reported by the operating system More...
struct | DecodingResult
| used to return decoding results More...
class | NameValuePairs
| interface for retrieving values given their names More...
class | NameValuePairs::ValueTypeMismatch
| exception thrown when trying to retrieve a value using a different type than expected More...
class | NullNameValuePairs
| empty set of name-value pairs More...
class | Clonable
| interface for cloning objects, this is not implemented by most classes yet More...
class | Algorithm
| interface for all crypto algorithms More...
class | SimpleKeyingInterface
| keying interface for crypto algorithms that take byte strings as keys More...
class | BlockTransformation
| interface for the data processing part of block ciphers More...
class | StreamTransformation
| interface for the data processing part of stream ciphers More...
class | HashTransformation
| interface for hash functions and data processing part of MACs More...
class | BlockCipher
| interface for one direction (encryption or decryption) of a block cipher More...
class | SymmetricCipher
| interface for one direction (encryption or decryption) of a stream cipher or cipher mode More...
class | MessageAuthenticationCode
| interface for message authentication codes More...
class | AuthenticatedSymmetricCipher
| interface for for one direction (encryption or decryption) of a stream cipher or block cipher mode with authentication More...
class | AuthenticatedSymmetricCipher::BadState
| this indicates that a member function was called in the wrong state, for example trying to encrypt a message before having set the key or IV More...
class | RandomNumberGenerator
| interface for random number generators More...
class | Waitable
| interface for objects that you can wait for More...
class | BufferedTransformation
| interface for buffered transformations More...
struct | BufferedTransformation::BlockingInputOnly
| thrown by objects that have not implemented nonblocking input processing More...
struct | BufferedTransformation::NoChannelSupport
struct | BufferedTransformation::InvalidChannelName
class | CryptoMaterial
| interface for crypto material, such as public and private keys, and crypto parameters More...
class | CryptoMaterial::InvalidMaterial
| exception thrown when invalid crypto material is detected More...
class | GeneratableCryptoMaterial
| interface for generatable crypto material, such as private keys and crypto parameters More...
class | PublicKey
| interface for public keys More...
class | PrivateKey
| interface for private keys More...
class | CryptoParameters
| interface for crypto prameters More...
class | AsymmetricAlgorithm
| interface for asymmetric algorithms More...
class | PublicKeyAlgorithm
| interface for asymmetric algorithms using public keys More...
class | PrivateKeyAlgorithm
| interface for asymmetric algorithms using private keys More...
class | KeyAgreementAlgorithm
| interface for key agreement algorithms More...
class | PK_CryptoSystem
| interface for public-key encryptors and decryptors More...
class | PK_Encryptor
| interface for public-key encryptors More...
class | PK_Encryptor::InvalidPlaintextLength
| exception thrown when trying to encrypt plaintext of invalid length More...
class | PK_Decryptor
| interface for public-key decryptors More...
class | PK_SignatureScheme
| interface for public-key signers and verifiers More...
class | PK_SignatureScheme::InvalidKeyLength
| invalid key exception, may be thrown by any function in this class if the private or public key has a length that can't be used More...
class | PK_SignatureScheme::KeyTooShort
| key too short exception, may be thrown by any function in this class if the private or public key is too short to sign or verify anything More...
class | PK_MessageAccumulator
| interface for accumulating messages to be signed or verified More...
class | PK_Signer
| interface for public-key signers More...
class | PK_Verifier
| interface for public-key signature verifiers More...
class | SimpleKeyAgreementDomain
| interface for domains of simple key agreement protocols More...
class | AuthenticatedKeyAgreementDomain
| interface for domains of authenticated key agreement protocols More...
class | BERDecodeErr
| BER Decode Exception Class, may be thrown during an ASN1 BER decode operation. More...
class | ASN1Object
| interface for encoding and decoding ASN1 objects More...
## Typedefs
typedef EnumToType< ByteOrder, LITTLE_ENDIAN_ORDER > | LittleEndian
typedef EnumToType< ByteOrder, BIG_ENDIAN_ORDER > | BigEndian
typedef HashTransformation | HashFunction
## Enumerations
enum | CipherDir { ENCRYPTION, DECRYPTION }
| used to specify a direction for a cipher to operate in (encrypt or decrypt)
enum | ByteOrder { LITTLE_ENDIAN_ORDER = 0, BIG_ENDIAN_ORDER = 1 }
## Functions
RandomNumberGenerator &__cdecl | NullRNG ()
| returns a reference that can be passed to functions that ask for a RNG but doesn't actually use it
BufferedTransformation & | TheBitBucket ()
| returns a reference to a BufferedTransformation object that discards all input
## Variables
const unsigned long | INFINITE_TIME = ULONG_MAX
| used to represent infinite time
const NullNameValuePairs | g_nullNameValuePairs
| _
const std::string | DEFAULT_CHANNEL
| the default channel for BufferedTransformation, equal to the empty string
const std::string | AAD_CHANNEL
| channel for additional authenticated data, equal to "AAD"