## Uses of Class
java.security.SecureRandom

Packages that use SecureRandom
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
`protected SecureRandom` SignatureSpi.`appRandom` Application-specified source of randomness.

Methods in java.security that return SecureRandom
`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
`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` KeyPairGenerator.`initialize(AlgorithmParameterSpec params, SecureRandom random)` Initializes the key pair generator with the given parameter set 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(int keysize, SecureRandom random)` Initializes the key pair generator for a certain keysize with the given source of randomness (and a default parameter set).
`abstract void` KeyPairGeneratorSpi.`initialize(int keysize, SecureRandom random)` Initializes the key pair generator for a certain keysize, using the 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
`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
`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
`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.