public abstract class Signature extends SignatureSpi
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.SignatureSpi| Modifier and Type | Field and Description |
|---|---|
protected static int |
SIGN
Constant that indicates that this
Signature instance has been
initialized for signing. |
protected int |
state
Represents the current state of this
Signature. |
protected static int |
UNINITIALIZED
Constant that indicates that this
Signature instance has not yet
been initialized. |
protected static int |
VERIFY
Constant that indicates that this
Signature instance has been
initialized for verification. |
appRandom| Modifier | Constructor and Description |
|---|---|
protected |
Signature(String algorithm)
Constructs a new instance of
Signature with the name of
the algorithm to use. |
| Modifier and Type | Method and Description |
|---|---|
String |
getAlgorithm()
Returns the name of the algorithm of this
Signature. |
SignatureSpi |
getCurrentSpi()
Returns the
SignatureSpi backing this Signature or null if no
SignatureSpi is backing this Signature. |
static Signature |
getInstance(String algorithm)
Returns a new instance of
Signature that utilizes the specified
algorithm. |
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,
String provider)
Returns a new instance of
Signature that utilizes the specified
algorithm from the specified provider. |
Object |
getParameter(String param)
Deprecated.
There is no generally accepted parameter naming convention.
|
AlgorithmParameters |
getParameters()
Returns the
AlgorithmParameters of this Signature
instance. |
Provider |
getProvider()
Returns the provider associated with this
Signature. |
void |
initSign(PrivateKey privateKey)
Initializes this
Signature instance for signing, using the
private key of the identity whose signature is going to be generated. |
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. |
void |
initVerify(Certificate certificate)
Initializes this
Signature instance for signature verification,
using the certificate of the identity whose signature is going to be
verified. |
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. |
void |
setParameter(AlgorithmParameterSpec params)
Sets the specified
AlgorithmParameterSpec. |
void |
setParameter(String param,
Object value)
Deprecated.
Use
setParameter(AlgorithmParameterSpec) instead. |
byte[] |
sign()
Generates and returns the signature of all updated data.
|
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. |
void |
update(byte b)
Updates the data to be verified or to be signed, using the specified
byte. |
void |
update(byte[] data)
Updates the data to be verified or to be signed, using the specified
byte[]. |
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. |
void |
update(ByteBuffer data)
Updates the data to be verified or to be signed, using the specified
ByteBuffer. |
boolean |
verify(byte[] signature)
Indicates whether the given
signature can be verified using the
public key or a certificate of the signer. |
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. |
clone, engineGetParameter, engineGetParameters, engineInitSign, engineInitSign, engineInitVerify, engineSetParameter, engineSetParameter, engineSign, engineSign, engineUpdate, engineUpdate, engineUpdate, engineVerify, engineVerifyprotected static final int UNINITIALIZED
Signature instance has not yet
been initialized.protected static final int SIGN
Signature instance has been
initialized for signing.protected static final int VERIFY
Signature instance has been
initialized for verification.protected int state
Signature. The three
possible states are UNINITIALIZED, SIGN or
VERIFY.protected Signature(String algorithm)
Signature with the name of
the algorithm to use.algorithm - the name of algorithm to use.public static Signature getInstance(String algorithm) throws NoSuchAlgorithmException
Signature that utilizes the specified
algorithm.algorithm - the name of the algorithm to use.Signature that utilizes the specified
algorithm.NoSuchAlgorithmException - if the specified algorithm is not available.NullPointerException - if algorithm is null.public static Signature getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Signature that utilizes the specified
algorithm from the specified provider.algorithm - the name of the algorithm to use.provider - the name of the provider.Signature that utilizes the specified
algorithm from the specified provider.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) throws NoSuchAlgorithmException
Signature that utilizes the specified
algorithm from the specified provider. The provider supplied
does not have to be registered.algorithm - the name of the algorithm to use.provider - the security provider.Signature that utilizes the specified
algorithm from the specified provider.NoSuchAlgorithmException - if the specified algorithm is not available.NullPointerException - if algorithm is null.IllegalArgumentException - if provider == nullpublic final Provider getProvider()
Signature.Signature.public SignatureSpi getCurrentSpi()
SignatureSpi backing this Signature or null if no
SignatureSpi is backing this Signature.public final String getAlgorithm()
Signature.Signature.public final void initVerify(PublicKey publicKey) throws InvalidKeyException
Signature instance for signature verification,
using the public key of the identity whose signature is going to be
verified.publicKey - the public key.InvalidKeyException - if publicKey is not valid.public final void initVerify(Certificate certificate) throws InvalidKeyException
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.
certificate - the certificate used to verify a signature.InvalidKeyException - if the publicKey in the certificate is not valid or not to be
used for signing.public final void initSign(PrivateKey privateKey) throws InvalidKeyException
Signature instance for signing, using the
private key of the identity whose signature is going to be generated.privateKey - the private key.InvalidKeyException - if privateKey is not valid.public final void initSign(PrivateKey privateKey, SecureRandom random) throws InvalidKeyException
Signature instance for signing, using the
private key of the identity whose signature is going to be generated and
the specified source of randomness.privateKey - the private key.random - the SecureRandom to use.InvalidKeyException - if privateKey is not valid.public final byte[] sign()
throws SignatureException
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.
SignatureException - if this Signature instance is not initialized
properly.public final int sign(byte[] outbuf,
int offset,
int len)
throws SignatureException
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.
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.outbuf.SignatureException - if this Signature instance is not initialized
properly.IllegalArgumentException - if offset or len are not valid in respect to
outbuf.public final boolean verify(byte[] signature)
throws SignatureException
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.
signature - the signature to verify.true if the signature was verified, false
otherwise.SignatureException - if this Signature instance is not initialized
properly.public final boolean verify(byte[] signature,
int offset,
int length)
throws SignatureException
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.
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.true if the signature was verified, false
otherwise.SignatureException - if this Signature instance is not initialized
properly.IllegalArgumentException - if offset or length are not valid in respect
to signature.public final void update(byte b)
throws SignatureException
byte.b - the byte to update with.SignatureException - if this Signature instance is not initialized
properly.public final void update(byte[] data)
throws SignatureException
byte[].data - the byte array to update with.SignatureException - if this Signature instance is not initialized
properly.public final void update(byte[] data,
int off,
int len)
throws SignatureException
byte[], starting form the specified index for the specified length.data - the byte array to update with.off - the start index in data of the data.len - the number of bytes to use.SignatureException - if this Signature instance is not initialized
properly.public final void update(ByteBuffer data) throws SignatureException
ByteBuffer.data - the ByteBuffer to update with.SignatureException - if this Signature instance is not initialized
properly.public String toString()
Signature including its algorithm and its state.@Deprecated public final void setParameter(String param, Object value) throws InvalidParameterException
setParameter(AlgorithmParameterSpec) instead.param - the name of the parameter.value - the parameter value.InvalidParameterException - if the parameter is invalid, already set or is not allowed to
be changed.public final void setParameter(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
AlgorithmParameterSpec.params - the parameter to set.InvalidAlgorithmParameterException - if the parameter is invalid, already set or is not allowed to
be changed.public final AlgorithmParameters getParameters()
AlgorithmParameters of this Signature
instance.AlgorithmParameters of this Signature
instance, maybe null.@Deprecated public final Object getParameter(String param) throws InvalidParameterException
param - the name of the requested parameter valuenull.InvalidParameterException - if param is not a valid parameter for this Signature or an other error occurs.