Security Scol plugin
|
This file contains helper classes/functions for implementing public key algorithms. More...
#include "config.h"
#include "cryptlib.h"
#include "integer.h"
#include "algebra.h"
#include "modarith.h"
#include "filters.h"
#include "eprecomp.h"
#include "fips140.h"
#include "argnames.h"
#include "smartptr.h"
#include "stdcpp.h"
Go to the source code of this file.
Classes | |
class | TrapdoorFunctionBounds |
Provides range for plaintext and ciphertext lengths. More... | |
class | RandomizedTrapdoorFunction |
Applies the trapdoor function, using random data if required. More... | |
class | TrapdoorFunction |
Applies the trapdoor function. More... | |
class | RandomizedTrapdoorFunctionInverse |
Applies the inverse of the trapdoor function, using random data if required. More... | |
class | TrapdoorFunctionInverse |
Applies the inverse of the trapdoor function. More... | |
class | PK_EncryptionMessageEncodingMethod |
Message encoding method for public key encryption. More... | |
class | TF_Base< TFI, MEI > |
The base for trapdoor based cryptosystems. More... | |
class | PK_FixedLengthCryptoSystemImpl< BASE > |
Public key trapdoor function default implementation. More... | |
class | TF_CryptoSystemBase< INTFACE, BASE > |
Trapdoor function cryptosystem base class. More... | |
class | TF_DecryptorBase |
Trapdoor function cryptosystems decryption base class. More... | |
class | TF_EncryptorBase |
Trapdoor function cryptosystems encryption base class. More... | |
class | PK_SignatureMessageEncodingMethod |
Interface for message encoding method for public key signature schemes. More... | |
struct | PK_SignatureMessageEncodingMethod::HashIdentifierLookup |
struct | PK_SignatureMessageEncodingMethod::HashIdentifierLookup::HashIdentifierLookup2< H > |
class | PK_DeterministicSignatureMessageEncodingMethod |
Interface for message encoding method for public key signature schemes. More... | |
class | PK_RecoverableSignatureMessageEncodingMethod |
Interface for message encoding method for public key signature schemes. More... | |
class | DL_SignatureMessageEncodingMethod_DSA |
Interface for message encoding method for public key signature schemes. More... | |
class | DL_SignatureMessageEncodingMethod_NR |
Interface for message encoding method for public key signature schemes. More... | |
class | PK_MessageAccumulatorBase |
Interface for message encoding method for public key signature schemes. More... | |
class | PK_MessageAccumulatorImpl< HASH_ALGORITHM > |
Interface for message encoding method for public key signature schemes. More... | |
class | TF_SignatureSchemeBase< INTFACE, BASE > |
Trapdoor Function (TF) Signature Scheme base class. More... | |
class | TF_SignerBase |
Trapdoor Function (TF) Signer base class. More... | |
class | TF_VerifierBase |
Trapdoor Function (TF) Verifier base class. More... | |
struct | TF_CryptoSchemeOptions< T1, T2, T3 > |
Trapdoor Function (TF) scheme options. More... | |
struct | TF_SignatureSchemeOptions< T1, T2, T3, T4 > |
Trapdoor Function (TF) signature scheme options. More... | |
class | TF_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY_CLASS > |
Trapdoor Function (TF) base implementation. More... | |
class | TF_ObjectImplExtRef< BASE, SCHEME_OPTIONS, KEY > |
Trapdoor Function (TF) signature with external reference. More... | |
class | TF_ObjectImpl< BASE, SCHEME_OPTIONS, KEY_CLASS > |
Trapdoor Function (TF) signature scheme options. More... | |
class | TF_DecryptorImpl< SCHEME_OPTIONS > |
Trapdoor Function (TF) decryptor options. More... | |
class | TF_EncryptorImpl< SCHEME_OPTIONS > |
Trapdoor Function (TF) encryptor options. More... | |
class | TF_SignerImpl< SCHEME_OPTIONS > |
Trapdoor Function (TF) encryptor options. More... | |
class | TF_VerifierImpl< SCHEME_OPTIONS > |
Trapdoor Function (TF) encryptor options. More... | |
class | MaskGeneratingFunction |
Mask generation function interface. More... | |
class | P1363_MGF1 |
P1363 mask generation function. More... | |
class | P1363_KDF2< H > |
P1363 key derivation function. More... | |
class | DL_BadElement |
Exception thrown when an invalid group element is encountered. More... | |
class | DL_GroupParameters< T > |
Interface for Discrete Log (DL) group parameters. More... | |
class | DL_GroupParametersImpl< GROUP_PRECOMP, BASE_PRECOMP, BASE > |
Base implementation of Discrete Log (DL) group parameters. More... | |
class | DL_Key< T > |
Base class for a Discrete Log (DL) key. More... | |
class | DL_PublicKey< T > |
Interface for Discrete Log (DL) public keys. More... | |
class | DL_PrivateKey< T > |
Interface for Discrete Log (DL) private keys. More... | |
class | DL_KeyImpl< PK, GP, O > |
Discrete Log (DL) key base implementation. More... | |
class | DL_PrivateKeyImpl< GP > |
Discrete Log (DL) private key base implementation. More... | |
class | DL_PrivateKey_WithSignaturePairwiseConsistencyTest< BASE, SIGNATURE_SCHEME > |
class | DL_PublicKeyImpl< GP > |
Discrete Log (DL) public key base implementation. More... | |
class | DL_ElgamalLikeSignatureAlgorithm< T > |
Interface for Elgamal-like signature algorithms. More... | |
class | DeterministicSignatureAlgorithm |
Interface for deterministic signers. More... | |
class | DL_KeyAgreementAlgorithm< T > |
Interface for DL key agreement algorithms. More... | |
class | DL_KeyDerivationAlgorithm< T > |
Interface for key derivation algorithms used in DL cryptosystems. More... | |
class | DL_SymmetricEncryptionAlgorithm |
Interface for symmetric encryption algorithms used in DL cryptosystems. More... | |
class | DL_Base< KI > |
Discrete Log (DL) base interface. More... | |
class | DL_SignatureSchemeBase< INTFACE, KEY_INTFACE > |
Discrete Log (DL) signature scheme base implementation. More... | |
class | DL_SignerBase< T > |
Discrete Log (DL) signature scheme signer base implementation. More... | |
class | DL_VerifierBase< T > |
Discret Log (DL) Verifier base class. More... | |
class | DL_CryptoSystemBase< PK, KI > |
Discrete Log (DL) cryptosystem base implementation. More... | |
class | DL_DecryptorBase< T > |
Discrete Log (DL) decryptor base implementation. More... | |
class | DL_EncryptorBase< T > |
Discrete Log (DL) encryptor base implementation. More... | |
struct | DL_SchemeOptionsBase< T1, T2 > |
Discrete Log (DL) scheme options. More... | |
struct | DL_KeyedSchemeOptions< T1, T2 > |
Discrete Log (DL) key options. More... | |
struct | DL_SignatureSchemeOptions< T1, T2, T3, T4, T5 > |
Discrete Log (DL) signature scheme options. More... | |
struct | DL_CryptoSchemeOptions< T1, T2, T3, T4, T5 > |
Discrete Log (DL) crypto scheme options. More... | |
class | DL_ObjectImplBase< BASE, SCHEME_OPTIONS, KEY > |
Discrete Log (DL) base object implementation. More... | |
class | DL_ObjectImpl< BASE, SCHEME_OPTIONS, KEY > |
Discrete Log (DL) object implementation. More... | |
class | DL_SignerImpl< SCHEME_OPTIONS > |
Discrete Log (DL) signer implementation. More... | |
class | DL_VerifierImpl< SCHEME_OPTIONS > |
Discrete Log (DL) verifier implementation. More... | |
class | DL_EncryptorImpl< SCHEME_OPTIONS > |
Discrete Log (DL) encryptor implementation. More... | |
class | DL_DecryptorImpl< SCHEME_OPTIONS > |
Discrete Log (DL) decryptor implementation. More... | |
class | DL_SimpleKeyAgreementDomainBase< T > |
Discrete Log (DL) simple key agreement base implementation. More... | |
class | DL_KeyAgreementAlgorithm_DH< ELEMENT, COFACTOR_OPTION > |
Diffie-Hellman key agreement algorithm. More... | |
class | PK_FinalTemplate< BASE > |
Template implementing constructors for public key algorithm classes. More... | |
struct | EncryptionStandard |
Base class for public key encryption standard classes. More... | |
struct | SignatureStandard |
Base class for public key signature standard classes. More... | |
class | TF_ES< KEYS, STANDARD, ALG_INFO > |
Trapdoor Function (TF) encryption scheme. More... | |
class | TF_SS< KEYS, STANDARD, H, ALG_INFO > |
Trapdoor Function (TF) Signature Scheme. More... | |
class | DL_SS< KEYS, SA, MEM, H, ALG_INFO > |
Discrete Log (DL) signature scheme. More... | |
class | DL_ES< KEYS, AA, DA, EA, ALG_INFO > |
Discrete Log (DL) encryption scheme. More... | |
Macros | |
#define | MAYBE_RETURN(x) CRYPTOPP_UNUSED(x) |
Typedefs | |
typedef std::pair< const byte *, unsigned int > | HashIdentifier |
typedef EnumToType< CofactorMultiplicationOption, NO_COFACTOR_MULTIPLICTION > | NoCofactorMultiplication |
typedef EnumToType< CofactorMultiplicationOption, COMPATIBLE_COFACTOR_MULTIPLICTION > | CompatibleCofactorMultiplication |
typedef EnumToType< CofactorMultiplicationOption, INCOMPATIBLE_COFACTOR_MULTIPLICTION > | IncompatibleCofactorMultiplication |
Enumerations | |
enum | CofactorMultiplicationOption { NO_COFACTOR_MULTIPLICTION , COMPATIBLE_COFACTOR_MULTIPLICTION , INCOMPATIBLE_COFACTOR_MULTIPLICTION } |
Methods for avoiding "Small-Subgroup" attacks on Diffie-Hellman Key Agreement. More... | |
Functions | |
CRYPTOPP_DLL void CRYPTOPP_API | P1363_MGF1KDF2_Common (HashTransformation &hash, byte *output, size_t outputLength, const byte *input, size_t inputLength, const byte *derivationParams, size_t derivationParamsLength, bool mask, unsigned int counterStart) |
This file contains helper classes/functions for implementing public key algorithms.
The class hierarchies in this header file tend to look like this:
x1 +--+ | | y1 z1 | | x2<y1> x2<z1> | | y2 z2 | | x3<y2> x3<z2> | | y3 z3
The TF_ prefix means an implementation using trapdoor functions on integers.
The DL_ prefix means an implementation using group operations in groups where discrete log is hard.
Definition in file pubkey.h.
typedef std::pair<const byte *, unsigned int> HashIdentifier |
Methods for avoiding "Small-Subgroup" attacks on Diffie-Hellman Key Agreement.
Additional methods exist and include public key validation and choice of prime p.
CRYPTOPP_DLL void CRYPTOPP_API P1363_MGF1KDF2_Common | ( | HashTransformation & | hash, |
byte * | output, | ||
size_t | outputLength, | ||
const byte * | input, | ||
size_t | inputLength, | ||
const byte * | derivationParams, | ||
size_t | derivationParamsLength, | ||
bool | mask, | ||
unsigned int | counterStart | ||
) |
Definition at line 14 of file pubkey.cpp.