Java Signature getInstance() method with Examples

12 May, 2021
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);        }    }}
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);        }    }}
Trying to get the instance of unknown instance
Exception thrown : java.security.NoSuchAlgorithmException: TAJMAHAL Signature not available
 
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);        }    }}
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);        }    }}
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);        }    }}
Exception thrown : java.lang.IllegalArgumentException: missing provider
 
Akanksha_Rai
anikakapoor
Java-Functions
Java-security package
Java-Signature
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.