Package org.bouncycastle.crypto.paddings

## Class TBCPadding

- java.lang.Object
- - org.bouncycastle.crypto.paddings.TBCPadding

- All Implemented Interfaces:
    `BlockCipherPadding`

      public class TBCPadding
      extends java.lang.Object
      implements BlockCipherPadding

  A padder that adds Trailing-Bit-Compliment padding to a block.

  This padding pads the block out with the compliment of the last bit of the plain text.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TBCPadding()` |

  - ### Method Summary

    All Methods Instance Methods Concrete 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 padder implements.
    `void` | `init​(java.security.SecureRandom random)` | Initialise the padder.
    `int` | `padCount​(byte[] in)` | return the number of pad bytes present in the block.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TBCPadding

          public TBCPadding()

  - ### Method Detail

    - #### init

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

      Initialise the padder.
      Specified by:
        `init` in interface `BlockCipherPadding`
      Parameters:
        `random` - - a SecureRandom if available.
      Throws:
        `java.lang.IllegalArgumentException`

    - #### getPaddingName

          public java.lang.String getPaddingName()

      Return the name of the algorithm the padder implements.
      Specified by:
        `getPaddingName` in interface `BlockCipherPadding`
      Returns:
        the name of the algorithm the padder implements.

    - #### addPadding

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

      Specified by:
        `addPadding` in interface `BlockCipherPadding`

    - #### padCount

          public int padCount​(byte[] in)
                       throws InvalidCipherTextException

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