org.gudy.bouncycastle.crypto.generators
Class BaseKDFBytesGenerator

java.lang.Object
  extended by org.gudy.bouncycastle.crypto.generators.BaseKDFBytesGenerator
All Implemented Interfaces:
DerivationFunction
Direct Known Subclasses:
KDF2BytesGenerator

public class BaseKDFBytesGenerator
extends 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
protected BaseKDFBytesGenerator(int counterStart, Digest digest)
          Construct a KDF Parameters generator.
 
Method Summary
 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,
                         IllegalArgumentException
fill len bytes of the output buffer with bytes generated from the derivation function.

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