package org.bouncycastle.crypto;

import java.math.BigInteger;

interface for classes implementing algorithms modeled similar to the Digital Signature Alorithm.
/** * interface for classes implementing algorithms modeled similar to the Digital Signature Alorithm. */
public interface DSA {
initialise the signer for signature generation or signature verification.
Params:
  • forSigning – true if we are generating a signature, false otherwise.
  • param – key parameters for signature generation.
/** * initialise the signer for signature generation or signature * verification. * * @param forSigning true if we are generating a signature, false * otherwise. * @param param key parameters for signature generation. */
public void init(boolean forSigning, CipherParameters param);
sign the passed in message (usually the output of a hash function).
Params:
  • message – the message to be signed.
Returns:two big integers representing the r and s values respectively.
/** * sign the passed in message (usually the output of a hash function). * * @param message the message to be signed. * @return two big integers representing the r and s values respectively. */
public BigInteger[] generateSignature(byte[] message);
verify the message message against the signature values r and s.
Params:
  • message – the message that was supposed to have been signed.
  • r – the r signature value.
  • s – the s signature value.
/** * verify the message message against the signature values r and s. * * @param message the message that was supposed to have been signed. * @param r the r signature value. * @param s the s signature value. */
public boolean verifySignature(byte[] message, BigInteger r, BigInteger s); }