- /*
- * @(#)KeyPairGeneratorSpi.java 1.11 00/02/02
- *
- * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the proprietary information of Sun Microsystems, Inc.
- * Use is subject to license terms.
- *
- */
-
- package java.security;
-
- import java.security.spec.AlgorithmParameterSpec;
-
- /**
- * <p> This class defines the <i>Service Provider Interface</i> (<b>SPI</b>)
- * for the <code>KeyPairGenerator</code> class, which is used to generate
- * pairs of public and private keys.
- *
- * <p> All the abstract methods in this class must be implemented by each
- * cryptographic service provider who wishes to supply the implementation
- * of a key pair generator for a particular algorithm.
- *
- * <p> In case the client does not explicitly initialize the KeyPairGenerator
- * (via a call to an <code>initialize</code> method), each provider must
- * supply (and document) a default initialization.
- * For example, the <i>Sun</i> provider uses a default modulus size (keysize)
- * of 1024 bits.
- *
- * @author Benjamin Renaud
- *
- * @version 1.11, 02/02/00
- *
- * @see KeyPairGenerator
- * @see java.security.spec.AlgorithmParameterSpec
- */
-
- public abstract class KeyPairGeneratorSpi {
-
- /**
- * Initializes the key pair generator for a certain keysize, using
- * the default parameter set.
- *
- * @param keysize the keysize. This is an
- * algorithm-specific metric, such as modulus length, specified in
- * number of bits.
- *
- * @param random the source of randomness for this generator.
- *
- * @exception InvalidParameterException if the <code>keysize</code> is not
- * supported by this KeyPairGeneratorSpi object.
- */
- public abstract void initialize(int keysize, SecureRandom random);
-
- /**
- * Initializes the key pair generator using the specified parameter
- * set and user-provided source of randomness.
- *
- * <p>This concrete method has been added to this previously-defined
- * abstract class. (For backwards compatibility, it cannot be abstract.)
- * It may be overridden by a provider to initialize the key pair
- * generator. Such an override
- * is expected to throw an InvalidAlgorithmParameterException if
- * a parameter is inappropriate for this key pair generator.
- * If this method is not overridden, it always throws an
- * UnsupportedOperationException.
- *
- * @param params the parameter set used to generate the keys.
- *
- * @param random the source of randomness for this generator.
- *
- * @exception InvalidAlgorithmParameterException if the given parameters
- * are inappropriate for this key pair generator.
- *
- * @since 1.2
- */
- public void initialize(AlgorithmParameterSpec params,
- SecureRandom random)
- throws InvalidAlgorithmParameterException {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Generates a key pair. Unless an initialization method is called
- * using a KeyPairGenerator interface, algorithm-specific defaults
- * will be used. This will generate a new key pair every time it
- * is called.
- *
- * @return the newly generated <tt>KeyPair</tt>
- */
- public abstract KeyPair generateKeyPair();
- }