1 package org.bouncycastle.crypto;
2 
3 /**
4  * Generic signer interface for hash based and message recovery signers.
5  */
6 public interface Signer
7 {
8     /**
9      * Initialise the signer for signing or verification.
10      *
11      * @param forSigning true if for signing, false otherwise
12      * @param param necessary parameters.
13      */
init(boolean forSigning, CipherParameters param)14     public void init(boolean forSigning, CipherParameters param);
15 
16     /**
17      * update the internal digest with the byte b
18      */
update(byte b)19     public void update(byte b);
20 
21     /**
22      * update the internal digest with the byte array in
23      */
update(byte[] in, int off, int len)24     public void update(byte[] in, int off, int len);
25 
26     /**
27      * generate a signature for the message we've been loaded with using
28      * the key we were initialised with.
29      */
generateSignature()30     public byte[] generateSignature()
31         throws CryptoException, DataLengthException;
32 
33     /**
34      * return true if the internal state represents the signature described
35      * in the passed in array.
36      */
verifySignature(byte[] signature)37     public boolean verifySignature(byte[] signature);
38 
39     /**
40      * reset the internal state
41      */
reset()42     public void reset();
43 }
44