aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/security/SecureRandom.java
diff options
context:
space:
mode:
authorCasey Marshall <rsdio@metastatic.org>2003-02-13 17:00:22 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-02-13 17:00:22 +0000
commit894c84e4d9cf6e9880474b0a0681d03fe7a54209 (patch)
tree46b6e2f9f7cc5a17f1568153356d161b709e18b3 /libjava/java/security/SecureRandom.java
parent06b5f091339f78720b68c548e4153fb68002e998 (diff)
downloadgcc-894c84e4d9cf6e9880474b0a0681d03fe7a54209.zip
gcc-894c84e4d9cf6e9880474b0a0681d03fe7a54209.tar.gz
gcc-894c84e4d9cf6e9880474b0a0681d03fe7a54209.tar.bz2
re PR libgcj/9271 (Severe bias in java.security.SecureRandom)
2003-02-13 Casey Marshall <rsdio@metastatic.org> PR libgcj/9271: * java/security/SecureRandom.java (next): Avoid bias in results. From-SVN: r62851
Diffstat (limited to 'libjava/java/security/SecureRandom.java')
-rw-r--r--libjava/java/security/SecureRandom.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/libjava/java/security/SecureRandom.java b/libjava/java/security/SecureRandom.java
index a0b7f95..d9ac153 100644
--- a/libjava/java/security/SecureRandom.java
+++ b/libjava/java/security/SecureRandom.java
@@ -1,5 +1,5 @@
/* SecureRandom.java --- Secure Random class implmentation
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -36,6 +36,7 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.security;
+
import java.io.Serializable;
import java.util.Random;
import java.util.Enumeration;
@@ -358,9 +359,10 @@ public class SecureRandom extends Random
int ret = 0;
for (int i = 0; i < tmp.length; i++)
- ret |= tmp[i] << (8 * i);
+ ret |= (tmp[i] & 0xFF) << (8 * i);
- return ret;
+ long mask = (1L << numBits) - 1;
+ return (int) (ret & mask);
}
/**