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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
        }
    }
}

chevron_right


Output:

Algorithm : DSA

Example 2: To show NoSuchAlgorithmException

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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);
        }
    }
}

chevron_right


Output:

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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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 usng 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);
            }
        }
    }

    chevron_right

    
    

    Output:

    Keypair : java.security.KeyPair@12a3a380
    

    Example 2: To show NoSuchAlgorithmException

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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 usng 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);
            }
        }
    }

    chevron_right

    
    

    Output:

    Exception thrown : java.security.NoSuchAlgorithmException: 
    no such algorithm: TAJMAHAL for provider SUN
    

    Example 3: To show IllegalArgumentException

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // 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 usng 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);
            }
        }
    }

    chevron_right

    
    

    Output:

    Trying to assign null as a provider
    Exception thrown : java.lang.IllegalArgumentException:
     missing provider
    


    My Personal Notes arrow_drop_up

    Check out this Author's contributed articles.

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.