package org.bouncycastle.crypto.prng.drbg; /** * Interface to SP800-90A deterministic random bit generators. */ public interface SP80090DRBG { /** * 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. * * @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. * * @param additionalInput additional input to be added to the DRBG in this step. */ void reseed(byte[] additionalInput); }