All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.crypto.fips.DRBG Maven / Gradle / Ivy

Go to download

The FIPS 140-2 Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms certified to FIPS 140-2 level 1. This jar contains the debug version JCE provider and low-level API for the BC-FJA version 1.0.2.3, FIPS Certificate #3514. Please note the debug jar is not certified.

There is a newer version: 2.0.0
Show newest version
/***************************************************************/
/******    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();

    /**
     * Return the personalization string used to create the DRBG.
     *
     * @return the the personalization string used to create the DRBG.
     */
    byte[] getPersonalizationString();

    /**
     * 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);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy