Package org.bouncycastle.crypto

## Interface DerivationFunction

- All Known Subinterfaces:
    `DigestDerivationFunction`, `MacDerivationFunction`
  All Known Implementing Classes:
    `BaseKDFBytesGenerator`, `BrokenKDF2BytesGenerator`, `ConcatenationKDFGenerator`, `DHKEKGenerator`, `ECDHKEKGenerator`, `EthereumIESEngine.HandshakeKDFFunction`, `GSKKFDGenerator`, `HKDFBytesGenerator`, `KDF1BytesGenerator`, `KDF2BytesGenerator`, `KDFCounterBytesGenerator`, `KDFDoublePipelineIterationBytesGenerator`, `KDFFeedbackBytesGenerator`, `MGF1BytesGenerator`

      public interface DerivationFunction

  base interface for general purpose byte derivation functions.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `generateBytes​(byte[] out, int outOff, int len)` |
    `void` | `init​(DerivationParameters param)` |

- - ### Method Detail

    - #### init

          void init​(DerivationParameters param)

    - #### generateBytes

          int generateBytes​(byte[] out,
                            int outOff,
                            int len)
                     throws DataLengthException,
                            java.lang.IllegalArgumentException

      Throws:
        `DataLengthException`
        `java.lang.IllegalArgumentException`