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