public class

ISO9796d2PSSSigner

extends Object
implements SignerWithRecovery
java.lang.Object
   ↳ org.bouncycastle.crypto.signers.ISO9796d2PSSSigner

Class Overview

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.

Summary

Constants
int TRAILER_IMPLICIT
int TRAILER_RIPEMD128
int TRAILER_RIPEMD160
int TRAILER_SHA1
Public Constructors
ISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength, boolean implicit)
Generate a signer for the with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
ISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength)
Constructor for a signer with an explicit digest trailer.
Public Methods
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.
boolean hasFullMessage()
Return true if the full message was recoveredMessage.
void init(boolean forSigning, CipherParameters param)
Initialise the signer.
void reset()
reset the internal state
void update(byte[] in, int off, int len)
update the internal digest with the byte array in
void update(byte b)
update the internal digest with the byte b
void 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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.bouncycastle.crypto.Signer
From interface org.bouncycastle.crypto.SignerWithRecovery

Constants

public static final int TRAILER_IMPLICIT

Constant Value: 188 (0x000000bc)

public static final int TRAILER_RIPEMD128

Constant Value: 13004 (0x000032cc)

public static final int TRAILER_RIPEMD160

Constant Value: 12748 (0x000031cc)

public static final int TRAILER_SHA1

Constant Value: 13260 (0x000033cc)

Public Constructors

public ISO9796d2PSSSigner (AsymmetricBlockCipher cipher, Digest digest, int saltLength, 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/verification
digest digest to use.
saltLength length of salt in bytes.
implicit whether or not the trailer is implicit or gives the hash.

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.

Public Methods

public byte[] generateSignature ()

generate a signature for the loaded message using the key we were initialised with.

public byte[] getRecoveredMessage ()

Return a reference to the recoveredMessage message.

Returns
  • the full/partial recoveredMessage message.

public boolean hasFullMessage ()

Return true if the full message was recoveredMessage.

Returns
  • true on full message recovery, false otherwise, or if not sure.
See Also

public void init (boolean forSigning, CipherParameters param)

Initialise the signer.

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.

public void reset ()

reset the internal state

public void update (byte[] in, int off, int len)

update the internal digest with the byte array in

public void update (byte b)

update the internal digest with the byte b

public void updateWithRecoveredMessage (byte[] signature)

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.

Parameters
signature the signature that we are in the process of verifying.

public boolean verifySignature (byte[] signature)

return true if the signature represents a ISO9796-2 signature for the passed in message.