org.bouncycastle.crypto.fips.DRBG Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bc-fips Show documentation
Show all versions of bc-fips Show documentation
The FIPS 140-3 Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms certified to FIPS 140-3 level 1. This jar contains JCE provider and low-level API for the BC-FJA version 2.0.0, FIPS Certificate #4743. Please see certificate for certified platform details.
/***************************************************************/
/****** DO NOT EDIT THIS CLASS bc-java SOURCE FILE ******/
/***************************************************************/
package org.bouncycastle.crypto.fips;
/**
* Interface to SP800-90A/X9.31 deterministic random bit generators.
*/
interface DRBG
{
/**
* Return the block size of the DRBG.
*
* @return the block size (in bits) produced by each round of the DRBG.
*/
int getBlockSize();
/**
* Return the security strength of the DRBG.
*
* @return the security strength (in bits) of the DRBG.
*/
int getSecurityStrength();
/**
* 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);
/**
* Return a KAT for the DRBG - used prior to initialisation.
* @param algorithm the FipsAlgorithm type
* @return a self test
*/
VariantInternalKatTest createSelfTest(FipsAlgorithm algorithm);
/**
* Return a KAT for the DRBG - used prior to reseed.
* @param algorithm the FipsAlgorithm type
* @return a self test
*/
VariantInternalKatTest createReseedSelfTest(FipsAlgorithm algorithm);
}