Class BaseISO9796d2PSSSigner
java.lang.Object
org.bouncycastle.crypto.internal.signers.BaseISO9796d2PSSSigner
- All Implemented Interfaces:
Signer, SignerWithRecovery
ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
Note: the usual length for the salt is the length of the hash function used in bytes.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionBaseISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, byte[] salt, boolean implicit) Generate a signer for the with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.BaseISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength, boolean implicit) Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]generate a signature for the loaded message using the key we were initialised with.byte[]Return a reference to the recoveredMessage message, either as it was added to a just generated signature, or extracted from a verified one.booleanReturn true if the full message was recoveredMessage.voidinit(boolean forSigning, CipherParameters param) Initialise the signer.voidreset()reset the internal statevoidupdate(byte b) update the internal digest with the byte bvoidupdate(byte[] in, int off, int len) update the internal digest with the byte array invoidupdateWithRecoveredMessage(byte[] signature) Perform an update with the recovered message before adding any other data.booleanverifySignature(byte[] signature) return true if the signature represents a ISO9796-2 signature for the passed in message.
-
Field Details
-
TRAILER_IMPLICIT
public static final int TRAILER_IMPLICIT- See Also:
-
-
Constructor Details
-
BaseISO9796d2PSSSigner
public BaseISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength, boolean implicit) Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.- Parameters:
cipher- base cipher to use for signature creation/verificationdigest- digest to use.saltLength- length of salt in bytes.implicit- whether or not the trailer is implicit or gives the hash.
-
BaseISO9796d2PSSSigner
public BaseISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, byte[] salt, boolean implicit) Generate a signer for the with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.- Parameters:
cipher- base cipher to use for signature creation/verificationdigest- digest to use.salt- salt.implicit- whether or not the trailer is implicit or gives the hash.
-
-
Method Details
-
init
Initialise the signer.- Specified by:
initin interfaceSigner- Parameters:
forSigning- true if for signing, false if for verification.param- parameters for signature generation/verification. If the parameters are for generation they should be a ParametersWithRandom, a ParametersWithSalt, or just an RSAKeyParameters object. If RSAKeyParameters are passed in a SecureRandom will be created.- Throws:
IllegalArgumentException- if wrong parameter type or a fixed salt is passed in which is the wrong length.
-
updateWithRecoveredMessage
Description copied from interface:SignerWithRecoveryPerform an update with the recovered message before adding any other data. This must be the first update method called, and calling it will result in the signer assuming that further calls to update will include message content past what is recoverable.- Specified by:
updateWithRecoveredMessagein interfaceSignerWithRecovery- Parameters:
signature- the signature that we are in the process of verifying.- Throws:
InvalidCipherTextException
-
update
-
update
-
reset
-
generateSignature
generate a signature for the loaded message using the key we were initialised with.- Specified by:
generateSignaturein interfaceSigner- Throws:
CryptoException
-
verifySignature
public boolean verifySignature(byte[] signature) return true if the signature represents a ISO9796-2 signature for the passed in message.- Specified by:
verifySignaturein interfaceSigner
-
hasFullMessage
public boolean hasFullMessage()Return true if the full message was recoveredMessage.- Specified by:
hasFullMessagein interfaceSignerWithRecovery- Returns:
- true on full message recovery, false otherwise, or if not sure.
- See Also:
-
getRecoveredMessage
public byte[] getRecoveredMessage()Return a reference to the recoveredMessage message, either as it was added to a just generated signature, or extracted from a verified one.- Specified by:
getRecoveredMessagein interfaceSignerWithRecovery- Returns:
- the full/partial recoveredMessage message.
- See Also:
-