Class OpenSSLSignature
- Direct Known Subclasses:
OpenSSLSignature.MD5RSA,OpenSSLSignature.SHA1DSA,OpenSSLSignature.SHA1ECDSA,OpenSSLSignature.SHA1RSA,OpenSSLSignature.SHA256ECDSA,OpenSSLSignature.SHA256RSA,OpenSSLSignature.SHA384ECDSA,OpenSSLSignature.SHA384RSA,OpenSSLSignature.SHA512ECDSA,OpenSSLSignature.SHA512RSA
public class OpenSSLSignature extends Signature
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classOpenSSLSignature.MD5RSAstatic classOpenSSLSignature.SHA1DSAstatic classOpenSSLSignature.SHA1ECDSAstatic classOpenSSLSignature.SHA1RSAstatic classOpenSSLSignature.SHA256ECDSAstatic classOpenSSLSignature.SHA256RSAstatic classOpenSSLSignature.SHA384ECDSAstatic classOpenSSLSignature.SHA384RSAstatic classOpenSSLSignature.SHA512ECDSAstatic classOpenSSLSignature.SHA512RSA -
Field Summary
Fields inherited from class java.security.Signature
SIGN, state, UNINITIALIZED, VERIFYFields inherited from class java.security.SignatureSpi
appRandom -
Method Summary
Modifier and Type Method Description protected ObjectengineGetParameter(String param)Returns the value of the parameter with the specified name.protected voidengineInitSign(PrivateKey privateKey)Initializes thisSignatureSpiinstance for signing, using the private key of the identity whose signature is going to be generated.protected voidengineInitVerify(PublicKey publicKey)Initializes thisSignatureSpiinstance for signature verification, using the public key of the identity whose signature is going to be verified.protected voidengineSetParameter(String param, Object value)Sets the specified parameter to the given value.protected byte[]engineSign()Generates and returns the signature of all updated data.protected voidengineUpdate(byte input)Updates the data to be verified or to be signed, using the specifiedbyte.protected voidengineUpdate(byte[] input, int offset, int len)Updates the data to be verified or to be signed, using the givenbyte[], starting form the specified index for the specified length.protected booleanengineVerify(byte[] sigBytes)Indicates whether the givensigBytescan be verified using the public key or a certificate of the signer.protected voidfinalize()Invoked when the garbage collector has detected that this instance is no longer reachable.Methods inherited from class java.security.Signature
clone, getAlgorithm, getInstance, getInstance, getInstance, getParameter, getParameters, getProvider, initSign, initSign, initVerify, initVerify, setParameter, setParameter, sign, sign, toString, update, update, update, update, verify, verifyMethods inherited from class java.security.SignatureSpi
engineGetParameters, engineInitSign, engineSetParameter, engineSign, engineUpdate, engineVerify
-
Method Details
-
engineUpdate
protected void engineUpdate(byte input)Description copied from class:SignatureSpiUpdates the data to be verified or to be signed, using the specifiedbyte.- Specified by:
engineUpdatein classSignatureSpi- Parameters:
input- the byte to update with.
-
engineUpdate
protected void engineUpdate(byte[] input, int offset, int len)Description copied from class:SignatureSpiUpdates the data to be verified or to be signed, using the givenbyte[], starting form the specified index for the specified length.- Specified by:
engineUpdatein classSignatureSpi- Parameters:
input- the byte array to update with.offset- the start index inbof the data.len- the number of bytes to use.
-
engineGetParameter
Description copied from class:SignatureSpiReturns the value of the parameter with the specified name.- Specified by:
engineGetParameterin classSignatureSpi- Parameters:
param- the name of the requested parameter value.- Returns:
- the value of the parameter with the specified name, maybe
null. - Throws:
InvalidParameterException- ifparamis not a valid parameter for thisSignatureSpior an other error occurs.
-
engineInitSign
Description copied from class:SignatureSpiInitializes thisSignatureSpiinstance for signing, using the private key of the identity whose signature is going to be generated.- Specified by:
engineInitSignin classSignatureSpi- Parameters:
privateKey- the private key.- Throws:
InvalidKeyException- ifprivateKeyis not valid.
-
engineInitVerify
Description copied from class:SignatureSpiInitializes thisSignatureSpiinstance for signature verification, using the public key of the identity whose signature is going to be verified.- Specified by:
engineInitVerifyin classSignatureSpi- Parameters:
publicKey- the public key.- Throws:
InvalidKeyException- ifpublicKeyis not valid.
-
engineSetParameter
Description copied from class:SignatureSpiSets the specified parameter to the given value.- Specified by:
engineSetParameterin classSignatureSpi- 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.
-
engineSign
Description copied from class:SignatureSpiGenerates and returns the signature of all updated data.This
SignatureSpiinstance is reset to the state of its last initialization for signing and thus can be used for another signature from the same identity.- Specified by:
engineSignin classSignatureSpi- Returns:
- the signature of all updated data.
- Throws:
SignatureException- if thisSignatureSpiinstance is not initialized properly.
-
engineVerify
Description copied from class:SignatureSpiIndicates whether the givensigBytescan be verified using the public key or a certificate of the signer.This
SignatureSpiinstance is reset to the state of its last initialization for verifying and thus can be used to verify another signature of the same signer.- Specified by:
engineVerifyin classSignatureSpi- Parameters:
sigBytes- the signature to verify.- Returns:
trueif the signature was verified,falseotherwise.- Throws:
SignatureException- if thisSignatureSpiinstance is not initialized properly.
-
finalize
Description copied from class:ObjectInvoked when the garbage collector has detected that this instance is no longer reachable. The default implementation does nothing, but this method can be overridden to free resources.Note that objects that override
finalizeare significantly more expensive than objects that don't. Finalizers may be run a long time after the object is no longer reachable, depending on memory pressure, so it's a bad idea to rely on them for cleanup. Note also that finalizers are run on a single VM-wide finalizer thread, so doing blocking work in a finalizer is a bad idea. A finalizer is usually only necessary for a class that has a native peer and needs to call a native method to destroy that peer. Even then, it's better to provide an explicitclosemethod (and implementCloseable), and insist that callers manually dispose of instances. This works well for something like files, but less well for something like aBigIntegerwhere typical calling code would have to deal with lots of temporaries. Unfortunately, code that creates lots of temporaries is the worst kind of code from the point of view of the single finalizer thread.If you must use finalizers, consider at least providing your own
ReferenceQueueand having your own thread process that queue.Unlike constructors, finalizers are not automatically chained. You are responsible for calling
super.finalize()yourself.Uncaught exceptions thrown by finalizers are ignored and do not terminate the finalizer thread. See Effective Java Item 7, "Avoid finalizers" for more.
-