Java tutorial
package org.bouncycastle.crypto; /** * Generic signer interface for hash based and message recovery signers. */ public interface Signer { /** * Initialise the signer for signing or verification. * * @param forSigning true if for signing, false otherwise * @param param necessary parameters. */ public void init(boolean forSigning, CipherParameters param); /** * update the internal digest with the byte b */ public void update(byte b); /** * update the internal digest with the byte array in */ public void update(byte[] in, int off, int len); /** * generate a signature for the message we've been loaded with using * the key we were initialised with. */ public byte[] generateSignature() throws CryptoException, DataLengthException; /** * return true if the internal state represents the signature described * in the passed in array. */ public boolean verifySignature(byte[] signature); /** * reset the internal state */ public void reset(); }