Crypto++
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345678910111213]
 CAbstractGroup< T >Abstract Group
 CAbstractGroup< EC2NPoint >
 CAbstractGroup< ECPPoint >
 CAbstractGroup< EuclideanDomainOf< PolynomialMod2 >::Element >
 CAbstractGroup< GFP2Element >
 CAbstractGroup< Integer >
 CAbstractGroup< PolynomialMod2 >
 CAbstractGroup< PolynomialOver< T > >
 CAdditiveCipherAbstractPolicy
 CAlgorithmParametersBase
 CAllocatorBase< T >
 CAllocatorBase< byte >
 CAllocatorBase< T_HashWordType >
 CAllocatorBase< word >
 CAllocatorBase< word32 >
 CAllocatorBase< word64 >
 CARC4_Base
 CASN1ObjectInterface for encoding and decoding ASN1 objects
 CAssignFromHelperClass< T, BASE >
 CAuthenticatedSymmetricCipherDocumentationEach class derived from this one defines two types, Encryption and Decryption, both of which implement the AuthenticatedSymmetricCipher interface
 CBASE
 CBASE1
 CBASE2
 CBASE3
 CBaseAndExponent< T, E >Base and Exponent
 CBlockCipherDocumentationThese objects usually should not be used directly. See CipherModeDocumentation instead
 CBlockGetAndPut< T, B, GA, PA >
 CBlockPaddingSchemeDef
 CFilterWithBufferedInput::BlockQueue
 CByteArrayParameter
 CCallStack
 CCAST
 CCFB_CipherAbstractPolicy
 CChannelSwitchTypedefs
 CClonableInterface for cloning objects, this is not implemented by most classes yet
 CHuffmanEncoder::Code
 CCompileAssert< b >
 CCompileAssert<((T_BlockSize &(T_BlockSize-1))==0)>
 CCompileAssert<(M%Q==0)>
 CCompileAssert<(N%Q==0)>
 CCompileAssert<(N< M)>
 CConstByteArrayParameterUsed to pass byte array input as part of a NameValuePairs object
 Ccounted_ptr< T >
 CDec
 CDecodingResultUsed to return decoding results
 CDigestSizeDoubleWorkaround< T >
 CDL_Base< KI >_
 CDL_Base< DL_PrivateKey< SCHEME_OPTIONS::Element > >
 CDL_Base< DL_PrivateKey< T > >
 CDL_Base< DL_PublicKey< SCHEME_OPTIONS::Element > >
 CDL_Base< DL_PublicKey< T > >
 CDL_Base< KEY_INTERFACE >
 CDL_CryptoKeys_GFPDL encryption/decryption keys (in GF(p) groups)
 CDL_CryptoKeys_LUC_
 CDL_ElgamalLikeSignatureAlgorithm< T >Interface for Elgamal-like signature algorithms
 CDL_ElgamalLikeSignatureAlgorithm< EC::Point >
 CDL_ElgamalLikeSignatureAlgorithm< Integer >
 CDL_FixedBasePrecomputation< T >
 CDL_FixedBasePrecomputation< Integer >
 CDL_GroupPrecomputation< T >
 CDL_GroupPrecomputation< EC2N::Point >
 CDL_GroupPrecomputation< ECP::Point >
 CDL_GroupPrecomputation< Integer >
 CDL_Key< T >_
 CDL_Key< DL_GroupParameters_EC< EC >::Element >
 CDL_Key< GP::Element >
 CDL_KeyAgreementAlgorithm< T >Interface for DL key agreement algorithms
 CDL_KeyAgreementAlgorithm< ELEMENT >
 CDL_KeyAgreementAlgorithm< Integer >
 CDL_KeyDerivationAlgorithm< T >Interface for key derivation algorithms used in DL cryptosystems
 CDL_KeyDerivationAlgorithm< Integer >
 CDL_Keys_DSADSA keys
 CDL_Keys_EC< EC >EC keys
 CDL_Keys_ECDSA< EC >ECDSA keys
 CDL_SchemeOptionsBase< T1, T2 >_
 CDL_SchemeOptionsBase< T1, T2::PublicKey::GroupParameters >
 CDL_SignatureKeys_GFPDL signing/verification keys (in GF(p) groups)
 CDL_SignatureKeys_LUC_
 CDL_SymmetricEncryptionAlgorithmInterface for symmetric encryption algorithms used in DL cryptosystems
 CEC2NPointElliptic Curve Point
 CECDH< EC, COFACTOR_OPTION >Elliptic Curve Diffie-Hellman, AKA ECDH
 CECMQV< EC, COFACTOR_OPTION >Elliptic Curve Menezes-Qu-Vanstone, AKA ECMQV
 CECPPointElliptical Curve Point
 CEcPrecomputation< T >
 CEcPrecomputation< EC >
 CElGamalElGamal encryption scheme with non-standard padding
 CElGamalKeys
 CEmpty
 CEMSA2HashId< H >
 CEnc
 CDeflator::EncodedMatch
 CEncryptionStandardBase class for public key encryption standard classes. These classes are used to select from variants of algorithms. Note that not all standards apply to all algorithms
 CEnumToType< ENUM_TYPE, VALUE >
 CESIGN_Keys
 Cexception
 CFilterPutSpaceHelper
 CFixedBlockSize< N >To be inherited by block ciphers with fixed block size
 CFixedBlockSize< 12 >
 CFixedBlockSize< 16 >
 CFixedBlockSize< 32 >
 CFixedBlockSize< 8 >
 CFixedBlockSize< DigestSizeDoubleWorkaround< T >::RESULT >
 CFixedBlockSize< T::DIGESTSIZE >
 CFixedKeyLength< N, IV_REQ, IV_L >To be inherited by keyed algorithms with fixed key length
 CFixedKeyLength< 10 >
 CFixedKeyLength< 12 >
 CFixedKeyLength< 16 >
 CFixedKeyLength< 20 >
 CFixedKeyLength< 20, SimpleKeyingInterface::INTERNALLY_GENERATED_IV, 4 >
 CFixedKeyLength< 24 >
 CFixedKeyLength< 32 >
 CFixedKeyLength< 32, SimpleKeyingInterface::UNIQUE_IV, 24 >
 CFixedKeyLength< 32, SimpleKeyingInterface::UNIQUE_IV, 32 >
 CFixedKeyLength< 8 >
 CFixedKeyLength< T::BLOCKSIZE >
 CFixedRounds< R >To be inherited by ciphers with fixed number of rounds
 CFixedRounds< 16 >
 CFixedRounds< 32 >
 CFixedRounds< 8 >
 CGetBlock< T, B, A >
 CGetValueHelperClass< T, BASE >
 CGF256GF(256) with polynomial basis
 CGF2_32GF(2^32) with polynomial basis
 CGFP2ElementElement of GF(p^2)
 CEMSA2HashIdLookup< BASE >::HashIdentifierLookup
 CPKCS1v15_SignatureMessageEncodingMethod::HashIdentifierLookup
 CPK_SignatureMessageEncodingMethod::HashIdentifierLookup
 CEMSA2HashIdLookup< BASE >::HashIdentifierLookup::HashIdentifierLookup2< H >
 CPKCS1v15_SignatureMessageEncodingMethod::HashIdentifierLookup::HashIdentifierLookup2< H >
 CPK_SignatureMessageEncodingMethod::HashIdentifierLookup::HashIdentifierLookup2< H >
 CHuffmanDecoderHuffman Decoder
 CHuffmanEncoderHuffman Encoder
 CInitializeInteger
 CINTERFACE
 CLazyPutterUse this to make sure LazyPut is finalized in event of exception
 CLimitedBandwidth
 CLowFirstBitReader_
 CLUC
 CMARC4_Base
 CMaskGeneratingFunction_
 Cmember_ptr< T >
 Cmember_ptr< AlgorithmParametersBase >
 Cmember_ptr< BlockCipher >
 Cmember_ptr< BlockTransformation >
 Cmember_ptr< BufferedTransformation >
 Cmember_ptr< DES::BlockCipherFinal >
 Cmember_ptr< ECP >
 Cmember_ptr< FilterWithBufferedInput >
 Cmember_ptr< GF2NP >
 Cmember_ptr< HMAC >
 Cmember_ptr< ModularArithmetic >
 Cmember_ptr< MontgomeryRepresentation >
 Cmember_ptr< PK_MessageAccumulator >
 Cmember_ptr< RandomNumberGenerator >
 Cmember_ptr< std::ifstream >
 Cmember_ptr< std::ofstream >
 CMicrosoftCryptoProvider
 CNameValuePairsInterface for retrieving values given their names
 CNewObject< T >
 CNonblockingSinkInfo
 CNotCopyable
 CObjectFactory< AbstractClass >_
 CObjectFactoryRegistry< AbstractClass, instance >_
 CObjectHolder< T >
 CObjectHolder< CIPHER >
 CObjectHolder< HASH_ALGORITHM >
 COIDObject Identifier
 CP1363_KDF2< H >_
 CPanama< B >Base class, do not use directly
 CPasswordBasedKeyDerivationFunctionAbstract base class for password based key derivation function
 CPK_CryptoSystemInterface for public-key encryptors and decryptors
 CPK_EncryptionMessageEncodingMethodMessage encoding method for public key encryption
 CPK_SignatureMessageEncodingMethodInterface for message encoding method for public key signature schemes
 CPK_SignatureSchemeInterface for public-key signers and verifiers
 CPKCS_DigestDecoration< H >
 CPolynomialMod2Polynomial with Coefficients in GF(2)
 CPolynomialOver< T >Single-variable polynomials over arbitrary rings
 CPrimeAndGeneratorGenerator of prime numbers of special forms
 CPrimeSelector
 CPSSR_MEM_BaseWithHashId< USE_HASH_ID >
 CPutBlock< T, B, A >
 CRabinRabin
 CPolynomialOver< T >::RandomizationParameterSpecify the distribution for randomization functions
 CRandomizedTrapdoorFunctionInverse_
 CRawDES
 CAllocatorWithCleanup< T, T_Align16 >::rebind< U >
 CRegisterDefaultFactoryFor< AbstractClass, ConcreteClass, instance >
 CCFB_CipherConcretePolicy< WT, W, BASE >::RegisterOutput< B >
 CRSARSA
 CRSA_ISO
 CRWRW
 CSAFERBase class, do not use directly
 CSafeShifter< overflow >
 CSafeShifter< false >
 CSafeShifter< true >
 CSameKeyLengthAs< T, IV_REQ, IV_L >Support query of key length that's the same as another class
 CSameKeyLengthAs< T >
 CSameKeyLengthAs< T_BlockCipher >
 CSecBlock< T, A >Block of memory allocated using A
 CSecBlock< byte >
 CSecBlock< byte, A >
 CSecBlock< byte, AllocatorWithCleanup< byte > >
 CSecBlock< byte, AllocatorWithCleanup< byte, true > >
 CSecBlock< Deflator::EncodedMatch >
 CSecBlock< HuffmanEncoder::Code >
 CSecBlock< RC5_WORD >
 CSecBlock< RC6_WORD >
 CSecBlock< T, FixedSizeAllocatorWithCleanup< T, S, NullAllocator< T >, T_Align16 > >
 CSecBlock< T_HashWordType, A >
 CSecBlock< T_HashWordType, FixedSizeAllocatorWithCleanup< T_HashWordType, S, NullAllocator< T_HashWordType >, T_Align16 > >
 CSecBlock< unsigned int, A >
 CSecBlock< word >
 CSecBlock< Word, A >
 CSecBlock< word, AllocatorWithCleanup< word, 0 > >
 CSecBlock< word16 >
 CSecBlock< word16, A >
 CSecBlock< word32 >
 CSecBlock< word32, A >
 CSecBlock< word32, FixedSizeAllocatorWithCleanup< word32, S, NullAllocator< word32 >, T_Align16 > >
 CSecBlock< word64 >
 CSecBlock< word64, A >
 CSecBlock< word64, FixedSizeAllocatorWithCleanup< word64, S, NullAllocator< word64 >, T_Align16 > >
 CSignatureStandardBase class for public key signature standard classes. These classes are used to select from variants of algorithms. Note that not all standards apply to all algorithms
 Csimple_ptr< T >
 CSimpleKeyingInterfaceKeying interface for crypto algorithms that take byte strings as keys
 CSingleton< T, F, instance >
 CSocketWrapper for Windows or Berkeley Sockets
 CSocketsInitializer
 CSymmetricCipherDocumentationEach class derived from this one defines two types, Encryption and Decryption, both of which implement the SymmetricCipher interface. Two types of classes derive from this class: stream ciphers and block cipher modes. Stream ciphers can be used alone, cipher mode classes need to be used with a block cipher. See CipherModeDocumentation for more for information about using cipher modes and block ciphers
 CTF_Base< TFI, MEI >_
 CTF_Base< RandomizedTrapdoorFunction, PK_EncryptionMessageEncodingMethod >
 CTF_Base< RandomizedTrapdoorFunctionInverse, PK_SignatureMessageEncodingMethod >
 CTF_Base< TrapdoorFunction, PK_SignatureMessageEncodingMethod >
 CTF_Base< TrapdoorFunctionInverse, PK_EncryptionMessageEncodingMethod >
 CTF_CryptoSchemeOptions< T1, T2, T3 >_
 CTimerBase_
 CTracer
 CTrapdoorFunctionBounds_
 CVariableKeyLength< D, N, M, Q, IV_REQ, IV_L >Support query of variable key length, template parameters are default, min, max, multiple (default multiple 1)
 CVariableKeyLength< 16, 0, 2 *(INT_MAX/2), 2 >
 CVariableKeyLength< 16, 0, 255 >
 CVariableKeyLength< 16, 0, 32 >
 CVariableKeyLength< 16, 0, INT_MAX >
 CVariableKeyLength< 16, 1, 128 >
 CVariableKeyLength< 16, 1, 16 >
 CVariableKeyLength< 16, 1, 256 >
 CVariableKeyLength< 16, 1, 32, 1, SimpleKeyingInterface::UNIQUE_IV, 16 >
 CVariableKeyLength< 16, 1, 56 >
 CVariableKeyLength< 16, 16, 32 >
 CVariableKeyLength< 16, 16, 32, 8 >
 CVariableKeyLength< 16, 16, 56, 4 >
 CVariableKeyLength< 16, 16, 64 >
 CVariableKeyLength< 16, 5, 16 >
 CVariableKeyLength< 16, 8, 16, 8 >
 CVariableKeyLength< 32, 0, INT_MAX >
 CVariableKeyLength< 32, 16, 32, 16, SimpleKeyingInterface::UNIQUE_IV, 8 >
 CVariableRounds< D, N, M >To be inherited by ciphers with variable number of rounds
 CVariableRounds< 10, 1, 13 >
 CVariableRounds< 11 >
 CVariableRounds< 16 >
 CVariableRounds< 20 >
 CVariableRounds< 32 >
 CVariableRounds< 6, 2 >
 Cvector_member_ptrs< T >
 CWaitableInterface for objects that you can wait for
 CWAKE_Base
 CINFO
 CKEYS
 CPK
 CPOLICY
 CPOLICY_INTERFACE
 CT
 CT_Base