Package org.bouncycastle.crypto.paddings

## Interface BlockCipherPadding

- All Known Implementing Classes:
    `ISO10126d2Padding`, `ISO7816d4Padding`, `PKCS7Padding`, `TBCPadding`, `X923Padding`, `ZeroBytePadding`

      public interface BlockCipherPadding

  Block cipher padders are expected to conform to this interface

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `addPadding​(byte[] in, int inOff)` | add the pad bytes to the passed in block, returning the number of bytes added.
    `java.lang.String` | `getPaddingName()` | Return the name of the algorithm the cipher implements.
    `void` | `init​(java.security.SecureRandom random)` | Initialise the padder.
    `int` | `padCount​(byte[] in)` | return the number of pad bytes present in the block.

- - ### Method Detail

    - #### init

          void init​(java.security.SecureRandom random)
             throws java.lang.IllegalArgumentException

      Initialise the padder.
      Parameters:
        `random` - the source of randomness for the padding, if required.
      Throws:
        `java.lang.IllegalArgumentException`

    - #### getPaddingName

          java.lang.String getPaddingName()

      Return the name of the algorithm the cipher implements.
      Returns:
        the name of the algorithm the cipher implements.

    - #### addPadding

          int addPadding​(byte[] in,
                         int inOff)

      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.

    - #### padCount

          int padCount​(byte[] in)
                throws InvalidCipherTextException

      return the number of pad bytes present in the block.
      Throws:
        `InvalidCipherTextException` - if the padding is badly formed or invalid.