Android APIs
public abstract class

Signature

extends SignatureSpi
java.lang.Object
   ↳ java.security.SignatureSpi
     ↳ java.security.Signature

Class Overview

Signature is an engine class which is capable of creating and verifying digital signatures, using different algorithms that have been registered with the Security class.

See Also

Summary

Constants
int SIGN Constant that indicates that this Signature instance has been initialized for signing.
int UNINITIALIZED Constant that indicates that this Signature instance has not yet been initialized.
int VERIFY Constant that indicates that this Signature instance has been initialized for verification.
Fields
protected int state Represents the current state of this Signature.
[Expand]
Inherited Fields
From class java.security.SignatureSpi
Protected Constructors
Signature(String algorithm)
Constructs a new instance of Signature with the name of the algorithm to use.
Public Methods
Object clone()
Creates and returns a copy of this Object.
final String getAlgorithm()
Returns the name of the algorithm of this Signature.
static Signature getInstance(String algorithm, String provider)
Returns a new instance of Signature that utilizes the specified algorithm from the specified provider.
static Signature getInstance(String algorithm, Provider provider)
Returns a new instance of Signature that utilizes the specified algorithm from the specified provider.
static Signature getInstance(String algorithm)
Returns a new instance of Signature that utilizes the specified algorithm.
final Object getParameter(String param)
This method was deprecated in API level 1. There is no generally accepted parameter naming convention.
final AlgorithmParameters getParameters()
Returns the AlgorithmParameters of this Signature instance.
final Provider getProvider()
Returns the provider associated with this Signature.
final void initSign(PrivateKey privateKey)
Initializes this Signature instance for signing, using the private key of the identity whose signature is going to be generated.
final void initSign(PrivateKey privateKey, SecureRandom random)
Initializes this Signature instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
final void initVerify(Certificate certificate)
Initializes this Signature instance for signature verification, using the certificate of the identity whose signature is going to be verified.
final void initVerify(PublicKey publicKey)
Initializes this Signature instance for signature verification, using the public key of the identity whose signature is going to be verified.
final void setParameter(String param, Object value)
This method was deprecated in API level 1. Use setParameter(AlgorithmParameterSpec) instead.
final void setParameter(AlgorithmParameterSpec params)
Sets the specified AlgorithmParameterSpec.
final byte[] sign()
Generates and returns the signature of all updated data.
final int sign(byte[] outbuf, int offset, int len)
Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
String toString()
Returns a string containing a concise, human-readable description of this Signature including its algorithm and its state.
final void update(ByteBuffer data)
Updates the data to be verified or to be signed, using the specified ByteBuffer.
final void update(byte[] data, int off, int len)
Updates the data to be verified or to be signed, using the given byte[], starting form the specified index for the specified length.
final void update(byte b)
Updates the data to be verified or to be signed, using the specified byte.
final void update(byte[] data)
Updates the data to be verified or to be signed, using the specified byte[].
final boolean verify(byte[] signature)
Indicates whether the given signature can be verified using the public key or a certificate of the signer.
final boolean verify(byte[] signature, int offset, int length)
Indicates whether the given signature starting at index offset with length bytes can be verified using the public key or a certificate of the signer.
[Expand]
Inherited Methods
From class java.security.SignatureSpi
From class java.lang.Object

Constants

protected static final int SIGN

Added in API level 1

Constant that indicates that this Signature instance has been initialized for signing.

Constant Value: 2 (0x00000002)

protected static final int UNINITIALIZED

Added in API level 1

Constant that indicates that this Signature instance has not yet been initialized.

Constant Value: 0 (0x00000000)

protected static final int VERIFY

Added in API level 1

Constant that indicates that this Signature instance has been initialized for verification.

Constant Value: 3 (0x00000003)

Fields

protected int state

Added in API level 1

Represents the current state of this Signature. The three possible states are UNINITIALIZED, SIGN or VERIFY.

Protected Constructors

protected Signature (String algorithm)

Added in API level 1

Constructs a new instance of Signature with the name of the algorithm to use.

Parameters
algorithm the name of algorithm to use.

Public Methods

public Object clone ()

Added in API level 1

Creates and returns a copy of this Object. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should call super.clone() to create the new instance and then create deep copies of the nested, mutable objects.

Returns
  • a copy of this object.

public final String getAlgorithm ()

Added in API level 1

Returns the name of the algorithm of this Signature.

Returns
  • the name of the algorithm of this Signature.

public static Signature getInstance (String algorithm, String provider)

Added in API level 1

Returns a new instance of Signature that utilizes the specified algorithm from the specified provider.

Parameters
algorithm the name of the algorithm to use.
provider the name of the provider.
Returns
  • a new instance of Signature that utilizes the specified algorithm from the specified provider.
Throws
NoSuchAlgorithmException if the specified algorithm is not available.
NoSuchProviderException if the specified provider is not available.
NullPointerException if algorithm is null.
IllegalArgumentException if provider == null || provider.isEmpty()

public static Signature getInstance (String algorithm, Provider provider)

Added in API level 1

Returns a new instance of Signature that utilizes the specified algorithm from the specified provider.

Parameters
algorithm the name of the algorithm to use.
provider the security provider.
Returns
  • a new instance of Signature that utilizes the specified algorithm from the specified provider.
Throws
NoSuchAlgorithmException if the specified algorithm is not available.
NullPointerException if algorithm is null.
IllegalArgumentException if provider == null

public static Signature getInstance (String algorithm)

Added in API level 1

Returns a new instance of Signature that utilizes the specified algorithm.

Parameters
algorithm the name of the algorithm to use.
Returns
  • a new instance of Signature that utilizes the specified algorithm.
Throws
NoSuchAlgorithmException if the specified algorithm is not available.
NullPointerException if algorithm is null.

public final Object getParameter (String param)

Added in API level 1

This method was deprecated in API level 1.
There is no generally accepted parameter naming convention.

Returns the value of the parameter with the specified name.

Parameters
param the name of the requested parameter value
Returns
  • the value of the parameter with the specified name, maybe null.
Throws
InvalidParameterException if param is not a valid parameter for this Signature or an other error occurs.

public final AlgorithmParameters getParameters ()

Added in API level 1

Returns the AlgorithmParameters of this Signature instance.

Returns
  • the AlgorithmParameters of this Signature instance, maybe null.

public final Provider getProvider ()

Added in API level 1

Returns the provider associated with this Signature.

Returns
  • the provider associated with this Signature.

public final void initSign (PrivateKey privateKey)

Added in API level 1

Initializes this Signature instance for signing, using the private key of the identity whose signature is going to be generated.

Parameters
privateKey the private key.
Throws
InvalidKeyException if privateKey is not valid.

public final void initSign (PrivateKey privateKey, SecureRandom random)

Added in API level 1

Initializes this Signature instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.

Parameters
privateKey the private key.
random the SecureRandom to use.
Throws
InvalidKeyException if privateKey is not valid.

public final void initVerify (Certificate certificate)

Added in API level 1

Initializes this Signature instance for signature verification, using the certificate of the identity whose signature is going to be verified.

If the given certificate is an instance of X509Certificate and has a key usage parameter that indicates, that this certificate is not to be used for signing, an InvalidKeyException is thrown.

Parameters
certificate the certificate used to verify a signature.
Throws
InvalidKeyException if the publicKey in the certificate is not valid or not to be used for signing.

public final void initVerify (PublicKey publicKey)

Added in API level 1

Initializes this Signature instance for signature verification, using the public key of the identity whose signature is going to be verified.

Parameters
publicKey the public key.
Throws
InvalidKeyException if publicKey is not valid.

public final void setParameter (String param, Object value)

Added in API level 1

This method was deprecated in API level 1.
Use setParameter(AlgorithmParameterSpec) instead.

Sets the specified parameter to the given value.

Parameters
param the name of the parameter.
value the parameter value.
Throws
InvalidParameterException if the parameter is invalid, already set or is not allowed to be changed.

public final void setParameter (AlgorithmParameterSpec params)

Added in API level 1

Sets the specified AlgorithmParameterSpec.

Parameters
params the parameter to set.
Throws
InvalidAlgorithmParameterException if the parameter is invalid, already set or is not allowed to be changed.

public final byte[] sign ()

Added in API level 1

Generates and returns the signature of all updated data.

This Signature instance is reset to the state of its last initialization for signing and thus can be used for another signature from the same identity.

Returns
  • the signature of all updated data.
Throws
SignatureException if this Signature instance is not initialized properly.

public final int sign (byte[] outbuf, int offset, int len)

Added in API level 1

Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.

This Signature instance is reset to the state of its last initialization for signing and thus can be used for another signature from the same identity.

Parameters
outbuf the buffer to store the signature.
offset the index of the first byte in outbuf to store.
len the number of bytes allocated for the signature.
Returns
  • the number of bytes stored in outbuf.
Throws
SignatureException if this Signature instance is not initialized properly.
IllegalArgumentException if offset or len are not valid in respect to outbuf.

public String toString ()

Added in API level 1

Returns a string containing a concise, human-readable description of this Signature including its algorithm and its state.

Returns
  • a printable representation for this Signature.

public final void update (ByteBuffer data)

Added in API level 1

Updates the data to be verified or to be signed, using the specified ByteBuffer.

Parameters
data the ByteBuffer to update with.
Throws
SignatureException if this Signature instance is not initialized properly.

public final void update (byte[] data, int off, int len)

Added in API level 1

Updates the data to be verified or to be signed, using the given byte[], starting form the specified index for the specified length.

Parameters
data the byte array to update with.
off the start index in data of the data.
len the number of bytes to use.
Throws
SignatureException if this Signature instance is not initialized properly.

public final void update (byte b)

Added in API level 1

Updates the data to be verified or to be signed, using the specified byte.

Parameters
b the byte to update with.
Throws
SignatureException if this Signature instance is not initialized properly.

public final void update (byte[] data)

Added in API level 1

Updates the data to be verified or to be signed, using the specified byte[].

Parameters
data the byte array to update with.
Throws
SignatureException if this Signature instance is not initialized properly.

public final boolean verify (byte[] signature)

Added in API level 1

Indicates whether the given signature can be verified using the public key or a certificate of the signer.

This Signature instance is reset to the state of its last initialization for verifying and thus can be used to verify another signature of the same signer.

Parameters
signature the signature to verify.
Returns
  • true if the signature was verified, false otherwise.
Throws
SignatureException if this Signature instance is not initialized properly.

public final boolean verify (byte[] signature, int offset, int length)

Added in API level 1

Indicates whether the given signature starting at index offset with length bytes can be verified using the public key or a certificate of the signer.

This Signature instance is reset to the state of its last initialization for verifying and thus can be used to verify another signature of the same signer.

Parameters
signature the byte[] containing the signature to verify.
offset the start index in signature of the signature.
length the number of bytes allocated for the signature.
Returns
  • true if the signature was verified, false otherwise.
Throws
SignatureException if this Signature instance is not initialized properly.
IllegalArgumentException if offset or length are not valid in respect to signature.