Library: Crypto
Package: Cipher
Header: Poco/Crypto/CryptoTransform.h
This interface represents the basic operations for cryptographic transformations to be used with a CryptoInputStream or a CryptoOutputStream.
Implementations of this class are returned by the Cipher class to perform encryption or decryption of data.
Member Functions: blockSize, finalize, transform
Creates a new CryptoTransform object.
virtual ~CryptoTransform();
Destroys the CryptoTransform.
virtual std::size_t blockSize() const = 0;
Returns the block size for this CryptoTransform.
virtual std::streamsize finalize(
unsigned char * output,
std::streamsize length
) = 0;
Finalizes the transformation. The output buffer must contain enough space for at least two blocks, ie.
length >= 2*blockSize()
must be true. Returns the number of bytes written to the output buffer.
virtual std::streamsize transform(
const unsigned char * input,
std::streamsize inputLength,
unsigned char * output,
std::streamsize outputLength
) = 0;
Transforms a chunk of data. The inputLength is arbitrary and does not need to be a multiple of the block size. The output buffer has a maximum capacity of the given outputLength that must be at least
inputLength + blockSize() - 1
Returns the number of bytes written to the output buffer.