Java Signature getInstance() method with Examples

getInstance(String algorithm)

The getInstance() method of java.security.Provider class is used to return a Signature object that implements the specified signature algorithm.

This method traverses the list of registered security Providers, starting with the most preferred Provider. A new Signature object encapsulating the SignatureSpi implementation from the first Provider that supports the specified algorithm is returned.

Syntax:



public static Signature getInstance(String algorithm)
    throws NoSuchAlgorithmException

Parameters: This method takes the standard name of Algorithm as a parameter.

Return Value: This method returns the new Signature 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 Signature and getting instance
            // By usng getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
  
            // getting the status of signature object
            String str = sr.toString();
  
            // printing the status
            System.out.println("Status : " + str);
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}

chevron_right


Output:

Status : Signature object: SHA1WithRSA

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 Signature and getting instance
            // By usng getInstance() method
            System.out.println("Trying to get the instance of unknown instance");
            Signature sr = Signature.getInstance("TAJMAHAL");
  
            // getting the status of signature object
            String str = sr.toString();
  
            // printing the status
            System.out.println("Status : " + str);
        }
  
        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 instance
Exception thrown : java.security.NoSuchAlgorithmException: TAJMAHAL Signature not available

Signature getInstance(String algorithm, Provider provider)

The getInstance() method of java.security.Provider class is used to Returns a Signature object that implements the specified signature algorithm.

A new Signature object encapsulating the SignatureSpi 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 Signature 
    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 Signature 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:

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 Signature and getting instance
            // By usng getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
  
            // creating Provider object
            Provider pd = sr.getProvider();
  
            // getting algorithm name
            // by using     getAlgorithm() mathod
            String algo = sr.getAlgorithm();
  
            // creating the object of Signature and getting instance
            // By usng getInstance() method
            Signature sr1 = Signature.getInstance(algo, pd);
  
            // getting the status of signature object
            String str = sr1.toString();
  
            // printing the status
            System.out.println("Status : " + str);
        }
  
        catch (NoSuchAlgorithmException e) {
  
            System.out.println("Exception thrown : " + e);
        }
        catch (ProviderException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}

chevron_right


Output:

Status : Signature object: SHA1WithRSA

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 Signature and getting instance
            // By usng getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
  
            // creating Provider object
            Provider pd = sr.getProvider();
  
            // getting algorithm name
            // by using     getAlgorithm() mathod
            String algo = sr.getAlgorithm();
  
            // creating the object of Signature and getting instance
            // By usng getInstance() method
            Signature sr1 = Signature.getInstance("TAJMAHAL", pd);
  
            // getting the status of signature object
            String str = sr1.toString();
  
            // printing the status
            System.out.println("Status : " + str);
        }
  
        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 SunRsaSign

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 Signature and getting instance
            // By usng getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
  
            // creating Provider object
            Provider pd = null;
  
            // getting algorithm name
            // by using     getAlgorithm() mathod
            String algo = sr.getAlgorithm();
  
            // creating the object of Signature and getting instance
            // By usng getInstance() method
            Signature sr1 = Signature.getInstance(algo, pd);
  
            // getting the status of signature object
            String str = sr1.toString();
  
            // printing the status
            System.out.println("Status : " + str);
        }
  
        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:

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.