finished last of the compile errors
[org.ibex.crypto.git] / src / org / ibex / crypto / Digest.java
index 3b71fe8..c487ae8 100644 (file)
@@ -14,7 +14,7 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+ * AUTHORS OR COPYRIGHT HOLDER.S BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  * DEALINGS IN THE SOFTWARE.
@@ -26,108 +26,63 @@ package org.ibex.crypto;
  * base implementation of MD4 family style digest as outlined in
  * "Handbook of Applied Cryptography", pages 344 - 347.
  */
-abstract class Digest
-{
+public abstract class Digest {
     private byte[]  xBuf;
     private int     xBufOff;
-
     private long    byteCount;
 
-    /**
-     * Standard constructor
-     */
-    protected Digest()
-    {
-        xBuf = new byte[4];
-        xBufOff = 0;
-    }
-
-    public void update(
-        byte in)
-    {
+    protected Digest() { xBuf = new byte[4]; xBufOff = 0; }
+    public void update(byte in) {
         xBuf[xBufOff++] = in;
-
-        if (xBufOff == xBuf.length)
-        {
+        if (xBufOff == xBuf.length) {
             processWord(xBuf, 0);
             xBufOff = 0;
         }
-
         byteCount++;
     }
 
-    public void update(
-        byte[]  in,
-        int     inOff,
-        int     len)
-    {
-        //
+    public void update(byte[] in, int inOff, int len) {
         // fill the current word
-        //
-        while ((xBufOff != 0) && (len > 0))
-        {
+        while ((xBufOff != 0) && (len > 0)) {
             update(in[inOff]);
-
             inOff++;
             len--;
         }
 
-        //
         // process whole words.
-        //
-        while (len > xBuf.length)
-        {
+        while (len > xBuf.length) {
             processWord(in, inOff);
-
             inOff += xBuf.length;
             len -= xBuf.length;
             byteCount += xBuf.length;
         }
 
-        //
         // load in the remainder.
-        //
-        while (len > 0)
-        {
+        while (len > 0) {
             update(in[inOff]);
-
             inOff++;
             len--;
         }
     }
 
-    protected void finish()
-    {
+    protected void finish() {
         long    bitLength = (byteCount << 3);
-
-        //
         // add the pad bytes.
-        //
         update((byte)128);
-
-        while (xBufOff != 0)
-        {
-            update((byte)0);
-        }
-
+        while (xBufOff != 0) update((byte)0);
         processLength(bitLength);
-
         processBlock();
     }
 
-    public void reset()
-    {
+    public void reset() {
         byteCount = 0;
-
         xBufOff = 0;
-        for ( int i = 0; i < xBuf.length; i++ ) {
-            xBuf[i] = 0;
-        }
+        for ( int i = 0; i < xBuf.length; i++) xBuf[i] = 0;
     }
 
     protected abstract void processWord(byte[] in, int inOff);
-
     protected abstract void processLength(long bitLength);
-
     protected abstract void processBlock();
+    public abstract int getDigestSize();
+    public abstract void doFinal(byte[] out, int outOff);
 }