@@ -0,0 +1,2657 @@
+package com.m4gik;%0A%0A/**%0A * The basic visible methods of any hash algorithm.%0A * %3Cp%3E%0A * A hash (or message digest) algorithm produces its output by iterating a basic%0A * compression function on blocks of data.%0A */%0Apublic interface IMessageDigest extends Cloneable %7B%0A    /**%0A     * Returns the algorithm's (inner) block size in bytes.%0A     * %0A     * @return the algorithm's inner block size in bytes.%0A     */%0A    int blockSize();%0A%0A    /**%0A     * Returns a clone copy of this instance.%0A     * %0A     * @return a clone copy of this instance.%0A     */%0A    Object clone();%0A%0A    /**%0A     * Completes the message digest by performing final operations such as%0A     * padding and resetting the instance.%0A     * %0A     * @return the array of bytes representing the hash value.%0A     */%0A    byte%5B%5D digest();%0A%0A    /**%0A     * Returns the output length in bytes of this message digest algorithm.%0A     * %0A     * @return the output length in bytes of this message digest algorithm.%0A     */%0A    int hashSize();%0A%0A    /**%0A     * Returns the canonical name of this algorithm.%0A     * %0A     * @return the canonical name of this instance.%0A     */%0A    String name();%0A%0A    /**%0A     * Resets the current context of this instance clearing any eventually%0A     * cached intermediary values.%0A     */%0A    void reset();%0A%0A    /**%0A     * A basic test. Ensures that the digest of a pre-determined message is%0A     * equal to a known pre-computed value.%0A     * %0A     * @return %3Ccode%3Etrue%3C/code%3E if the implementation passes a basic self-test.%0A     *         Returns %3Ccode%3Efalse%3C/code%3E otherwise.%0A     */%0A    boolean selfTest();%0A%0A    /**%0A     * Continues a message digest operation using the input byte.%0A     * %0A     * @param b%0A     *            the input byte to digest.%0A     */%0A    void update(byte b);%0A%0A    /**%0A     * Continues a message digest operation, by filling the buffer, processing%0A     * data in the algorithm's HASH_SIZE-bit block(s), updating the context and%0A     * count, and buffering the remaining bytes in buffer for the next%0A     * operation.%0A     * %0A     * @param in%0A     *            the input block.%0A     */%0A    void update(byte%5B%5D in);%0A%0A    /**%0A     * Continues a message digest operation, by filling the buffer, processing%0A     * data in the algorithm's HASH_SIZE-bit block(s), updating the context and%0A     * count, and buffering the remaining bytes in buffer for the next%0A     * operation.%0A     * %0A     * @param in%0A     *            the input block.%0A     * @param offset%0A     *            start of meaningful bytes in input block.%0A     * @param length%0A     *            number of bytes, in input block, to consider.%0A     */%0A    void update(byte%5B%5D in, int offset, int length);%0A%7D

Create interface for digest the given message