# Poco::Crypto

# class CryptoTransform

Library: Crypto
Package: Cipher
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 ~CryptoTransform();

Destroys the CryptoTransform.

## Member Functions

### blockSize

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

Returns the block size for this CryptoTransform.

### finalize

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 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.