IESCipher (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.jcajce.provider.asymmetric.dh

## Class IESCipher

- java.lang.Object
- - javax.crypto.CipherSpi
  - - org.bouncycastle.jcajce.provider.asymmetric.dh.IESCipher

- Direct Known Subclasses:
    IESCipher.IES, IESCipher.IESwithAES, IESCipher.IESwithDESede, IESCipher.OldIES, IESCipher.OldIESwithCipher

      public class IESCipher
      extends javax.crypto.CipherSpi

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `IESCipher.IES` Classes that inherit from us
    `static class` | `IESCipher.IESwithAES`
    `static class` | `IESCipher.IESwithDESede`
    `static class` | `IESCipher.OldIES`
    `static class` | `IESCipher.OldIESwithAES`
    `static class` | `IESCipher.OldIESwithCipher` Backwards compatibility.
    `static class` | `IESCipher.OldIESwithDESede`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IESCipher(IESEngine engine)`
    `IESCipher(OldIESEngine engine)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `engineDoFinal(byte[] input, int inputOffset, int inputLen)`
    `int` | `engineDoFinal(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset)`
    `int` | `engineGetBlockSize()`
    `byte[]` | `engineGetIV()`
    `int` | `engineGetKeySize(java.security.Key key)`
    `int` | `engineGetOutputSize(int inputLen)`
    `java.security.AlgorithmParameters` | `engineGetParameters()`
    `void` | `engineInit(int opmode, java.security.Key key, java.security.spec.AlgorithmParameterSpec engineSpec, java.security.SecureRandom random)`
    `void` | `engineInit(int opmode, java.security.Key key, java.security.AlgorithmParameters params, java.security.SecureRandom random)`
    `void` | `engineInit(int opmode, java.security.Key key, java.security.SecureRandom random)`
    `void` | `engineSetMode(java.lang.String mode)`
    `void` | `engineSetPadding(java.lang.String padding)`
    `byte[]` | `engineUpdate(byte[] input, int inputOffset, int inputLen)`
    `int` | `engineUpdate(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset)`

    - ### Methods inherited from class javax.crypto.CipherSpi

      `engineDoFinal, engineUnwrap, engineUpdate, engineUpdateAAD, engineUpdateAAD, engineWrap`

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

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

- - ### Constructor Detail

    - #### IESCipher

          public IESCipher(IESEngine engine)

    - #### IESCipher

          public IESCipher(OldIESEngine engine)

  - ### Method Detail

    - #### engineGetBlockSize

          public int engineGetBlockSize()

      Specified by:
        `engineGetBlockSize` in class `javax.crypto.CipherSpi`

    - #### engineGetKeySize

          public int engineGetKeySize(java.security.Key key)

      Overrides:
        `engineGetKeySize` in class `javax.crypto.CipherSpi`

    - #### engineGetIV

          public byte[] engineGetIV()

      Specified by:
        `engineGetIV` in class `javax.crypto.CipherSpi`

    - #### engineGetParameters

          public java.security.AlgorithmParameters engineGetParameters()

      Specified by:
        `engineGetParameters` in class `javax.crypto.CipherSpi`

    - #### engineSetMode

          public void engineSetMode(java.lang.String mode)
                             throws java.security.NoSuchAlgorithmException

      Specified by:
        `engineSetMode` in class `javax.crypto.CipherSpi`
      Throws:
        `java.security.NoSuchAlgorithmException`

    - #### engineGetOutputSize

          public int engineGetOutputSize(int inputLen)

      Specified by:
        `engineGetOutputSize` in class `javax.crypto.CipherSpi`

    - #### engineSetPadding

          public void engineSetPadding(java.lang.String padding)
                                throws javax.crypto.NoSuchPaddingException

      Specified by:
        `engineSetPadding` in class `javax.crypto.CipherSpi`
      Throws:
        `javax.crypto.NoSuchPaddingException`

    - #### engineInit

          public void engineInit(int opmode,
                        java.security.Key key,
                        java.security.AlgorithmParameters params,
                        java.security.SecureRandom random)
                          throws java.security.InvalidKeyException,
                                 java.security.InvalidAlgorithmParameterException

      Specified by:
        `engineInit` in class `javax.crypto.CipherSpi`
      Throws:
        `java.security.InvalidKeyException`
        `java.security.InvalidAlgorithmParameterException`

    - #### engineInit

          public void engineInit(int opmode,
                        java.security.Key key,
                        java.security.spec.AlgorithmParameterSpec engineSpec,
                        java.security.SecureRandom random)
                          throws java.security.InvalidAlgorithmParameterException,
                                 java.security.InvalidKeyException

      Specified by:
        `engineInit` in class `javax.crypto.CipherSpi`
      Throws:
        `java.security.InvalidAlgorithmParameterException`
        `java.security.InvalidKeyException`

    - #### engineInit

          public void engineInit(int opmode,
                        java.security.Key key,
                        java.security.SecureRandom random)
                          throws java.security.InvalidKeyException

      Specified by:
        `engineInit` in class `javax.crypto.CipherSpi`
      Throws:
        `java.security.InvalidKeyException`

    - #### engineUpdate

          public byte[] engineUpdate(byte[] input,
                            int inputOffset,
                            int inputLen)

      Specified by:
        `engineUpdate` in class `javax.crypto.CipherSpi`

    - #### engineUpdate

          public int engineUpdate(byte[] input,
                         int inputOffset,
                         int inputLen,
                         byte[] output,
                         int outputOffset)

      Specified by:
        `engineUpdate` in class `javax.crypto.CipherSpi`

    - #### engineDoFinal

          public byte[] engineDoFinal(byte[] input,
                             int inputOffset,
                             int inputLen)
                               throws javax.crypto.IllegalBlockSizeException,
                                      javax.crypto.BadPaddingException

      Specified by:
        `engineDoFinal` in class `javax.crypto.CipherSpi`
      Throws:
        `javax.crypto.IllegalBlockSizeException`
        `javax.crypto.BadPaddingException`

    - #### engineDoFinal

          public int engineDoFinal(byte[] input,
                          int inputOffset,
                          int inputLength,
                          byte[] output,
                          int outputOffset)
                            throws javax.crypto.ShortBufferException,
                                   javax.crypto.IllegalBlockSizeException,
                                   javax.crypto.BadPaddingException

      Specified by:
        `engineDoFinal` in class `javax.crypto.CipherSpi`
      Throws:
        `javax.crypto.ShortBufferException`
        `javax.crypto.IllegalBlockSizeException`
        `javax.crypto.BadPaddingException`