org.bouncycastle.crypto.signers

## Class ISO9796d2Signer

- java.lang.Object
- - org.bouncycastle.crypto.signers.ISO9796d2Signer

All Implemented Interfaces:
  Signer, SignerWithRecovery

    public class ISO9796d2Signer
    extends java.lang.Object
    implements SignerWithRecovery

ISO9796-2 - mechanism using a hash function with recovery (scheme 1)

### Field Summary

Fields
`static int` `TRAILER_IMPLICIT`
`static int` `TRAILER_RIPEMD128`
`static int` `TRAILER_RIPEMD160`
`static int` `TRAILER_SHA1`

### Constructor Summary

Constructors
Constructor and Description
`ISO9796d2Signer(AsymmetricBlockCipher cipher, Digest digest)` Constructor for a signer with an explicit digest trailer.
`ISO9796d2Signer(AsymmetricBlockCipher cipher, Digest digest, boolean implicit)` Generate a signer for the with either implicit or explicit trailers for ISO9796-2.

### Method Summary

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 for signing or verification.
`void` `reset()` reset the internal state
`void` `update(byte b)` update the internal digest with the byte b
`void` `update(byte[] in, int off, int len)` update the internal digest with the byte array in
`boolean` `verifySignature(byte[] signature)` return true if the signature represents a ISO9796-2 signature for the passed in message.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### TRAILER_IMPLICIT

    public static final int TRAILER_IMPLICIT

See Also:
  Constant Field Values

#### TRAILER_RIPEMD160

    public static final int TRAILER_RIPEMD160

See Also:
  Constant Field Values

#### TRAILER_RIPEMD128

    public static final int TRAILER_RIPEMD128

See Also:
  Constant Field Values

#### TRAILER_SHA1

    public static final int TRAILER_SHA1

See Also:
  Constant Field Values

### Constructor Detail

#### ISO9796d2Signer

    public ISO9796d2Signer(AsymmetricBlockCipher cipher,
                   Digest digest,
                   boolean implicit)

Generate a signer for the with either implicit or explicit trailers for ISO9796-2.

Parameters:
  `cipher` - base cipher to use for signature creation/verification
  `digest` - digest to use.
  `implicit` - whether or not the trailer is implicit or gives the hash.

#### ISO9796d2Signer

    public ISO9796d2Signer(AsymmetricBlockCipher cipher,
                   Digest digest)

Constructor for a signer with an explicit digest trailer.

Parameters:
  `cipher` - cipher to use.
  `digest` - digest to sign with.

### Method Detail

#### init

    public void init(boolean forSigning,
            CipherParameters param)

Description copied from interface: `Signer`
Initialise the signer for signing or verification.

Specified by:
  `init` in interface `Signer`
Parameters:
  `forSigning` - true if for signing, false otherwise
  `param` - necessary parameters.

#### update

    public void update(byte b)

update the internal digest with the byte b

Specified by:
  `update` in interface `Signer`

#### update

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

update the internal digest with the byte array in

Specified by:
  `update` in interface `Signer`

#### reset

    public void reset()

reset the internal state

Specified by:
  `reset` in interface `Signer`

#### generateSignature

    public byte[] generateSignature()
                             throws CryptoException

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

Specified by:
  `generateSignature` in interface `Signer`
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 interface `Signer`

#### hasFullMessage

    public boolean hasFullMessage()

Return true if the full message was recoveredMessage.

Specified by:
  `hasFullMessage` in interface `SignerWithRecovery`
Returns:
  true on full message recovery, false otherwise.
See Also:
  `SignerWithRecovery.hasFullMessage()`

#### getRecoveredMessage

    public byte[] getRecoveredMessage()

Return a reference to the recoveredMessage message.

Specified by:
  `getRecoveredMessage` in interface `SignerWithRecovery`
Returns:
  the full/partial recoveredMessage message.
See Also:
  `SignerWithRecovery.getRecoveredMessage()`