summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2013-08-15 15:17:27 -0700
committerKenny Root <kroot@google.com>2013-09-05 10:35:44 -0700
commit341cfb18f9ef761eddbc87859583e19f09fbbfdd (patch)
treee50d9815ca359dd6891fde6c36d7176ab1efe984
parent44e8930b48015aacbad027c5a8d9a4c7e00e329e (diff)
downloadlibcore-341cfb18f9ef761eddbc87859583e19f09fbbfdd.zip
libcore-341cfb18f9ef761eddbc87859583e19f09fbbfdd.tar.gz
libcore-341cfb18f9ef761eddbc87859583e19f09fbbfdd.tar.bz2
Make sure seed values use full range
(cherry picked from commit 004435719afbe62d7ce6b39d69181b5dd801d598) Bug: 6642616 Change-Id: I773dd31d92207151df05122920170851fa021fd5
-rw-r--r--luni/src/main/java/org/apache/harmony/security/provider/crypto/SHA1PRNG_SecureRandomImpl.java5
1 files changed, 5 insertions, 0 deletions
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 2420fbe..4d99d62 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
@@ -288,6 +288,11 @@ public class SHA1PRNG_SecureRandomImpl extends SecureRandomSpi implements Serial
updateSeed(RandomBitsSupplier.getRandomBits(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,