Uses of Class java.security.SecureRandom (Java Platform SE 8 )
Date: 2016-07-28

## Uses of Class
java.security.SecureRandom

- Packages that use SecureRandom
  Package | Description
  --- | ---
  java.security | Provides the classes and interfaces for the security framework.
  java.security.interfaces | Provides interfaces for generating RSA (Rivest, Shamir and Adleman AsymmetricCipher algorithm) keys as defined in the RSA Laboratory Technical Note PKCS#1, and DSA (Digital Signature Algorithm) keys as defined in NIST's FIPS-186.
  javax.crypto | Provides the classes and interfaces for cryptographic operations.
  javax.net.ssl | Provides classes for the secure socket package.

- - ### Uses of SecureRandom in java.security

    Fields in java.security declared as SecureRandom
    Modifier and Type | Field and Description
    --- | ---
    `protected SecureRandom` | SignatureSpi.`appRandom` Application-specified source of randomness.

    Methods in java.security that return SecureRandom
    Modifier and Type | Method and Description
    --- | ---
    `static SecureRandom` | SecureRandom.`getInstance(String algorithm)` Returns a SecureRandom object that implements the specified Random Number Generator (RNG) algorithm.
    `static SecureRandom` | SecureRandom.`getInstance(String algorithm, Provider provider)` Returns a SecureRandom object that implements the specified Random Number Generator (RNG) algorithm.
    `static SecureRandom` | SecureRandom.`getInstance(String algorithm, String provider)` Returns a SecureRandom object that implements the specified Random Number Generator (RNG) algorithm.
    `static SecureRandom` | SecureRandom.`getInstanceStrong()` Returns a `SecureRandom` object that was selected by using the algorithms/providers specified in the `securerandom.strongAlgorithms` `Security` property.

    Methods in java.security with parameters of type SecureRandom
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | AlgorithmParameterGeneratorSpi.`engineInit(AlgorithmParameterSpec genParamSpec, SecureRandom random)` Initializes this parameter generator with a set of algorithm-specific parameter generation values.
    `protected abstract void` | AlgorithmParameterGeneratorSpi.`engineInit(int size, SecureRandom random)` Initializes this parameter generator for a certain size and source of randomness.
    `protected void` | SignatureSpi.`engineInitSign(PrivateKey privateKey, SecureRandom random)` Initializes this signature object with the specified private key and source of randomness for signing operations.
    `void` | AlgorithmParameterGenerator.`init(AlgorithmParameterSpec genParamSpec, SecureRandom random)` Initializes this parameter generator with a set of algorithm-specific parameter generation values.
    `void` | AlgorithmParameterGenerator.`init(int size, SecureRandom random)` Initializes this parameter generator for a certain size and source of randomness.
    `void` | KeyPairGeneratorSpi.`initialize(AlgorithmParameterSpec params, SecureRandom random)` Initializes the key pair generator using the specified parameter set and user-provided source of randomness.
    `void` | KeyPairGenerator.`initialize(AlgorithmParameterSpec params, SecureRandom random)` Initializes the key pair generator with the given parameter set and source of randomness.
    `abstract void` | KeyPairGeneratorSpi.`initialize(int keysize, SecureRandom random)` Initializes the key pair generator for a certain keysize, using the default parameter set.
    `void` | KeyPairGenerator.`initialize(int keysize, SecureRandom random)` Initializes the key pair generator for a certain keysize with the given source of randomness (and a default parameter set).
    `void` | Signature.`initSign(PrivateKey privateKey, SecureRandom random)` Initialize this object for signing.

  - ### Uses of SecureRandom in java.security.interfaces

    Methods in java.security.interfaces with parameters of type SecureRandom
    Modifier and Type | Method and Description
    --- | ---
    `void` | DSAKeyPairGenerator.`initialize(DSAParams params, SecureRandom random)` Initializes the key pair generator using the DSA family parameters (p,q and g) and an optional SecureRandom bit source.
    `void` | DSAKeyPairGenerator.`initialize(int modlen, boolean genParams, SecureRandom random)` Initializes the key pair generator for a given modulus length (instead of parameters), and an optional SecureRandom bit source.

  - ### Uses of SecureRandom in javax.crypto

    Methods in javax.crypto with parameters of type SecureRandom
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | KeyGeneratorSpi.`engineInit(AlgorithmParameterSpec params, SecureRandom random)` Initializes the key generator with the specified parameter set and a user-provided source of randomness.
    `protected abstract void` | CipherSpi.`engineInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random)` Initializes this cipher with a key, a set of algorithm parameters, and a source of randomness.
    `protected abstract void` | CipherSpi.`engineInit(int opmode, Key key, AlgorithmParameters params, SecureRandom random)` Initializes this cipher with a key, a set of algorithm parameters, and a source of randomness.
    `protected abstract void` | CipherSpi.`engineInit(int opmode, Key key, SecureRandom random)` Initializes this cipher with a key and a source of randomness.
    `protected abstract void` | KeyGeneratorSpi.`engineInit(int keysize, SecureRandom random)` Initializes this key generator for a certain keysize, using the given source of randomness.
    `protected abstract void` | KeyAgreementSpi.`engineInit(Key key, AlgorithmParameterSpec params, SecureRandom random)` Initializes this key agreement with the given key, set of algorithm parameters, and source of randomness.
    `protected abstract void` | KeyAgreementSpi.`engineInit(Key key, SecureRandom random)` Initializes this key agreement with the given key and source of randomness.
    `protected abstract void` | KeyGeneratorSpi.`engineInit(SecureRandom random)` Initializes the key generator.
    `void` | KeyGenerator.`init(AlgorithmParameterSpec params, SecureRandom random)` Initializes this key generator with the specified parameter set and a user-provided source of randomness.
    `void` | Cipher.`init(int opmode, Certificate certificate, SecureRandom random)` Initializes this cipher with the public key from the given certificate and a source of randomness.
    `void` | Cipher.`init(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random)` Initializes this cipher with a key, a set of algorithm parameters, and a source of randomness.
    `void` | Cipher.`init(int opmode, Key key, AlgorithmParameters params, SecureRandom random)` Initializes this cipher with a key, a set of algorithm parameters, and a source of randomness.
    `void` | Cipher.`init(int opmode, Key key, SecureRandom random)` Initializes this cipher with a key and a source of randomness.
    `void` | KeyGenerator.`init(int keysize, SecureRandom random)` Initializes this key generator for a certain keysize, using a user-provided source of randomness.
    `void` | KeyAgreement.`init(Key key, AlgorithmParameterSpec params, SecureRandom random)` Initializes this key agreement with the given key, set of algorithm parameters, and source of randomness.
    `void` | KeyAgreement.`init(Key key, SecureRandom random)` Initializes this key agreement with the given key and source of randomness.
    `void` | KeyGenerator.`init(SecureRandom random)` Initializes this key generator.

  - ### Uses of SecureRandom in javax.net.ssl

    Methods in javax.net.ssl with parameters of type SecureRandom
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | SSLContextSpi.`engineInit(KeyManager[] km, TrustManager[] tm, SecureRandom sr)` Initializes this context.
    `void` | SSLContext.`init(KeyManager[] km, TrustManager[] tm, SecureRandom random)` Initializes this context.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.