Class HashSP800DRBG

    • Constructor Detail

      • HashSP800DRBG

        public HashSP800DRBG​(Digest digest,
                             int securityStrength,
                             EntropySource entropySource,
                             byte[] personalizationString,
                             byte[] nonce)
        Construct a SP800-90A Hash DRBG.

        Minimum entropy requirement is the security strength requested.

        Parameters:
        digest - source digest to use for DRB stream.
        securityStrength - security strength required (in bits)
        entropySource - source of entropy to use for seeding/reseeding.
        personalizationString - personalization string to distinguish this DRBG (may be null).
        nonce - nonce to further distinguish this DRBG (may be null).
    • Method Detail

      • getBlockSize

        public int getBlockSize()
        Return the block size (in bits) of the DRBG.
        Specified by:
        getBlockSize in interface SP80090DRBG
        Returns:
        the number of bits produced on each internal round of the DRBG.
      • generate

        public int generate​(byte[] output,
                            byte[] additionalInput,
                            boolean predictionResistant)
        Populate a passed in array with random data.
        Specified by:
        generate in interface SP80090DRBG
        Parameters:
        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.
      • reseed

        public void reseed​(byte[] additionalInput)
        Reseed the DRBG.
        Specified by:
        reseed in interface SP80090DRBG
        Parameters:
        additionalInput - additional input to be added to the DRBG in this step.