java.security
Class SignatureSpi
SignatureSpi
defines the Service Provider Interface (SPI) for
the
Signature
class. The signature class provides an interface to a
digital signature algorithm. Digital signatures are used for authentication
and integrity of data.
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
SignatureSpi
public SignatureSpi()
Creates a new instance of SignatureSpi
.
engineInitSign
protected void engineInitSign(PrivateKey privateKey,
SecureRandom random)
throws InvalidKeyException
Initializes this instance with the private key and source of randomness for
signing purposes.
This method cannot be abstract for backward compatibility reasons.
privateKey
- the private key to sign with.random
- the SecureRandom
to use.
engineInitVerify
protected abstract void engineInitVerify(PublicKey publicKey)
throws InvalidKeyException
Initializes this instance with the public key for verification purposes.
publicKey
- the public key to verify with.
engineSetParameter
protected abstract void engineSetParameter(String param,
Object value)
throws InvalidParameterException
use the other setParameter.
Sets the specified algorithm parameter to the specified value.
param
- the parameter name.value
- the parameter value.
InvalidParameterException
- if the parameter invalid, the parameter is already set and
cannot be changed, a security exception occured, etc.
engineSign
protected abstract byte[] engineSign()
throws SignatureException
Returns the signature bytes of all the data fed to this instance. The
format of the output depends on the underlying signature algorithm.
engineSign
protected int engineSign(byte[] outbuf,
int offset,
int len)
throws SignatureException
Generates signature bytes of all the data fed to this instance and stores
the result in the designated array. The format of the output depends on
the underlying signature algorithm.
This method cannot be abstract for backward compatibility reasons.
After calling this method, the signature is reset to its initial state and
can be used to generate additional signatures.
IMPLEMENTATION NOTE:: Neither this method nor the GNU provider
will return partial digests. If
len
is less than the
signature length, this method will throw a
SignatureException
. If
it is greater than or equal then it is ignored.
outbuf
- the array of bytes to store the result in.offset
- the offset to start at in the array.len
- the number of the bytes to use in the array.
- the real number of bytes used.
engineUpdate
protected abstract void engineUpdate(byte[] b,
int off,
int len)
throws SignatureException
Updates the data to be signed or verified with the specified bytes.
b
- the array of bytes to use.off
- the offset to start at in the array.len
- the number of the bytes to use from the array.
engineVerify
protected abstract boolean engineVerify(byte[] sigBytes)
throws SignatureException
Verifies a designated signature.
sigBytes
- the signature bytes to verify.
true
if verified, false
otherwise.
SignatureException
- if the engine is not properly initialized or if it is the wrong
signature.
engineVerify
protected boolean engineVerify(byte[] sigBytes,
int offset,
int length)
throws SignatureException
Convenience method which calls the method with the same name and one
argument after copying the designated bytes into a temporary byte array.
Subclasses may override this method for performance reasons.
sigBytes
- the array of bytes to use.offset
- the offset to start from in the array of bytes.length
- the number of bytes to use, starting at offset.
true
if verified, false
otherwise.
SignatureSpi.java --- Signature Service Provider Interface
Copyright (C) 1999, 2003, Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.