Overview | Package | Class | Tree | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## gnu.crypto.sig
Class BaseSignature

    java.lang.Object
      |
      +--gnu.crypto.sig.BaseSignature

All Implemented Interfaces:
  java.lang.Cloneable, ISignature

Direct Known Subclasses:
  DSSSignature, RSAPSSSignature

public abstract class BaseSignature
extends java.lang.Object
implements ISignature

A base abstract class to facilitate implementations of concrete Signatures.

Version:
  $Revision: 1.2 $

Field Summary
`protected IMessageDigest` | `md` The underlying message digest instance for this signature scheme.
`protected java.security.PrivateKey` | `privateKey` The private key to use when generating signatures (signing).
`protected java.security.PublicKey` | `publicKey` The public key to use when verifying signatures.
`protected java.lang.String` | `schemeName` The canonical name of this signature scheme.
`static java.lang.String` | `SIGNER_KEY` Property name of the signer's private key.
`static java.lang.String` | `SOURCE_OF_RANDOMNESS` Property name of an optional `SecureRandom` instance to use.
`static java.lang.String` | `VERIFIER_KEY` Property name of the verifier's public key.

Constructor Summary
`protected` | `BaseSignature(java.lang.String schemeName, IMessageDigest md)` Trivial constructor.

Method Summary
`abstract java.lang.Object` | `clone()` Returns a clone copy of this instance.
`protected abstract java.lang.Object` | `generateSignature()`
`protected void` | `init()` Initialises the internal fields of this instance.
`java.lang.String` | `name()` Returns the canonical name of this signature scheme.
`protected void` | `nextRandomBytes(byte[] buffer)` Fills the designated byte array with random data.
`protected abstract void` | `setupForSigning(java.security.PrivateKey key)`
`protected abstract void` | `setupForVerification(java.security.PublicKey key)`
`void` | `setupSign(java.util.Map attributes)` Initialises this instance for signature generation.
`void` | `setupVerify(java.util.Map attributes)` Initialises this instance for signature verification.
`java.lang.Object` | `sign()` Terminates a signature generation phase by digesting and processing the context of the underlying message digest algorithm instance.
`void` | `update(byte b)` Digests one byte of a message for signing or verification purposes.
`void` | `update(byte[] b, int off, int len)` Digests a sequence of bytes from a message for signing or verification purposes.
`boolean` | `verify(java.lang.Object sig)` Terminates a signature verification phase by digesting and processing the context of the underlying message digest algorithm instance.
`protected abstract boolean` | `verifySignature(java.lang.Object signature)`

Methods inherited from class java.lang.Object
`, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### VERIFIER_KEY

    public static final java.lang.String VERIFIER_KEY

  Property name of the verifier's public key.

### SIGNER_KEY

    public static final java.lang.String SIGNER_KEY

  Property name of the signer's private key.

### SOURCE_OF_RANDOMNESS

    public static final java.lang.String SOURCE_OF_RANDOMNESS

  Property name of an optional `SecureRandom` instance to use. The default is to use a classloader singleton from `PRNG`.

### schemeName

    protected java.lang.String schemeName

  The canonical name of this signature scheme.

### md

    protected IMessageDigest md

  The underlying message digest instance for this signature scheme.

### publicKey

    protected java.security.PublicKey publicKey

  The public key to use when verifying signatures.

### privateKey

    protected java.security.PrivateKey privateKey

  The private key to use when generating signatures (signing).

Constructor Detail

### BaseSignature

    protected BaseSignature(java.lang.String schemeName,
                            IMessageDigest md)

  Trivial constructor.

  Parameters:
    `schemeName` - the name of this signature scheme.
    `md` - the underlying instance of the message digest algorithm.

Method Detail

### name

    public java.lang.String name()

  Description copied from interface: `ISignature`
  Returns the canonical name of this signature scheme.

  Specified by:
    `name` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Returns:
    the canonical name of this instance.

### setupVerify

    public void setupVerify(java.util.Map attributes)
                     throws java.lang.IllegalArgumentException

  Description copied from interface: `ISignature`
  Initialises this instance for signature verification.

  Specified by:
    `setupVerify` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Parameters:
    `attributes` - the attributes to use for setting up this instance.
  Throws:
    `java.lang.IllegalArgumentException` - if the designated public key is not appropriate for this signature scheme.

### setupSign

    public void setupSign(java.util.Map attributes)
                   throws java.lang.IllegalArgumentException

  Description copied from interface: `ISignature`
  Initialises this instance for signature generation.

  Specified by:
    `setupSign` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Parameters:
    `attributes` - the attributes to use for setting up this instance.
  Throws:
    `java.lang.IllegalArgumentException` - if the designated private key is not appropriate for this signature scheme.

### update

    public void update(byte b)

  Description copied from interface: `ISignature`
  Digests one byte of a message for signing or verification purposes.

  Specified by:
    `update` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Parameters:
    `b` - the message byte to digest.
  Throws:
    `java.lang.IllegalStateException` - if this instance was not setup for signature generation/verification.

### update

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

  Description copied from interface: `ISignature`
  Digests a sequence of bytes from a message for signing or verification purposes.

  Specified by:
    `update` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Parameters:
    `buffer` - the byte sequence to consider.
    `offset` - the byte poisition in `buffer` of the first byte to consider.
    `length` - the number of bytes in `buffer` starting from the byte at index `offset` to digest.
  Throws:
    `java.lang.IllegalStateException` - if this instance was not setup for signature generation/verification.

### sign

    public java.lang.Object sign()

  Description copied from interface: `ISignature`
  Terminates a signature generation phase by digesting and processing the context of the underlying message digest algorithm instance.

  Specified by:
    `sign` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Returns:
    a `Object` representing the native output of the signature scheme implementation.
  Throws:
    `java.lang.IllegalStateException` - if this instance was not setup for signature generation.

### verify

    public boolean verify(java.lang.Object sig)

  Description copied from interface: `ISignature`
  Terminates a signature verification phase by digesting and processing the context of the underlying message digest algorithm instance.

  Specified by:
    `verify` in interface `ISignature`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Parameters:
    `signature` - a native signature object previously generated by an invocation of the `sign()` method.
  Returns:
    `true` iff the outpout of the verification phase confirms that the designated signature object has been generated using the corresponding public key of the recepient.
  Throws:
    `java.lang.IllegalStateException` - if this instance was not setup for signature verification.

### clone

    public abstract java.lang.Object clone()

  Description copied from interface: `ISignature`
  Returns a clone copy of this instance.
  Specified by:
    `clone` in interface `ISignature`
  Overrides:
    `clone` in class `java.lang.Object`
  Following copied from interface: `gnu.crypto.sig.ISignature`
  Returns:
    a clone copy of this instance.

### setupForVerification

    protected abstract void setupForVerification(java.security.PublicKey key)
                                          throws java.lang.IllegalArgumentException

### setupForSigning

    protected abstract void setupForSigning(java.security.PrivateKey key)
                                     throws java.lang.IllegalArgumentException

### generateSignature

    protected abstract java.lang.Object generateSignature()
                                                   throws java.lang.IllegalStateException

### verifySignature

    protected abstract boolean verifySignature(java.lang.Object signature)
                                        throws java.lang.IllegalStateException

### init

    protected void init()

  Initialises the internal fields of this instance.

### nextRandomBytes

    protected void nextRandomBytes(byte[] buffer)

  Fills the designated byte array with random data.
  Parameters:
    `buffer` - the byte array to fill with random data.

Overview | Package | Class | Tree | Deprecated | Index | Help
| For the latest news and information visit The GNU Crypto project
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright ©2001-2002 Free Software Foundation, Inc.. All Rights Reserved.