From 894c84e4d9cf6e9880474b0a0681d03fe7a54209 Mon Sep 17 00:00:00 2001 From: Casey Marshall Date: Thu, 13 Feb 2003 17:00:22 +0000 Subject: 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 --- libjava/java/security/SecureRandom.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libjava/java/security/SecureRandom.java') 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); } /** -- cgit v1.1