Open In App

Java Signature getInstance() method with Examples

Last Updated : 12 May, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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:  

Java




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


Output: 

Status : Signature object: SHA1WithRSA

 

Example 2: To show NoSuchAlgorithmException 

Java




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


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: 

Java




// 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 using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // creating Provider object
            Provider pd = sr.getProvider();
 
            // getting algorithm name
            // by using     getAlgorithm() method
            String algo = sr.getAlgorithm();
 
            // creating the object of Signature and getting instance
            // By using 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);
        }
    }
}


Output: 

Status : Signature object: SHA1WithRSA

 

Example 2: To show NoSuchAlgorithmException

Java




// 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 using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // creating Provider object
            Provider pd = sr.getProvider();
 
            // getting algorithm name
            // by using     getAlgorithm() method
            String algo = sr.getAlgorithm();
 
            // creating the object of Signature and getting instance
            // By using 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);
        }
    }
}


Output: 

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

 

Example 3: To show IllegalArgumentException 

Java




// 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 using getInstance() method
            Signature sr = Signature.getInstance("SHA1WithRSA");
 
            // creating Provider object
            Provider pd = null;
 
            // getting algorithm name
            // by using     getAlgorithm() method
            String algo = sr.getAlgorithm();
 
            // creating the object of Signature and getting instance
            // By using 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);
        }
    }
}


Output: 

Exception thrown : java.lang.IllegalArgumentException: missing provider

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads