KeyPairGenerator getInstance() method in Java with Examples
getInstance(String algorithm)
The getInstance() method of java.security.KeyPairGenerator class is used to return a KeyPairGenerator object that generates public/private key pairs for the specified algorithm.
This method traverses the list of registered security Providers, starting with the most preferred Provider. A new KeyPairGenerator object encapsulating the KeyPairGeneratorSpi implementation from the first Provider that supports the specified algorithm is returned.
Syntax:
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
Parameters: This method takes the standard name of Algorithm as a parameter.
Return Value: This method returns the new KeyPairGenerator object.
Exception: This method throws NoSuchAlgorithmException if no Provider supports a Signature implementation for the specified algorithm.
Below are the examples to illustrate the getInstance() method:
Example 1:
// Java program to demonstrate // getInstance() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) { try { // creating the object of // KeyPairGenerator // and getting instance // using getInstance() method KeyPairGenerator sr = KeyPairGenerator.getInstance( "DSA" ); // getting the Algorithm String algo = sr.getAlgorithm(); // printing the algo String System.out.println( "Algorithm : " + algo); } catch (NoSuchAlgorithmException e) { System.out.println( "Exception thrown : " + e); } catch (ProviderException e) { System.out.println( "Exception thrown : " + e); } } } |
Algorithm : DSA
Example 2: To show NoSuchAlgorithmException
// Java program to demonstrate // getInstance() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) { try { // creating the object of // KeyPairGenerator // and getting instance // using getInstance() method System.out.println( "Trying to get" + " the instance of unknown Algorithm" ); KeyPairGenerator sr = KeyPairGenerator .getInstance( "TAJMAHAL" ); // getting the Algorithm String algo = sr.getAlgorithm(); // printing the algo String System.out.println( "Algorithm : " + algo); } catch (NoSuchAlgorithmException e) { System.out.println( "Exception thrown : " + e); } catch (ProviderException e) { System.out.println( "Exception thrown : " + e); } } } |
Trying to get the instance of unknown Algorithm Exception thrown : java.security.NoSuchAlgorithmException: TAJMAHAL KeyPairGenerator not available
getInstance(String algorithm, Provider provider)
The getInstance() method of java.security.KeyPairGenerator class is used to return a KeyPairGenerator object that generates public/private key pairs for the specified algorithm.
A new KeyPairGenerator object encapsulating the KeyPairGeneratorSpi implementation from the specified Provider object is returned. Note that the specified Provider object does not have to be registered in the provider list.
Syntax:
public static KeyPairGenerator getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Parameters: This method takes the following arguments as a parameters:
- algorithm: the name of the algorithm requested.
- provider: the provider
Return Value: This method returns the new KeyPairGenerator object.
Exception: This method throws following exceptions:
- NoSuchAlgorithmException– if a SignatureSpi implementation for the specified algorithm is not available from the specified Provider object.
- IllegalArgumentException– if the provider is null.
Below are the examples to illustrate the getInstance() method:
Note: The following program will not run on online IDE.
Example 1:
// Java program to demonstrate // getInstance() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) { try { // creating the object of // KeyPairGenerator // and getting instance // using getInstance() method KeyPairGenerator sr = KeyPairGenerator.getInstance( "DSA" ); // creating Provider object Provider pd = sr.getProvider(); // getting algorithm name // by using getAlgorithm() mathod String algo = sr.getAlgorithm(); // creating the object of KeyPairGenerator and getting instance // By using getInstance() method KeyPairGenerator sr1 = KeyPairGenerator.getInstance(algo, pd); // getting the status of signature object KeyPair keypair = sr1.generateKeyPair(); // printing the keypair System.out.println( "Keypair : " + keypair); } catch (NoSuchAlgorithmException e) { System.out.println( "Exception thrown : " + e); } catch (ProviderException e) { System.out.println( "Exception thrown : " + e); } } } |
Keypair : java.security.KeyPair@12a3a380
Example 2: To show NoSuchAlgorithmException
// Java program to demonstrate // getInstance() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) { try { // creating the object of // KeyPairGenerator // and getting instance // using getInstance() method KeyPairGenerator sr = KeyPairGenerator.getInstance( "DSA" ); // creating Provider object Provider pd = sr.getProvider(); // creating the object of KeyPairGenerator and getting instance // By using getInstance() method KeyPairGenerator sr1 = KeyPairGenerator.getInstance( "TAJMAHAL" , pd); // getting the status of signature object KeyPair keypair = sr1.generateKeyPair(); // printing the keypair System.out.println( "Keypair : " + keypair); } catch (NoSuchAlgorithmException e) { System.out.println( "Exception thrown : " + e); } catch (ProviderException e) { System.out.println( "Exception thrown : " + e); } } } |
Exception thrown : java.security.NoSuchAlgorithmException: no such algorithm: TAJMAHAL for provider SUN
Example 3: To show IllegalArgumentException
// Java program to demonstrate // getInstance() method import java.security.*; import java.util.*; public class GFG1 { public static void main(String[] argv) { try { // creating the object of // KeyPairGenerator // and getting instance // using getInstance() method KeyPairGenerator sr = KeyPairGenerator .getInstance( "RSA" ); // creating Provider object System.out.println( "Trying to assign null as a provider" ); Provider pd = null ; // getting algorithm name // by using getAlgorithm() mathod String algo = sr.getAlgorithm(); // creating the object of KeyPairGenerator and getting instance // By using getInstance() method KeyPairGenerator sr1 = KeyPairGenerator .getInstance(algo, pd); // getting the status of signature object KeyPair keypair = sr1.generateKeyPair(); // printing the keypair System.out.println( "Keypair : " + keypair); } catch (NoSuchAlgorithmException e) { System.out.println( "Exception thrown : " + e); } catch (ProviderException e) { System.out.println( "Exception thrown : " + e); } catch (IllegalArgumentException e) { System.out.println( "Exception thrown : " + e); } } } |
Trying to assign null as a provider Exception thrown : java.lang.IllegalArgumentException: missing provider
Please Login to comment...