commit | ab6d7714b47c04cc4bd812b32e6a6370181a06e4 | [log] [tgz] |
---|---|---|
author | Kenny Root <kroot@google.com> | Thu Aug 15 15:17:27 2013 -0700 |
committer | Kenny Root <kroot@google.com> | Thu Aug 15 22:38:40 2013 +0000 |
tree | 13ab1d06404220fa16c79e12b4ae8a372ee72164 | |
parent | a37fb255a1993e835eea8c934205b1e568a1271c [diff] |
Make sure seed values use full range (cherry picked from commit 004435719afbe62d7ce6b39d69181b5dd801d598) Bug: 6642616 Change-Id: I773dd31d92207151df05122920170851fa021fd5
diff --git a/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java index 5760906..5c0e328 100644 --- a/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java +++ b/luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java
@@ -300,6 +300,11 @@ updateSeed(getRandomBytes(DIGEST_LENGTH)); nextBIndex = HASHBYTES_TO_USE; + // updateSeed(...) updates where the last word of the seed is, so we + // have to read it again. + lastWord = seed[BYTES_OFFSET] == 0 ? 0 + : (seed[BYTES_OFFSET] + extrabytes) >> 3 - 1; + } else if (state == SET_SEED) { System.arraycopy(seed, HASH_OFFSET, copies, HASHCOPY_OFFSET,