org.bouncycastle.crypto.paddings.BlockCipherPadding Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-ext-debug-jdk18on Show documentation
Show all versions of bcprov-ext-debug-jdk18on Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for Java 1.8 and later with debug enabled.
The newest version!
package org.bouncycastle.crypto.paddings;
import java.security.SecureRandom;
import org.bouncycastle.crypto.InvalidCipherTextException;
/**
* Block cipher padders are expected to conform to this interface
*/
public interface BlockCipherPadding
{
/**
* Initialise the padder.
*
* @param random the source of randomness for the padding, if required.
*/
public void init(SecureRandom random)
throws IllegalArgumentException;
/**
* Return the name of the algorithm the cipher implements.
*
* @return the name of the algorithm the cipher implements.
*/
public String getPaddingName();
/**
* add the pad bytes to the passed in block, returning the
* number of bytes added.
*
* Note: this assumes that the last block of plain text is always
* passed to it inside in. i.e. if inOff is zero, indicating the
* entire block is to be overwritten with padding the value of in
* should be the same as the last block of plain text. The reason
* for this is that some modes such as "trailing bit compliment"
* base the padding on the last byte of plain text.
*
*/
public int addPadding(byte[] in, int inOff);
/**
* return the number of pad bytes present in the block.
* @exception InvalidCipherTextException if the padding is badly formed
* or invalid.
*/
public int padCount(byte[] in)
throws InvalidCipherTextException;
}