Overview | Package | Class | Tree | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## gnu.crypto.prng
Class BasePRNG

    java.lang.Object
      |
      +--gnu.crypto.prng.BasePRNG

All Implemented Interfaces:
  java.lang.Cloneable, IRandom

Direct Known Subclasses:
  ICMGenerator, MDGenerator, UMacGenerator

public abstract class BasePRNG
extends java.lang.Object
implements IRandom

An abstract class to facilitate implementing PRNG algorithms.

Version:
  $Revision: 1.6 $

Field Summary
`protected byte[]` | `buffer` A temporary buffer to serve random bytes.
`protected boolean` | `initialised` Indicate if this instance has already been initialised or not.
`protected java.lang.String` | `name` The canonical name prefix of the PRNG algorithm.
`protected int` | `ndx` The index into buffer of where the next byte will come from.

Constructor Summary
`protected` | `BasePRNG(java.lang.String name)` Trivial constructor for use by concrete subclasses.

Method Summary
`abstract java.lang.Object` | `clone()` Returns a clone copy of this instance.
`abstract void` | `fillBlock()`
`void` | `init(java.util.Map attributes)` Initialises the padding scheme with a designated block size, eventually seeding it in preparation for operations.
`boolean` | `isInitialised()`
`java.lang.String` | `name()` Returns the canonical name of this instance.
`byte` | `nextByte()` Returns the next 8 bits of random data generated from this instance.
`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.
`abstract void` | `setup(java.util.Map attributes)`

Methods inherited from class java.lang.Object
`, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### name

    protected java.lang.String name

  The canonical name prefix of the PRNG algorithm.

### initialised

    protected boolean initialised

  Indicate if this instance has already been initialised or not.

### buffer

    protected byte[] buffer

  A temporary buffer to serve random bytes.

### ndx

    protected int ndx

  The index into buffer of where the next byte will come from.

Constructor Detail

### BasePRNG

    protected BasePRNG(java.lang.String name)

  Trivial constructor for use by concrete subclasses.

  Parameters:
    `name` - the canonical name of this instance.

Method Detail

### name

    public java.lang.String name()

  Description copied from interface: `IRandom`

  Returns the canonical name of this instance.

  Specified by:
    `name` in interface `IRandom`
  Following copied from interface: `gnu.crypto.prng.IRandom`
  Returns:
    the canonical name of this instance.

### init

    public void init(java.util.Map attributes)

  Description copied from interface: `IRandom`

  Initialises the padding scheme with a designated block size, eventually seeding it in preparation for operations.

  Specified by:
    `init` in interface `IRandom`
  Following copied from interface: `gnu.crypto.prng.IRandom`
  Parameters:
    `attributes` - a set of name-value pairs that describe the desired future instance behaviour.
  Throws:
    `java.lang.IllegalArgumentException` - if at least one of the defined name/ value pairs contains invalid data.

### nextByte

    public byte nextByte()
                  throws java.lang.IllegalStateException,
                         LimitReachedException

  Description copied from interface: `IRandom`

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

  Specified by:
    `nextByte` in interface `IRandom`
  Following copied from interface: `gnu.crypto.prng.IRandom`
  Returns:
    the next 8 bits of random data generated from this instance.
  Throws:
    `java.lang.IllegalStateException` - if the instance is not yet initialised.
    `LimitReachedException` - if this instance has reached its theoretical limit for generating non-repetitive pseudo-random data.

### nextBytes

    public void nextBytes(byte[] out,
                          int offset,
                          int length)
                   throws java.lang.IllegalStateException,
                          LimitReachedException

  Description copied from interface: `IRandom`

  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 `IRandom`
  Following copied from interface: `gnu.crypto.prng.IRandom`
  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:
    `java.lang.IllegalStateException` - if the instance is not yet initialised.
    `LimitReachedException` - if this instance has reached its theoretical limit for generating non-repetitive pseudo-random data.

### isInitialised

    public boolean isInitialised()

### clone

    public abstract java.lang.Object clone()

  Description copied from interface: `IRandom`

  Returns a clone copy of this instance.

  Specified by:
    `clone` in interface `IRandom`
  Overrides:
    `clone` in class `java.lang.Object`
  Following copied from interface: `gnu.crypto.prng.IRandom`
  Returns:
    a clone copy of this instance.

### setup

    public abstract void setup(java.util.Map attributes)

### fillBlock

    public abstract void fillBlock()
                            throws LimitReachedException

Overview | Package | Class | Tree | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright ©2001-2002 Free Software Foundation, Inc.. All Rights Reserved.