From: Casey Marshall Date: Thu, 13 Feb 2003 17:00:22 +0000 (+0000) Subject: re PR libgcj/9271 (Severe bias in java.security.SecureRandom) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=894c84e4d9cf6e9880474b0a0681d03fe7a54209;p=gcc.git re PR libgcj/9271 (Severe bias in java.security.SecureRandom) 2003-02-13 Casey Marshall PR libgcj/9271: * java/security/SecureRandom.java (next): Avoid bias in results. From-SVN: r62851 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 15391fc68f3..2f796255bf2 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2003-02-13 Casey Marshall + + PR libgcj/9271: + * java/security/SecureRandom.java (next): Avoid bias in results. + 2003-02-13 Michael * gnu/java/nio/FileChannelImpl.java diff --git a/libjava/java/security/SecureRandom.java b/libjava/java/security/SecureRandom.java index a0b7f95f397..d9ac153da2b 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); } /**