Package org.bouncycastle.crypto.signers
Class ISO9796d2PSSSigner
- java.lang.Object
-
- org.bouncycastle.crypto.signers.ISO9796d2PSSSigner
-
- All Implemented Interfaces:
Signer
,SignerWithRecovery
public class ISO9796d2PSSSigner extends java.lang.Object implements 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 Modifier and Type Field Description static int
TRAILER_IMPLICIT
Deprecated.use ISOTrailersstatic int
TRAILER_RIPEMD128
Deprecated.use ISOTrailersstatic int
TRAILER_RIPEMD160
Deprecated.use ISOTrailersstatic int
TRAILER_SHA1
Deprecated.use ISOTrailersstatic int
TRAILER_SHA256
Deprecated.use ISOTrailersstatic int
TRAILER_SHA384
Deprecated.use ISOTrailersstatic int
TRAILER_SHA512
Deprecated.use ISOTrailersstatic int
TRAILER_WHIRLPOOL
Deprecated.use ISOTrailers
-
Constructor Summary
Constructors Constructor Description ISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength)
Constructor for a signer with an explicit digest trailer.ISO9796d2PSSSigner(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
generateSignature()
generate a signature for the loaded message using the key we were initialised with.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.boolean
hasFullMessage()
Return true if the full message was recoveredMessage.void
init(boolean forSigning, CipherParameters param)
Initialise the signer.void
reset()
reset the internal statevoid
update(byte b)
update the internal digest with the byte bvoid
update(byte[] in, int off, int len)
update the internal digest with the byte array invoid
updateWithRecoveredMessage(byte[] signature)
Perform an update with the recovered message before adding any other data.boolean
verifySignature(byte[] signature)
return true if the signature represents a ISO9796-2 signature for the passed in message.
-
-
-
Field Detail
-
TRAILER_IMPLICIT
public static final int TRAILER_IMPLICIT
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_RIPEMD160
public static final int TRAILER_RIPEMD160
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_RIPEMD128
public static final int TRAILER_RIPEMD128
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_SHA1
public static final int TRAILER_SHA1
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_SHA256
public static final int TRAILER_SHA256
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_SHA512
public static final int TRAILER_SHA512
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_SHA384
public static final int TRAILER_SHA384
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
TRAILER_WHIRLPOOL
public static final int TRAILER_WHIRLPOOL
Deprecated.use ISOTrailers- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ISO9796d2PSSSigner
public ISO9796d2PSSSigner(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.
-
ISO9796d2PSSSigner
public ISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength)
Constructor for a signer with an explicit digest trailer.- Parameters:
cipher
- cipher to use.digest
- digest to sign with.saltLength
- length of salt in bytes.
-
-
Method Detail
-
init
public void init(boolean forSigning, CipherParameters param)
Initialise the signer.- Specified by:
init
in 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:
java.lang.IllegalArgumentException
- if wrong parameter type or a fixed salt is passed in which is the wrong length.
-
updateWithRecoveredMessage
public void updateWithRecoveredMessage(byte[] signature) throws InvalidCipherTextException
Description copied from interface:SignerWithRecovery
Perform 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:
updateWithRecoveredMessage
in interfaceSignerWithRecovery
- Parameters:
signature
- the signature that we are in the process of verifying.- Throws:
InvalidCipherTextException
-
update
public void update(byte b)
update the internal digest with the byte b
-
update
public void update(byte[] in, int off, int len)
update the internal digest with the byte array in
-
generateSignature
public byte[] generateSignature() throws CryptoException
generate a signature for the loaded message using the key we were initialised with.- Specified by:
generateSignature
in 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:
verifySignature
in interfaceSigner
-
hasFullMessage
public boolean hasFullMessage()
Return true if the full message was recoveredMessage.- Specified by:
hasFullMessage
in interfaceSignerWithRecovery
- Returns:
- true on full message recovery, false otherwise, or if not sure.
- See Also:
SignerWithRecovery.hasFullMessage()
-
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:
getRecoveredMessage
in interfaceSignerWithRecovery
- Returns:
- the full/partial recoveredMessage message.
- See Also:
SignerWithRecovery.getRecoveredMessage()
-
-