java.lang.Object
gnu.crypto.prng.DevRandom
All Implemented Interfaces:
IRandomStandalone, Cloneable

class DevRandomextends Object implements IRandomStandalone
Simple /dev/random reader.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String
    Path of the device the entropy is read from.
    private final File
    The device file, opened for each read.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a reader for /dev/random.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addRandomByte(byte b)
    Supplement, or possibly replace, the random state of this PRNG with a random byte.
    void
    addRandomBytes(byte[] in)
    Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.
    void
    addRandomBytes(byte[] in, int offset, int length)
    Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.
    Returns a clone copy of this instance.
    void
    init(Map<String,byte[]> attributes)
    Initialises the pseudo-random number generator scheme with the appropriate attributes.
    static boolean
    Check if /dev/random is available.
    Returns the canonical name of this instance.
    byte
    Returns the next 8 bits of random data generated from this instance.
    void
    nextBytes(byte[] out)
    Fill the output byte array with random bytes.
    void
    nextBytes(byte[] out, int offset, int length)
    Fills the designated byte array, starting from byte at index offset, for a maximum of length bytes with the output of this generator instance.

    Methods inherited from class Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • F

      private static final String F
      Path of the device the entropy is read from.
      See Also:
    • file

      private final File file
      The device file, opened for each read.
  • Constructor Details

    • DevRandom

      DevRandom()
      Creates a reader for /dev/random.
  • Method Details

    • isSupported

      public static boolean isSupported()
      Check if /dev/random is available.
      Returns:
      true if /dev/random can be read
    • name

      public String name()
      Description copied from interface: IRandomStandalone

      Returns the canonical name of this instance.

      Specified by:
      name in interface IRandomStandalone
      Returns:
      the canonical name of this instance.
    • init

      public void init(Map<String,byte[]> attributes)
      Description copied from interface: IRandomStandalone

      Initialises the pseudo-random number generator scheme with the appropriate attributes.

      Specified by:
      init in interface IRandomStandalone
      Parameters:
      attributes - a set of name-value pairs that describe the desired future instance behaviour.
    • nextByte

      public byte nextByte()
      Description copied from interface: IRandomStandalone

      Returns the next 8 bits of random data generated from this instance.

      Specified by:
      nextByte in interface IRandomStandalone
      Returns:
      the next 8 bits of random data generated from this instance.
    • nextBytes

      public void nextBytes(byte[] out) throws IllegalStateException
      Description copied from interface: IRandomStandalone
      Fill the output byte array with random bytes.
      Specified by:
      nextBytes in interface IRandomStandalone
      Parameters:
      out - the output array to fill
      Throws:
      IllegalStateException
    • nextBytes

      public void nextBytes(byte[] out, int offset, int length) throws IllegalStateException
      Description copied from interface: IRandomStandalone

      Fills the designated byte array, starting from byte at index offset, for a maximum of length bytes with the output of this generator instance.

      Specified by:
      nextBytes in interface IRandomStandalone
      Parameters:
      out - the placeholder to contain the generated random bytes.
      offset - the starting index in out to consider. This method does nothing if this parameter is not within 0 and out.length.
      length - the maximum number of required random bytes. This method does nothing if this parameter is less than 1.
      Throws:
      IllegalStateException - if the instance is not yet initialised. theoretical limit for generating non-repetitive pseudo-random data.
    • addRandomByte

      public void addRandomByte(byte b)
      Description copied from interface: IRandomStandalone

      Supplement, or possibly replace, the random state of this PRNG with a random byte.

      Implementations are not required to implement this method in any meaningful way; this may be a no-operation, and implementations may throw an UnsupportedOperationException.

      Specified by:
      addRandomByte in interface IRandomStandalone
      Parameters:
      b - The byte to add.
    • addRandomBytes

      public void addRandomBytes(byte[] in)
      Description copied from interface: IRandomStandalone

      Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.

      Implementations are not required to implement this method in any meaningful way; this may be a no-operation, and implementations may throw an UnsupportedOperationException.

      Specified by:
      addRandomBytes in interface IRandomStandalone
      Parameters:
      in - The buffer of new random bytes to add.
    • addRandomBytes

      public void addRandomBytes(byte[] in, int offset, int length)
      Description copied from interface: IRandomStandalone

      Supplement, or possibly replace, the random state of this PRNG with a sequence of new random bytes.

      Implementations are not required to implement this method in any meaningful way; this may be a no-operation, and implementations may throw an UnsupportedOperationException.

      Specified by:
      addRandomBytes in interface IRandomStandalone
      Parameters:
      in - The buffer of new random bytes to add.
      offset - The offset from whence to begin reading random bytes.
      length - The number of random bytes to add.
    • clone

      public Object clone() throws CloneNotSupportedException
      Description copied from interface: IRandomStandalone

      Returns a clone copy of this instance.

      Specified by:
      clone in interface IRandomStandalone
      Overrides:
      clone in class Object
      Returns:
      a clone copy of this instance.
      Throws:
      CloneNotSupportedException - if cloning is not supported