diff options
author | Casey Marshall <rsdio@metastatic.org> | 2003-02-13 17:00:22 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-02-13 17:00:22 +0000 |
commit | 894c84e4d9cf6e9880474b0a0681d03fe7a54209 (patch) | |
tree | 46b6e2f9f7cc5a17f1568153356d161b709e18b3 /libjava/java/security/SecureRandom.java | |
parent | 06b5f091339f78720b68c548e4153fb68002e998 (diff) | |
download | gcc-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.java | 8 |
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); } /** |