--- a/jdk/src/share/classes/sun/security/provider/SHA5.java Tue May 08 11:16:36 2012 -0700
+++ b/jdk/src/share/classes/sun/security/provider/SHA5.java Tue May 08 17:57:48 2012 -0700
@@ -82,10 +82,10 @@
};
// buffer used by implCompress()
- private final long[] W;
+ private long[] W;
// state of this object
- private final long[] state;
+ private long[] state;
// initial state value. different between SHA-384 and SHA-512
private final long[] initialHashes;
@@ -101,16 +101,6 @@
implReset();
}
- /**
- * Creates a SHA object with state (for cloning)
- */
- SHA5(SHA5 base) {
- super(base);
- this.initialHashes = base.initialHashes;
- this.state = base.state.clone();
- this.W = new long[80];
- }
-
final void implReset() {
System.arraycopy(initialHashes, 0, state, 0, state.length);
}
@@ -255,6 +245,13 @@
state[7] += h;
}
+ public Object clone() throws CloneNotSupportedException {
+ SHA5 copy = (SHA5) super.clone();
+ copy.state = copy.state.clone();
+ copy.W = new long[80];
+ return copy;
+ }
+
/**
* SHA-512 implementation class.
*/
@@ -270,14 +267,6 @@
public SHA512() {
super("SHA-512", 64, INITIAL_HASHES);
}
-
- private SHA512(SHA512 base) {
- super(base);
- }
-
- public Object clone() {
- return new SHA512(this);
- }
}
/**
@@ -295,14 +284,5 @@
public SHA384() {
super("SHA-384", 48, INITIAL_HASHES);
}
-
- private SHA384(SHA384 base) {
- super(base);
- }
-
- public Object clone() {
- return new SHA384(this);
- }
}
-
}