AlgorithmParameterGeneratorSpi (Java Platform SE 8 )
Keywords: java.security.AlgorithmParameterGeneratorSpi class
Date: 2026-04-17

compact1, compact2, compact3
java.security

## Class AlgorithmParameterGeneratorSpi

- java.lang.Object
- - java.security.AlgorithmParameterGeneratorSpi

-     public abstract class AlgorithmParameterGeneratorSpi
      extends Object

  This class defines the Service Provider Interface (SPI) for the `AlgorithmParameterGenerator` class, which is used to generate a set of parameters to be used with a certain algorithm.

  All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a parameter generator for a particular algorithm.

  In case the client does not explicitly initialize the AlgorithmParameterGenerator (via a call to an `engineInit` method), each provider must supply (and document) a default initialization. For example, the Sun provider uses a default modulus prime size of 1024 bits for the generation of DSA parameters.

  Since:
    1.2
  See Also:
    `AlgorithmParameterGenerator`, `AlgorithmParameters`, `AlgorithmParameterSpec`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AlgorithmParameterGeneratorSpi()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract AlgorithmParameters` | `engineGenerateParameters()` Generates the parameters.
    `protected abstract void` | `engineInit(AlgorithmParameterSpec genParamSpec, SecureRandom random)` Initializes this parameter generator with a set of algorithm-specific parameter generation values.
    `protected abstract void` | `engineInit(int size, SecureRandom random)` Initializes this parameter generator for a certain size and source of randomness.

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

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

- - ### Constructor Detail

    - #### AlgorithmParameterGeneratorSpi

          public AlgorithmParameterGeneratorSpi()

  - ### Method Detail

    - #### engineInit

          protected abstract void engineInit(int size,
                                             SecureRandom random)

      Initializes this parameter generator for a certain size and source of randomness.
      Parameters:
        `size` - the size (number of bits).
        `random` - the source of randomness.

    - #### engineInit

          protected abstract void engineInit(AlgorithmParameterSpec genParamSpec,
                                             SecureRandom random)
                                      throws InvalidAlgorithmParameterException

      Initializes this parameter generator with a set of algorithm-specific parameter generation values.
      Parameters:
        `genParamSpec` - the set of algorithm-specific parameter generation values.
        `random` - the source of randomness.
      Throws:
        `InvalidAlgorithmParameterException` - if the given parameter generation values are inappropriate for this parameter generator.

    - #### engineGenerateParameters

          protected abstract AlgorithmParameters engineGenerateParameters()

      Generates the parameters.
      Returns:
        the new AlgorithmParameters object.

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, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.