Package org.apache.sshd.common.signature
Class AbstractSignature
java.lang.Object
org.apache.sshd.common.signature.AbstractSignature
- All Implemented Interfaces:
AlgorithmNameProvider,Signature
- Direct Known Subclasses:
GenericSignatureEd25519,SignatureDSA,SignatureECDSA,SignatureRSA
Useful base class for
Signature implementation- Author:
- Apache MINA SSHD Project
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSignature(String algorithm, String sshAlgorithmName) -
Method Summary
Modifier and TypeMethodDescriptionprotected SignaturedoInitSignature(SessionContext session, String algo, Key key, boolean forSigning) Initializes the internal signature instanceprotected booleandoVerify(byte[] data) extractEncodedSignature(byte[] sig, Collection<String> expectedTypes) Makes an attempt to detect if the signature is encoded or pure dataextractEncodedSignature(byte[] sig, Predicate<? super String> typeSelector) final Stringprotected SignaturegetSshAlgorithmName(String algo) voidinitSigner(SessionContext session, PrivateKey key) voidinitVerifier(SessionContext session, PublicKey key) byte[]sign(SessionContext session) Compute the signaturetoString()voidupdate(SessionContext session, byte[] hash, int off, int len) Update the computed signature with the given data
-
Constructor Details
-
AbstractSignature
-
-
Method Details
-
getAlgorithm
- Specified by:
getAlgorithmin interfaceAlgorithmNameProvider
-
getSshAlgorithmName
- Specified by:
getSshAlgorithmNamein interfaceSignature- Parameters:
algo- - the negotiated value- Returns:
- The original ssh name of the signature algorithm
-
doInitSignature
protected Signature doInitSignature(SessionContext session, String algo, Key key, boolean forSigning) throws GeneralSecurityException Initializes the internal signature instance- Parameters:
session- TheSessionContextfor calling this method - may benullif not called within a session contextalgo- The signature's algorithm namekey- theKeythat is provided for initialization - aPrivateKeyfor signing and aPublicKeyfor verificationforSigning- Iftruethen it is being initialized for signing, otherwise for verifying a signature- Returns:
- The
Signatureinstance - Throws:
GeneralSecurityException- if failed to initialize
-
getSignature
- Returns:
- The current
Signatureinstance -nullif not initialized - See Also:
-
sign
Description copied from interface:SignatureCompute the signature- Specified by:
signin interfaceSignature- Parameters:
session- TheSessionContextfor calling this method - may benullif not called within a session context- Returns:
- The signature value
- Throws:
Exception- If failed to calculate the signature
-
initVerifier
- Specified by:
initVerifierin interfaceSignature- Parameters:
session- TheSessionContextfor calling this method - may benullif not called within a session contextkey- ThePublicKeyto be used for verifying signatures- Throws:
Exception- If failed to initialize
-
initSigner
- Specified by:
initSignerin interfaceSignature- Parameters:
session- TheSessionContextfor calling this method - may benullif not called within a session contextkey- ThePrivateKeyto be used for signing- Throws:
Exception- If failed to initialize
-
update
Description copied from interface:SignatureUpdate the computed signature with the given data- Specified by:
updatein interfaceSignature- Parameters:
session- TheSessionContextfor calling this method - may benullif not called within a session contexthash- The hash data bufferoff- Offset of hash data in bufferlen- Length of hash data- Throws:
Exception- If failed to update
-
extractEncodedSignature
protected Map.Entry<String,byte[]> extractEncodedSignature(byte[] sig, Collection<String> expectedTypes) Makes an attempt to detect if the signature is encoded or pure data- Parameters:
sig- The original signatureexpectedTypes- The expected encoded key types- Returns:
- A
AbstractMap.SimpleImmutableEntrywhere first value is the key type and second value is the data -nullif not encoded
-
extractEncodedSignature
-
doVerify
- Throws:
SignatureException
-
toString
-