/* See LICENSE for licensing and NOTICE for copyright. */ package org.cryptacular.adapter; import org.cryptacular.CryptoException; /** * Adapter for all block cipher types. * * @author Middleware Services */ public interface BlockCipherAdapter extends CipherAdapter { /** * Gets the size of the output buffer required to hold the output of an input buffer of the given size. * * @param len Length of input buffer. * * @return Size of output buffer. */ int getOutputSize(int len); /** * Finish the encryption/decryption operation (e.g. apply padding). * * @param out Output buffer to receive final processing output. * @param outOff Offset into output buffer where processed data should start. * * @return Number of bytes written to output buffer. * * @throws CryptoException on underlying cipher finalization errors. */ int doFinal(byte[] out, int outOff) throws CryptoException; }