All Packages  Class Hierarchy  This Package  Previous  Next  Index
  Class java.security.Signature
java.lang.Object
   |
   +----java.security.Signature
  -  public abstract class Signature
  -  extends Object
		
This Signature class is used to provide the functionality of a
 digital signature algorithm, such as RSA with MD5 or
 DSA. Digital signatures are used for authentication and
 integrity assurance of digital data.Like other algorithm-based classes in Java Security, the
 Signature class has two major components:
 
 - Digital Signature API (Application Program Interface)
 
- This is the interface of methods called by applications needing
 digital signature services. The API consists of all public methods.
 
- Digital Signature SPI (Service Provider Interface)
 
- This is the interface implemented by providers that supply
 specific algorithms. It consists of all methods whose names are
 prefixed by engine. Each such method is called by a
 correspondingly-named public API method. For example, theengineSignmethod is called by thesignmethod.  The SPI methods are abstract;
 providers must supply a concrete implementation.
Also like other algorithm-based classes in Java Security, Signature 
 provides implementation-independent algorithms, whereby a caller 
 (application code) requests a particular signature algorithm
 and is handed back a properly initialized Signature object. It is
 also possible, if desired, to request a particular algorithm from a
 particular provider. See the getInstance  methods.
 
Thus, there are two ways to request a Signature algorithm object: by
 specifying either just an algorithm name, or both an algorithm name
 and a package provider. 
 - If just an algorithm name is specified, the system will
 determine if there is an implementation of the algorithm requested
 available in the environment, and if there is more than one, if
 there is a preferred one.
 
- If both an algorithm name and a package provider are specified,
 the system will determine if there is an implementation of the
 algorithm in the package requested, and throw an exception if there
 is not.
 
A Signature object can be used to generate and verify digital
 signatures.
 
There are three phases to the use of a Signature object for
 either signing data or verifying a signature:
 - Initialization, with either 
     
     - a public key, which initializes the signature for
     verification (see initVerify), or
     
- a private key, which initializes the signature for
     signing (see initSign).
     
 
  
- Updating
  Depending on the type of initialization, this will update the
 bytes to be signed or verified. See the update methods. 
  
- Signing or Verifying 
 a signature on all updated bytes. See sign and verify.
  
   
  -   SIGN SIGN
-  
 Possible state  value, signifying that       
 this signature object has been initialized for signing.
  
-   state state
-  
 Current state of this signature object.
  
-   UNINITIALIZED UNINITIALIZED
-  
 Possible state  value, signifying that       
 this signature object has not yet been initialized.
  
-   VERIFY VERIFY
-  
 Possible state  value, signifying that       
 this signature object has been initialized for verification.
   
  -   Signature(String) Signature(String)
-   Creates a Signature object for the specified algorithm.
   
  -   clone() clone()
-   Returns a clone if the implementation is cloneable.
  
-   engineGetParameter(String) engineGetParameter(String)
-   SPI: Gets the value of the specified algorithm parameter.
  
-   engineInitSign(PrivateKey) engineInitSign(PrivateKey)
-   SPI: Initializes this signature object with the specified
 private key for signing operations.
  
-   engineInitVerify(PublicKey) engineInitVerify(PublicKey)
-   SPI: Initializes this signature object with the specified
 public key for verification operations.
  
-   engineSetParameter(String, Object) engineSetParameter(String, Object)
-   SPI: Sets the specified algorithm parameter to the specified
 value.
  
-   engineSign() engineSign()
-  
 SPI: Returns the signature bytes of all the data
 updated so far.
  
-   engineUpdate(byte) engineUpdate(byte)
-   SPI: Updates the data to be signed or verified
 using the specified byte.
  
-   engineUpdate(byte[], int, int) engineUpdate(byte[], int, int)
-   SPI: Updates the data to be signed or verified, using the 
 specified array of bytes, starting at the specified offset.
  
-   engineVerify(byte[]) engineVerify(byte[])
-  
 SPI: Verifies the passed-in signature.
  
-   getAlgorithm() getAlgorithm()
-  
 Returns the name of the algorithm for this signature object.
  
-   getInstance(String) getInstance(String)
-   Generates a Signature object that implements the specified 
 algorithm.
  
-   getInstance(String, String) getInstance(String, String)
-  
 Generates a Signature object implementing the specified
 algorithm, as supplied from the specified provider, if such an 
 algorithm is available from the provider.
  
-   getParameter(String) getParameter(String)
-   Gets the value of the specified algorithm parameter.
  
-   initSign(PrivateKey) initSign(PrivateKey)
-   Initialize this object for signing.
  
-   initVerify(PublicKey) initVerify(PublicKey)
-   Initializes this object for verification.
  
-   setParameter(String, Object) setParameter(String, Object)
-   Sets the specified algorithm parameter to the specified value.
  
-   sign() sign()
-   Returns the signature bytes of all the data updated.
  
-   toString() toString()
-   Returns a string representation of this signature object,       
 providing information that includes the state of the object       
 and the name of the algorithm used.
  
-   update(byte) update(byte)
-   Updates the data to be signed or verified by a byte.
  
-   update(byte[]) update(byte[])
-   Updates the data to be signed or verified, using the specified
 array of bytes.
  
-   update(byte[], int, int) update(byte[], int, int)
-   Updates the data to be signed or verified, using the specified
 array of bytes, starting at the specified offset.
  
-   verify(byte[]) verify(byte[])
-   Verifies the passed-in signature.
   
 UNINITIALIZED
UNINITIALIZED
 protected static final int UNINITIALIZED
  -  Possible state  value, signifying that       
 this signature object has not yet been initialized.
 
 SIGN
SIGN
 protected static final int SIGN
  -  Possible state  value, signifying that       
 this signature object has been initialized for signing.
 
 VERIFY
VERIFY
 protected static final int VERIFY
  -  Possible state  value, signifying that       
 this signature object has been initialized for verification.
 
 state
state
 protected int state
  -  Current state of this signature object.
 
   
 Signature
Signature
 protected Signature(String algorithm)
  -  Creates a Signature object for the specified algorithm.
   
- 
    -  Parameters:
    
-  algorithm - the standard string name of the algorithm.
 See Appendix A in the 
 Java Cryptography Architecture API Specification & Reference  
 for information about standard algorithm names.
  
 
   
 getInstance
getInstance
 public static Signature getInstance(String algorithm) throws NoSuchAlgorithmException
  -  Generates a Signature object that implements the specified 
 algorithm. If the default provider package contains a Signature
 subclass implementing the algorithm, an instance of that subclass
 is returned. If the algorithm is not available in the default 
 package, other packages are searched.
   
- 
    -  Parameters:
    
-  algorithm - the standard name of the algorithm requested.
 See Appendix A in the 
 Java Cryptography Architecture API Specification & Reference  
 for information about standard algorithm names.
    
-  Returns:
    
-  the new Signature object.
    
-  Throws: NoSuchAlgorithmException
    
-  if the algorithm is
 not available in the environment.
  
 
 getInstance
getInstance
 public static Signature getInstance(String algorithm,
                                     String provider) throws NoSuchAlgorithmException, NoSuchProviderException
  -  Generates a Signature object implementing the specified
 algorithm, as supplied from the specified provider, if such an 
 algorithm is available from the provider.
   
- 
    -  Parameters:
    
-  algorithm - the name of the algorithm requested.
 See Appendix A in the 
 Java Cryptography Architecture API Specification & Reference  
 for information about standard algorithm names.
    -  provider - the name of the provider.
    
-  Returns:
    
-  the new Signature object.
    
-  Throws: NoSuchAlgorithmException
    
-  if the algorithm is
 not available in the package supplied by the requested
 provider.
    
-  Throws: NoSuchProviderException
    
-  if the provider is not
 available in the environment.
    
-  See Also:
    
-  Provider
  
 
 initVerify
initVerify
 public final void initVerify(PublicKey publicKey) throws InvalidKeyException
  -  Initializes this object for verification. If this method is called
 again with a different argument, it negates the effect
 of this call.
   
- 
    -  Parameters:
    
-  publicKey - the public key of the identity whose signature is
 going to be verified.
    
-  Throws: InvalidKeyException
    
-  if the key is invalid.
  
 
 initSign
initSign
 public final void initSign(PrivateKey privateKey) throws InvalidKeyException
  -  Initialize this object for signing. If this method is called
 again with a different argument, it negates the effect
 of this call.
   
- 
    -  Parameters:
    
-  privateKey - the private key of the identity whose signature
 is going to be generated.
    
-  Throws: InvalidKeyException
    
-  if the key is invalid.
  
 
 sign
sign
 public final byte[] sign() throws SignatureException
  -  Returns the signature bytes of all the data updated.  The 
 signature returned is X.509-encoded. 
 A call to this method resets this signature object to the state 
 it was in when previously initialized for signing via a
 call to initSign(PrivateKey). That is, the object is 
 reset and available to generate another signature from the same 
 signer, if desired, via new calls toupdateandsign.
 
   
- 
    -  Returns:
    
-  the signature bytes of the signing operation's result.
    
-  Throws: SignatureException
    
-  if this signature object is not
 initialized properly.
  
 
 verify
verify
 public final boolean verify(byte signature[]) throws SignatureException
  -  Verifies the passed-in signature. The signature bytes are expected 
 to be X.509-encoded. 
 A call to this method resets this signature object to the state 
 it was in when previously initialized for verification via a
 call to initVerify(PublicKey). That is, the object is 
 reset and available to verify another signature from the identity
 whose public key was specified in the call toinitVerify.
 
   
- 
    -  Parameters:
    
-  signature - the signature bytes to be verified.
    
-  Returns:
    
-  true if the signature was verified, false if not.
    
-  Throws: SignatureException
    
-  if this signature object is not
 initialized properly, or the passed-in signature is improperly 
 encoded or of the wrong type, etc.
  
 
 update
update
 public final void update(byte b) throws SignatureException
  -  Updates the data to be signed or verified by a byte.
   
- 
    -  Parameters:
    
-  b - the byte to use for the update.
    
-  Throws: SignatureException
    
-  if this signature object is not
 initialized properly.
  
 
 update
update
 public final void update(byte data[]) throws SignatureException
  -  Updates the data to be signed or verified, using the specified
 array of bytes.
   
- 
    -  Parameters:
    
-  data - the byte array to use for the update.
    
-  Throws: SignatureException
    
-  if this signature object is not
 initialized properly.
  
 
 update
update
 public final void update(byte data[],
                          int off,
                          int len) throws SignatureException
  -  Updates the data to be signed or verified, using the specified
 array of bytes, starting at the specified offset.
   
- 
    -  Parameters:
    
-  data - the array of bytes.
    -  off - the offset to start from in the array of bytes.
    -  len - the number of bytes to use, starting at offset.
    
-  Throws: SignatureException
    
-  if this signature object is not
 initialized properly.
  
 
 getAlgorithm
getAlgorithm
 public final String getAlgorithm()
  -  Returns the name of the algorithm for this signature object.
   
- 
    -  Returns:
    
-  the name of the algorithm for this signature object.
  
 
 toString
toString
 public String toString()
  -  Returns a string representation of this signature object,       
 providing information that includes the state of the object       
 and the name of the algorithm used.
   
- 
    -  Returns:
    
-  a string representation of this signature object.
    
-  Overrides:
    
-  toString in class Object
  
 
 setParameter
setParameter
 public final void setParameter(String param,
                                Object value) throws InvalidParameterException
  -  Sets the specified algorithm parameter to the specified value.
 This method supplies a general-purpose mechanism through
 which it is possible to set the various parameters of this object. 
 A parameter may be any settable parameter for the algorithm, such as 
 a parameter size, or a source of random bits for signature generation 
 (if appropriate), or an indication of whether or not to perform
 a specific but optional computation. A uniform algorithm-specific 
 naming scheme for each parameter is desirable but left unspecified 
 at this time.
   
- 
    -  Parameters:
    
-  param - the string identifier of the parameter.
    -  value - the parameter value.
    
-  Throws: InvalidParameterException
    
-  if paramis an
 invalid parameter for this signature algorithm engine,
 the parameter is already set
 and cannot be set again, a security exception occurs, and so on.
 
 getParameter
getParameter
 public final Object getParameter(String param) throws InvalidParameterException
  -  Gets the value of the specified algorithm parameter. This method 
 supplies a general-purpose mechanism through which it is possible to 
 get the various parameters of this object. A parameter may be any 
 settable parameter for the algorithm, such as a parameter size, or 
 a source of random bits for signature generation (if appropriate), 
 or an indication of whether or not to perform a specific but optional 
 computation. A uniform algorithm-specific naming scheme for each 
 parameter is desirable but left unspecified at this time.
   
- 
    -  Parameters:
    
-  param - the string name of the parameter.
    
-  Returns:
    
-  the object that represents the parameter value, or null if
 there is none.
    
-  Throws: InvalidParameterException
    
-  if paramis an invalid
 parameter for this engine, or another exception occurs while
 trying to get this parameter.
 
 engineInitVerify
engineInitVerify
 protected abstract void engineInitVerify(PublicKey publicKey) throws InvalidKeyException
  -  SPI: Initializes this signature object with the specified
 public key for verification operations.
   
- 
    -  Parameters:
    
-  publicKey - the public key of the identity whose signature is
 going to be verified.
    
-  Throws: InvalidKeyException
    
-  if the key is improperly
 encoded, parameters are missing, and so on.
  
 
 engineInitSign
engineInitSign
 protected abstract void engineInitSign(PrivateKey privateKey) throws InvalidKeyException
  -  SPI: Initializes this signature object with the specified
 private key for signing operations.
   
- 
    -  Parameters:
    
-  privateKey - the private key of the identity whose signature
 will be generated.
    
-  Throws: InvalidKeyException
    
-  if the key is improperly
 encoded, parameters are missing, and so on.
  
 
 engineUpdate
engineUpdate
 protected abstract void engineUpdate(byte b) throws SignatureException
  -  SPI: Updates the data to be signed or verified
 using the specified byte.
   
- 
    -  Parameters:
    
-  b - the byte to use for the update.
    
-  Throws: SignatureException
    
-  if the engine is not initialized
 properly.
  
 
 engineUpdate
engineUpdate
 protected abstract void engineUpdate(byte b[],
                                      int off,
                                      int len) throws SignatureException
  -  SPI: Updates the data to be signed or verified, using the 
 specified array of bytes, starting at the specified offset.
   
- 
    -  Parameters:
    
-  data - the array of bytes.
    -  off - the offset to start from in the array of bytes.
    -  len - the number of bytes to use, starting at offset.
    
-  Throws: SignatureException
    
-  if the engine is not initialized
 properly.
  
 
 engineSign
engineSign
 protected abstract byte[] engineSign() throws SignatureException
  -  SPI: Returns the signature bytes of all the data
 updated so far. The signature returned is X.509-encoded.    
 For more information about the X.509 encoding, see    
 X.509 certificates.
   
- 
    -  Returns:
    
-  the signature bytes of the signing operation's result.
    
-  Throws: SignatureException
    
-  if the engine is not
 initialized properly.
  
 
 engineVerify
engineVerify
 protected abstract boolean engineVerify(byte sigBytes[]) throws SignatureException
  -  SPI: Verifies the passed-in signature. The signature bytes 
 are expected to be X.509-encoded. For more information about the 
 X.509 encoding, see X.509 
 certificates.
   
- 
    -  Parameters:
    
-  sigBytes - the signature bytes to be verified.
    
-  Returns:
    
-  true if the signature was verified, false if not.
    
-  Throws: SignatureException
    
-  if the engine is not initialized
 properly, or the passed-in signature is improperly encoded or 
 of the wrong type, etc.
  
 
 engineSetParameter
engineSetParameter
 protected abstract void engineSetParameter(String param,
                                            Object value) throws InvalidParameterException
  -  SPI: Sets the specified algorithm parameter to the specified
 value. This method supplies a general-purpose mechanism through
 which it is possible to set the various parameters of this object. 
 A parameter may be any settable parameter for the algorithm, such as 
 a parameter size, or a source of random bits for signature generation 
 (if appropriate), or an indication of whether or not to perform
 a specific but optional computation. A uniform algorithm-specific 
 naming scheme for each parameter is desirable but left unspecified 
 at this time.
   
- 
    -  Parameters:
    
-  param - the string identifier of the parameter.
    -  value - the parameter value.
    
-  Throws: InvalidParameterException
    
-  if paramis an
 invalid parameter for this signature algorithm engine,
 the parameter is already set
 and cannot be set again, a security exception occurs, and so on.
 
 engineGetParameter
engineGetParameter
 protected abstract Object engineGetParameter(String param) throws InvalidParameterException
  -  SPI: Gets the value of the specified algorithm parameter. 
 This method supplies a general-purpose mechanism through which it 
 is possible to get the various parameters of this object. A parameter
 may be any settable parameter for the algorithm, such as a parameter 
 size, or  a source of random bits for signature generation (if 
 appropriate), or an indication of whether or not to perform a 
 specific but optional computation. A uniform algorithm-specific 
 naming scheme for each parameter is desirable but left unspecified 
 at this time.
   
- 
    -  Parameters:
    
-  param - the string name of the parameter.
    
-  Returns:
    
-  the object that represents the parameter value, or null if
 there is none.
    
-  Throws: InvalidParameterException
    
-  if paramis an
 invalid parameter for this engine, or another exception occurs while
 trying to get this parameter.
 
 clone
clone
 public Object clone() throws CloneNotSupportedException
  -  Returns a clone if the implementation is cloneable.
   
- 
    -  Returns:
    
-  a clone if the implementation is cloneable.
    
-  Throws: CloneNotSupportedException
    
-  if this is called
 on an implementation that does not support Cloneable.
-  Overrides:
    
-  clone in class Object
  
 
All Packages  Class Hierarchy  This Package  Previous  Next  Index
Submit a bug or feature