Interface for public-key signers. More...
Public Member Functions | |
virtual PK_MessageAccumulator * | NewSignatureAccumulator (RandomNumberGenerator &rng) const =0 |
create a new HashTransformation to accumulate the message to be signed | |
virtual void | InputRecoverableMessage (PK_MessageAccumulator &messageAccumulator, const byte *recoverableMessage, size_t recoverableMessageLength) const =0 |
virtual size_t | Sign (RandomNumberGenerator &rng, PK_MessageAccumulator *messageAccumulator, byte *signature) const |
sign and delete messageAccumulator (even in case of exception thrown) | |
virtual size_t | SignAndRestart (RandomNumberGenerator &rng, PK_MessageAccumulator &messageAccumulator, byte *signature, bool restart=true) const =0 |
sign and restart messageAccumulator | |
virtual size_t | SignMessage (RandomNumberGenerator &rng, const byte *message, size_t messageLen, byte *signature) const |
sign a message | |
virtual size_t | SignMessageWithRecovery (RandomNumberGenerator &rng, const byte *recoverableMessage, size_t recoverableMessageLength, const byte *nonrecoverableMessage, size_t nonrecoverableMessageLength, byte *signature) const |
sign a recoverable message | |
virtual size_t | SignatureLength () const =0 |
signature length if it only depends on the key, otherwise 0 | |
virtual size_t | MaxSignatureLength (size_t recoverablePartLength=0) const |
maximum signature length produced for a given length of recoverable message part | |
virtual size_t | MaxRecoverableLength () const =0 |
length of longest message that can be recovered, or 0 if this signature scheme does not support message recovery | |
virtual size_t | MaxRecoverableLengthFromSignatureLength (size_t signatureLength) const =0 |
length of longest message that can be recovered from a signature of given length, or 0 if this signature scheme does not support message recovery | |
virtual bool | IsProbabilistic () const =0 |
requires a random number generator to sign | |
virtual bool | AllowNonrecoverablePart () const =0 |
whether or not a non-recoverable message part can be signed | |
virtual bool | SignatureUpfront () const |
if this function returns true, during verification you must input the signature before the message, otherwise you can input it at anytime */ | |
virtual bool | RecoverablePartFirst () const =0 |
whether you must input the recoverable part before the non-recoverable part during signing | |
CryptoMaterial & | AccessMaterial () |
returns a reference to the crypto material used by this object | |
const CryptoMaterial & | GetMaterial () const |
returns a const reference to the crypto material used by this object | |
virtual PrivateKey & | AccessPrivateKey ()=0 |
virtual const PrivateKey & | GetPrivateKey () const |
void | BERDecode (BufferedTransformation &bt) |
for backwards compatibility, calls AccessMaterial().Load(bt) | |
void | DEREncode (BufferedTransformation &bt) const |
for backwards compatibility, calls GetMaterial().Save(bt) | |
virtual std::string | AlgorithmName () const |
Provides the name of this algorithm. | |
virtual Clonable * | Clone () const |
Copies this object. |
Interface for public-key signers.
Definition at line 2311 of file cryptlib.h.
size_t PK_Signer::Sign | ( | RandomNumberGenerator & | rng, | |
PK_MessageAccumulator * | messageAccumulator, | |||
byte * | signature | |||
) | const [virtual] |
sign and delete messageAccumulator (even in case of exception thrown)
Definition at line 869 of file cryptlib.cpp.
References SignAndRestart().
Referenced by SignerFilter::Put2().
virtual size_t PK_Signer::SignAndRestart | ( | RandomNumberGenerator & | rng, | |
PK_MessageAccumulator & | messageAccumulator, | |||
byte * | signature, | |||
bool | restart = true | |||
) | const [pure virtual] |
sign and restart messageAccumulator
Implemented in TF_SignerBase, DL_SignerBase< T >, and DL_SignerBase< SCHEME_OPTIONS::Element >.
Referenced by Sign(), SignMessage(), and SignMessageWithRecovery().
size_t PK_Signer::SignMessage | ( | RandomNumberGenerator & | rng, | |
const byte * | message, | |||
size_t | messageLen, | |||
byte * | signature | |||
) | const [virtual] |
sign a message
Definition at line 875 of file cryptlib.cpp.
References NewSignatureAccumulator(), and SignAndRestart().
size_t PK_Signer::SignMessageWithRecovery | ( | RandomNumberGenerator & | rng, | |
const byte * | recoverableMessage, | |||
size_t | recoverableMessageLength, | |||
const byte * | nonrecoverableMessage, | |||
size_t | nonrecoverableMessageLength, | |||
byte * | signature | |||
) | const [virtual] |
sign a recoverable message
Definition at line 882 of file cryptlib.cpp.
References NewSignatureAccumulator(), and SignAndRestart().
virtual bool PK_SignatureScheme::IsProbabilistic | ( | ) | const [pure virtual, inherited] |
requires a random number generator to sign
if this returns false, NullRNG() can be passed to functions that take RandomNumberGenerator &
virtual std::string Algorithm::AlgorithmName | ( | ) | const [inline, virtual, inherited] |
Provides the name of this algorithm.
The standard algorithm name can be a name like AES or AES/GCM. Some algorithms do not have standard names yet. For example, there is no standard algorithm name for Shoup's ECIES.
Reimplemented in Adler32, CCM_Base, CRC32, ClassNullRNG, AuthenticatedSymmetricCipher, DH_Domain< GROUP_PARAMETERS, COFACTOR_OPTION >, EAX_Base, StreamTransformationFilter, HashFilter, HashVerificationFilter, AuthenticatedDecryptionFilter, SignerFilter, SignatureVerificationFilter, GCM_Base, HMAC< T >, RDRAND, RDSEED, SHA3, BitBucket, and VMAC_Base.
Definition at line 488 of file cryptlib.h.
Referenced by BufferedTransformation::ChannelCreatePutSpace(), BufferedTransformation::ChannelFlush(), BufferedTransformation::ChannelMessageSeriesEnd(), BufferedTransformation::ChannelPut2(), TF_DecryptorBase::Decrypt(), TF_EncryptorBase::Encrypt(), StreamTransformation::ProcessLastBlock(), and PK_DefaultDecryptionFilter::Put2().
virtual Clonable* Clonable::Clone | ( | ) | const [inline, virtual, inherited] |
Copies this object.
NotImplemented |
Definition at line 464 of file cryptlib.h.