package org.bouncycastle.crypto.prng.drbg;

Interface to SP800-90A deterministic random bit generators.
/** * Interface to SP800-90A deterministic random bit generators. */
public interface SP80090DRBG {
Return the block size of the DRBG.
Returns:the block size (in bits) produced by each round of the DRBG.
/** * Return the block size of the DRBG. * * @return the block size (in bits) produced by each round of the DRBG. */
int getBlockSize();
Populate a passed in array with random data.
Params:
  • output – output array for generated bits.
  • additionalInput – additional input to be added to the DRBG in this step.
  • predictionResistant – true if a reseed should be forced, false otherwise.
Returns:number of bits generated, -1 if a reseed required.
/** * Populate a passed in array with random data. * * @param output output array for generated bits. * @param additionalInput additional input to be added to the DRBG in this step. * @param predictionResistant true if a reseed should be forced, false otherwise. * * @return number of bits generated, -1 if a reseed required. */
int generate(byte[] output, byte[] additionalInput, boolean predictionResistant);
Reseed the DRBG.
Params:
  • additionalInput – additional input to be added to the DRBG in this step.
/** * Reseed the DRBG. * * @param additionalInput additional input to be added to the DRBG in this step. */
void reseed(byte[] additionalInput); }