java.security

## Class SecureRandomSpi

- java.lang.Object
- - java.security.SecureRandomSpi

All Implemented Interfaces:
  Serializable

    public abstract class SecureRandomSpi
    extends Object
    implements Serializable

This class defines the Service Provider Interface (SPI) for the `SecureRandom` class. All the abstract methods in this class must be implemented by each service provider who wishes to supply the implementation of a cryptographically strong pseudo-random number generator.

Since:
  1.2
See Also:
  `SecureRandom`, Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`SecureRandomSpi()`

### Method Summary

Methods
`protected abstract byte[]` `engineGenerateSeed(int numBytes)` Returns the given number of seed bytes.
`protected abstract void` `engineNextBytes(byte[] bytes)` Generates a user-specified number of random bytes.
`protected abstract void` `engineSetSeed(byte[] seed)` Reseeds this random object.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SecureRandomSpi

    public SecureRandomSpi()

### Method Detail

#### engineSetSeed

    protected abstract void engineSetSeed(byte[] seed)

Reseeds this random object. The given seed supplements, rather than replaces, the existing seed. Thus, repeated calls are guaranteed never to reduce randomness.

Parameters:
  `seed` - the seed.

#### engineNextBytes

    protected abstract void engineNextBytes(byte[] bytes)

Generates a user-specified number of random bytes.

If a call to `engineSetSeed` had not occurred previously, the first call to this method forces this SecureRandom implementation to seed itself. This self-seeding will not occur if `engineSetSeed` was previously called.

Parameters:
  `bytes` - the array to be filled in with random bytes.

#### engineGenerateSeed

    protected abstract byte[] engineGenerateSeed(int numBytes)

Returns the given number of seed bytes. This call may be used to seed other random number generators.

Parameters:
  `numBytes` - the number of seed bytes to generate.
Returns:
  the seed bytes.

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.