From ccc9a87e8c4ad5091501d9fb55d5c560931bfca3 Mon Sep 17 00:00:00 2001 From: jrandom <jrandom> Date: Fri, 7 Jul 2006 18:59:16 +0000 Subject: [PATCH] unnecessary --- core/java/src/gnu/crypto/hash/BaseHash.java | 198 ------------------ .../src/gnu/crypto/hash/IMessageDigest.java | 141 ------------- 2 files changed, 339 deletions(-) delete mode 100644 core/java/src/gnu/crypto/hash/BaseHash.java delete mode 100644 core/java/src/gnu/crypto/hash/IMessageDigest.java diff --git a/core/java/src/gnu/crypto/hash/BaseHash.java b/core/java/src/gnu/crypto/hash/BaseHash.java deleted file mode 100644 index 217b0ab446..0000000000 --- a/core/java/src/gnu/crypto/hash/BaseHash.java +++ /dev/null @@ -1,198 +0,0 @@ -package gnu.crypto.hash; - -// ---------------------------------------------------------------------------- -// $Id: BaseHash.java,v 1.10 2005/10/06 04:24:14 rsdio Exp $ -// -// Copyright (C) 2001, 2002, Free Software Foundation, Inc. -// -// This file is part of GNU Crypto. -// -// GNU Crypto is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2, or (at your option) -// any later version. -// -// GNU Crypto is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; see the file COPYING. If not, write to the -// -// Free Software Foundation Inc., -// 51 Franklin Street, Fifth Floor, -// Boston, MA 02110-1301 -// USA -// -// Linking this library statically or dynamically with other modules is -// making a combined work based on this library. Thus, the terms and -// conditions of the GNU General Public License cover the whole -// combination. -// -// As a special exception, the copyright holders of this library give -// you permission to link this library with independent modules to -// produce an executable, regardless of the license terms of these -// independent modules, and to copy and distribute the resulting -// executable under terms of your choice, provided that you also meet, -// for each linked independent module, the terms and conditions of the -// license of that module. An independent module is a module which is -// not derived from or based on this library. If you modify this -// library, you may extend this exception to your version of the -// library, but you are not obligated to do so. If you do not wish to -// do so, delete this exception statement from your version. -// ---------------------------------------------------------------------------- - -/** - * <p>A base abstract class to facilitate hash implementations.</p> - * - * @version $Revision: 1.10 $ - */ -public abstract class BaseHash implements IMessageDigest { - - // Constants and variables - // ------------------------------------------------------------------------- - - /** The canonical name prefix of the hash. */ - protected String name; - - /** The hash (output) size in bytes. */ - protected int hashSize; - - /** The hash (inner) block size in bytes. */ - protected int blockSize; - - /** Number of bytes processed so far. */ - protected long count; - - /** Temporary input buffer. */ - protected byte[] buffer; - - // Constructor(s) - // ------------------------------------------------------------------------- - - /** - * <p>Trivial constructor for use by concrete subclasses.</p> - * - * @param name the canonical name prefix of this instance. - * @param hashSize the block size of the output in bytes. - * @param blockSize the block size of the internal transform. - */ - protected BaseHash(String name, int hashSize, int blockSize) { - super(); - - this.name = name; - this.hashSize = hashSize; - this.blockSize = blockSize; - this.buffer = new byte[blockSize]; - - resetContext(); - } - - // Class methods - // ------------------------------------------------------------------------- - - // Instance methods - // ------------------------------------------------------------------------- - - // IMessageDigest interface implementation --------------------------------- - - public String name() { - return name; - } - - public int hashSize() { - return hashSize; - } - - public int blockSize() { - return blockSize; - } - - public void update(byte b) { - // compute number of bytes still unhashed; ie. present in buffer - int i = (int)(count % blockSize); - count++; - buffer[i] = b; - if (i == (blockSize - 1)) { - transform(buffer, 0); - } - } - - public void update(byte[] b) { - update(b, 0, b.length); - } - - public void update(byte[] b, int offset, int len) { - int n = (int)(count % blockSize); - count += len; - int partLen = blockSize - n; - int i = 0; - - if (len >= partLen) { - System.arraycopy(b, offset, buffer, n, partLen); - transform(buffer, 0); - for (i = partLen; i + blockSize - 1 < len; i+= blockSize) { - transform(b, offset + i); - } - n = 0; - } - - if (i < len) { - System.arraycopy(b, offset + i, buffer, n, len - i); - } - } - - public byte[] digest() { - byte[] tail = padBuffer(); // pad remaining bytes in buffer - update(tail, 0, tail.length); // last transform of a message - byte[] result = getResult(); // make a result out of context - - reset(); // reset this instance for future re-use - - return result; - } - - public void reset() { // reset this instance for future re-use - count = 0L; - for (int i = 0; i < blockSize; ) { - buffer[i++] = 0; - } - - resetContext(); - } - - // methods to be implemented by concrete subclasses ------------------------ - - public abstract Object clone(); - - public abstract boolean selfTest(); - - /** - * <p>Returns the byte array to use as padding before completing a hash - * operation.</p> - * - * @return the bytes to pad the remaining bytes in the buffer before - * completing a hash operation. - */ - protected abstract byte[] padBuffer(); - - /** - * <p>Constructs the result from the contents of the current context.</p> - * - * @return the output of the completed hash operation. - */ - protected abstract byte[] getResult(); - - /** Resets the instance for future re-use. */ - protected abstract void resetContext(); - - /** - * <p>The block digest transformation per se.</p> - * - * @param in the <i>blockSize</i> long block, as an array of bytes to digest. - * @param offset the index where the data to digest is located within the - * input buffer. - */ - protected abstract void transform(byte[] in, int offset); -} diff --git a/core/java/src/gnu/crypto/hash/IMessageDigest.java b/core/java/src/gnu/crypto/hash/IMessageDigest.java deleted file mode 100644 index 1b078485e6..0000000000 --- a/core/java/src/gnu/crypto/hash/IMessageDigest.java +++ /dev/null @@ -1,141 +0,0 @@ -package gnu.crypto.hash; - -// ---------------------------------------------------------------------------- -// $Id: IMessageDigest.java,v 1.11 2005/10/06 04:24:14 rsdio Exp $ -// -// Copyright (C) 2001, 2002, Free Software Foundation, Inc. -// -// This file is part of GNU Crypto. -// -// GNU Crypto is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2, or (at your option) -// any later version. -// -// GNU Crypto is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; see the file COPYING. If not, write to the -// -// Free Software Foundation Inc., -// 51 Franklin Street, Fifth Floor, -// Boston, MA 02110-1301 -// USA -// -// Linking this library statically or dynamically with other modules is -// making a combined work based on this library. Thus, the terms and -// conditions of the GNU General Public License cover the whole -// combination. -// -// As a special exception, the copyright holders of this library give -// you permission to link this library with independent modules to -// produce an executable, regardless of the license terms of these -// independent modules, and to copy and distribute the resulting -// executable under terms of your choice, provided that you also meet, -// for each linked independent module, the terms and conditions of the -// license of that module. An independent module is a module which is -// not derived from or based on this library. If you modify this -// library, you may extend this exception to your version of the -// library, but you are not obligated to do so. If you do not wish to -// do so, delete this exception statement from your version. -// ---------------------------------------------------------------------------- - -/** - * <p>The basic visible methods of any hash algorithm.</p> - * - * <p>A hash (or message digest) algorithm produces its output by iterating a - * basic compression function on blocks of data.</p> - * - * @version $Revision: 1.11 $ - */ -public interface IMessageDigest extends Cloneable { - - // Constants - // ------------------------------------------------------------------------- - - // Methods - // ------------------------------------------------------------------------- - - /** - * <p>Returns the canonical name of this algorithm.</p> - * - * @return the canonical name of this instance. - */ - String name(); - - /** - * <p>Returns the output length in bytes of this message digest algorithm.</p> - * - * @return the output length in bytes of this message digest algorithm. - */ - int hashSize(); - - /** - * <p>Returns the algorithm's (inner) block size in bytes.</p> - * - * @return the algorithm's inner block size in bytes. - */ - int blockSize(); - - /** - * <p>Continues a message digest operation using the input byte.</p> - * - * @param b the input byte to digest. - */ - void update(byte b); - - /** - * <p>Continues a message digest operation, by filling the buffer, processing - * data in the algorithm's HASH_SIZE-bit block(s), updating the context and - * count, and buffering the remaining bytes in buffer for the next - * operation.</p> - * - * @param in the input block. - */ - void update(byte[] in); - - /** - * <p>Continues a message digest operation, by filling the buffer, processing - * data in the algorithm's HASH_SIZE-bit block(s), updating the context and - * count, and buffering the remaining bytes in buffer for the next - * operation.</p> - * - * @param in the input block. - * @param offset start of meaningful bytes in input block. - * @param length number of bytes, in input block, to consider. - */ - void update(byte[] in, int offset, int length); - - /** - * <p>Completes the message digest by performing final operations such as - * padding and resetting the instance.</p> - * - * @return the array of bytes representing the hash value. - */ - byte[] digest(); - - /** - * <p>Resets the current context of this instance clearing any eventually cached - * intermediary values.</p> - */ - void reset(); - - /** - * <p>A basic test. Ensures that the digest of a pre-determined message is equal - * to a known pre-computed value.</p> - * - * @return <tt>true</tt> if the implementation passes a basic self-test. - * Returns <tt>false</tt> otherwise. - */ - boolean selfTest(); - - /** - * <p>Returns a clone copy of this instance.</p> - * - * @return a clone copy of this instance. - */ - Object clone(); -} -- GitLab