Home | History | Annotate | Download | only in crypto
      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      */
     14     public void init(boolean forSigning, CipherParameters param);
     15 
     16     /**
     17      * update the internal digest with the byte b
     18      */
     19     public void update(byte b);
     20 
     21     /**
     22      * update the internal digest with the byte array in
     23      */
     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      */
     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      */
     37     public boolean verifySignature(byte[] signature);
     38 
     39     /**
     40      * reset the internal state
     41      */
     42     public void reset();
     43 }
     44