org.bouncycastle.crypto.generators

## Class BaseKDFBytesGenerator

- java.lang.Object
- - org.bouncycastle.crypto.generators.BaseKDFBytesGenerator

All Implemented Interfaces:
  DerivationFunction

Direct Known Subclasses:
  KDF1BytesGenerator, KDF2BytesGenerator

    public class BaseKDFBytesGenerator
    extends java.lang.Object
    implements DerivationFunction

Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
This implementation is based on ISO 18033/P1363a.

### Constructor Summary

Constructors
`protected` `BaseKDFBytesGenerator(int counterStart, Digest digest)` Construct a KDF Parameters generator.

### Method Summary

Methods
`int` `generateBytes(byte[] out, int outOff, int len)` fill len bytes of the output buffer with bytes generated from the derivation function.
`Digest` `getDigest()` return the underlying digest.
`void` `init(DerivationParameters param)`

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

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

### Constructor Detail

#### BaseKDFBytesGenerator

    protected BaseKDFBytesGenerator(int counterStart,
                         Digest digest)

Construct a KDF Parameters generator.

Parameters:
  `counterStart` - value of counter.
  `digest` - the digest to be used as the source of derived keys.

### Method Detail

#### init

    public void init(DerivationParameters param)

Specified by:
  `init` in interface `DerivationFunction`

#### getDigest

    public Digest getDigest()

return the underlying digest.

Specified by:
  `getDigest` in interface `DerivationFunction`

#### generateBytes

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

fill len bytes of the output buffer with bytes generated from the derivation function.

Specified by:
  `generateBytes` in interface `DerivationFunction`
Throws:
  `java.lang.IllegalArgumentException` - if the size of the request will cause an overflow.
  `DataLengthException` - if the out buffer is too small.