java.security

Class KeyPairGenerator

Known Direct Subclasses:
KeyPairGeneratorAdapter

public abstract class KeyPairGenerator
extends KeyPairGeneratorSpi

KeyPairGenerator is a class used to generate key-pairs for a security algorithm.

The KeyPairGenerator is created with the getInstance() Factory methods. It is used to generate a pair of public and private keys for a specific algorithm and associate this key-pair with the algorithm parameters it was initialized with.

See Also:
KeyPair, AlgorithmParameterSpec

Constructor Summary

KeyPairGenerator(String algorithm)
Constructs a new instance of KeyPairGenerator.

Method Summary

KeyPair
genKeyPair()
Generates a new "DSA" KeyPair from the "GNU" security provider.
KeyPair
generateKeyPair()
Generates a new "DSA" KeyPair from the "GNU" security provider.
String
getAlgorithm()
Returns the name of the algorithm used.
static KeyPairGenerator
getInstance(String algorithm)
Returns a new instance of KeyPairGenerator which generates key-pairs for the specified algorithm.
static KeyPairGenerator
getInstance(String algorithm, String provider)
Returns a new instance of KeyPairGenerator which generates key-pairs for the specified algorithm from a named provider.
static KeyPairGenerator
getInstance(String algorithm, Provider provider)
Returns a new instance of KeyPairGenerator which generates key-pairs for the specified algorithm from a designated Provider.
Provider
getProvider()
Returns the Provider of this instance.
void
initialize(int keysize)
Initializes this instance for the specified key size.
void
initialize(int keysize, SecureRandom random)
Initializes this instance for the specified key size and SecureRandom.
void
initialize(AlgorithmParameterSpec params)
Initializes this instance with the specified AlgorithmParameterSpec.
void
initialize(AlgorithmParameterSpec params, SecureRandom random)
Initializes this instance with the specified AlgorithmParameterSpec and SecureRandom.

Methods inherited from class java.security.KeyPairGeneratorSpi

clone, generateKeyPair, initialize, initialize

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

KeyPairGenerator

protected KeyPairGenerator(String algorithm)
Constructs a new instance of KeyPairGenerator.
Parameters:
algorithm - the algorithm to use.

Method Details

genKeyPair

public final KeyPair genKeyPair()
Generates a new "DSA" KeyPair from the "GNU" security provider.

This method generates a unique key-pair each time it is called.

Returns:
a new unique KeyPair.
Since:
1.2

generateKeyPair

public KeyPair generateKeyPair()
Generates a new "DSA" KeyPair from the "GNU" security provider.

This method generates a unique key pair each time it is called.

Overrides:
generateKeyPair in interface KeyPairGeneratorSpi
Returns:
a new unique KeyPair.
See Also:
genKeyPair()

getAlgorithm

public String getAlgorithm()
Returns the name of the algorithm used.
Returns:
the name of the algorithm used.

getInstance

public static KeyPairGenerator getInstance(String algorithm)
            throws NoSuchAlgorithmException
Returns a new instance of KeyPairGenerator which generates key-pairs for the specified algorithm.
Parameters:
algorithm - the name of the algorithm to use.
Returns:
a new instance repesenting the desired algorithm.
Throws:
NoSuchAlgorithmException - if the algorithm is not implemented by any provider.
IllegalArgumentException - if algorithm is null or is an empty string.

getInstance

public static KeyPairGenerator getInstance(String algorithm,
                                           String provider)
            throws NoSuchAlgorithmException,
                   NoSuchProviderException
Returns a new instance of KeyPairGenerator which generates key-pairs for the specified algorithm from a named provider.
Parameters:
algorithm - the name of the algorithm to use.
provider - the name of a Provider to use.
Returns:
a new instance repesenting the desired algorithm.
Throws:
NoSuchAlgorithmException - if the algorithm is not implemented by the named provider.
NoSuchProviderException - if the named provider was not found.
IllegalArgumentException - if either algorithm or provider is null or empty.

getInstance

public static KeyPairGenerator getInstance(String algorithm,
                                           Provider provider)
            throws NoSuchAlgorithmException
Returns a new instance of KeyPairGenerator which generates key-pairs for the specified algorithm from a designated Provider.
Parameters:
algorithm - the name of the algorithm to use.
provider - the Provider to use.
Returns:
a new insatnce repesenting the desired algorithm.
Throws:
NoSuchAlgorithmException - if the algorithm is not implemented by the Provider.
IllegalArgumentException - if either algorithm or provider is null, or if algorithm is an empty string.
Since:
1.4
See Also:
Provider

getProvider

public final Provider getProvider()
Returns the Provider of this instance.
Returns:
the Provider of this instance.

initialize

public void initialize(int keysize)
Initializes this instance for the specified key size. Since no source of randomness is specified, a default one will be used.
Parameters:
keysize - the size of keys to use.

initialize

public void initialize(int keysize,
                       SecureRandom random)
Initializes this instance for the specified key size and SecureRandom.
Overrides:
initialize in interface KeyPairGeneratorSpi
Parameters:
keysize - the size of keys to use.
random - the SecureRandom to use.
Since:
1.2

initialize

public void initialize(AlgorithmParameterSpec params)
            throws InvalidAlgorithmParameterException
Initializes this instance with the specified AlgorithmParameterSpec. Since no source of randomness is specified, a default one will be used.
Parameters:
params - the AlgorithmParameterSpec to use.
Throws:
InvalidAlgorithmParameterException - if the designated specifications are invalid.
Since:
1.2

initialize

public void initialize(AlgorithmParameterSpec params,
                       SecureRandom random)
            throws InvalidAlgorithmParameterException
Initializes this instance with the specified AlgorithmParameterSpec and SecureRandom.
Overrides:
initialize in interface KeyPairGeneratorSpi
Parameters:
params - the AlgorithmParameterSpec to use.
random - the SecureRandom to use.
Throws:
InvalidAlgorithmParameterException - if the designated specifications are invalid.
Since:
1.2

KeyPairGenerator.java --- Key Pair Generator Class Copyright (C) 1999, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.