DecodingResult

From Crypto++ Wiki
Jump to navigation Jump to search
DecodingResult
Documentation
#include <cryptopp/cryptlib.h>

DecodingResult is used to hold the result of a decryption operation.

If you are using Filters then see SignerFilter and SignatureVerificationFilter.

Contsructor

Sample

// Decryption
DecodingResult result = decryptor.Decrypt( ... );

// Crypto++ Test
if( false == result.isValidCoding ) {
    throw std::runtime_error("Crypto++: decryption failed");
}
#define ECC_ALGORITHM ECP
#define ECC_CURVE ASN1::secp160r1()

ECIES< ECC_ALGORITHM >::PrivateKey PrivateKey;
ECIES< ECC_ALGORITHM >::PublicKey PublicKey;
AutoSeededRandomPool rng;

// Curve Key Generation
privateKey.Initialize( rng, ECC_CURVE );
privateKey.MakePublicKey( PublicKey );

// Encryptor and Decryptor
ECIES< ECC_ALGORITHM >::Encryptor encryptor( publicKey );
ECIES< ECC_ALGORITHM >::Decryptor decryptor( privateKey );

// Message
std::string plainText = "Yoda said, Do or do not. There is no try.";
...

// Encryption
encryptor.Encrypt( rng, reinterpret_cast<const byte*>(plainText.c_str()), plainTextLength, cipherText);
...

// Decryption
DecodingResult result = decryptor.Decrypt( rng, cipherText, cipherTextLength, reinterpret_cast<byte*>(recoveredText));

// Crypto++ Test
if( false == result.isValidCoding ) {
    throw std::runtime_error("Crypto++: decryption failed");
}