Poco::Crypto

class CryptoTransform

Library: Crypto
Package: CryptoCore
Header: Poco/Crypto/CryptoTransform.h

Description

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 Summary

Member Functions: blockSize, finalize, transform

Constructors

CryptoTransform

CryptoTransform();

Creates a new CryptoTransform object.

Destructor

~CryptoTransform virtual

virtual ~CryptoTransform();

Destroys the CryptoTransform.

Member Functions

blockSize virtual

virtual std::size_t blockSize() const = 0;

Returns the block size for this CryptoTransform.

finalize virtual

virtual std::streamsize finalize(
    unsigned char * output,
    std::streamsize length
) = 0;

Finalizes the transformation. The output buffer must contain enough space for at least one block, ie.

length >= bufferSize()

must be true. Returns the number of bytes written to the output buffer.

transform virtual

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 + bufferSize() - 1

Returns the number of bytes written to the output buffer.