PatchSet 7233 Date: 2006/04/18 10:18:07 Author: guilhem Branch: HEAD Tag: (none) Log: VMSecureRandom fix.
Members: ChangeLog:1.4739->1.4740 libraries/clib/management/Classpath.c:1.9->1.10 libraries/javalib/vmspecific/java/security/VMSecureRandom.java:1.1->1.2 libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java:1.1->1.2 libraries/javalib/vmspecific/org/kaffe/security/Randomness.java:1.1->1.2 libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java:1.1->1.2 libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java:1.1->1.2 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.4739 kaffe/ChangeLog:1.4740 --- kaffe/ChangeLog:1.4739 Tue Apr 18 10:06:37 2006 +++ kaffe/ChangeLog Tue Apr 18 10:18:07 2006 @@ -1,5 +1,17 @@ 2006-04-18 Guilhem Lavaux <[EMAIL PROTECTED]> + * libraries/clib/management/Classpath.c: Renamed addClasspath and + prependClasspath. + + * libraries/javalib/vmspecific/java/security/VMSecureRandom.java, + libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java, + libraries/javalib/vmspecific/org/kaffe/security/Randomness.java, + libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java, + libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java: + Make use of /dev/urandom if it is available. + +2006-04-18 Guilhem Lavaux <[EMAIL PROTECTED]> + * kaffe/kaffevm/findInJar.c, kaffe/kaffevm/support.h (KaffeVM_addClasspath, KaffeVM_prependClasspath): Renamed to Index: kaffe/libraries/clib/management/Classpath.c diff -u kaffe/libraries/clib/management/Classpath.c:1.9 kaffe/libraries/clib/management/Classpath.c:1.10 --- kaffe/libraries/clib/management/Classpath.c:1.9 Wed Oct 19 20:10:38 2005 +++ kaffe/libraries/clib/management/Classpath.c Tue Apr 18 10:18:13 2006 @@ -25,7 +25,7 @@ char *s; s = checkPtr(stringJava2C(str)); - addClasspath(s); + KaffeVM_addClasspath(s); gc_free(s); } @@ -38,7 +38,7 @@ char *s; s = checkPtr(stringJava2C(str)); - prependClasspath(s); + KaffeVM_prependClasspath(s); gc_free(s); } Index: kaffe/libraries/javalib/vmspecific/java/security/VMSecureRandom.java diff -u kaffe/libraries/javalib/vmspecific/java/security/VMSecureRandom.java:1.1 kaffe/libraries/javalib/vmspecific/java/security/VMSecureRandom.java:1.2 --- kaffe/libraries/javalib/vmspecific/java/security/VMSecureRandom.java:1.1 Mon Apr 17 17:58:15 2006 +++ kaffe/libraries/javalib/vmspecific/java/security/VMSecureRandom.java Tue Apr 18 10:18:13 2006 @@ -41,6 +41,8 @@ import gnu.classpath.SystemProperties; import gnu.java.security.action.GetSecurityPropertyAction; +import org.kaffe.security.Randomness; +import org.kaffe.security.UnixRandomness; import java.net.URL; /** @@ -59,6 +61,18 @@ */ final class VMSecureRandom { + static private Randomness randomgen; + + static + { + try + { + randomgen = new UnixRandomness(); + } + catch (java.io.IOException e) + { + } + } /** * Generate a random seed. Implementations are free to generate @@ -77,6 +91,12 @@ if (offset < 0 || offset + length > buffer.length) throw new IndexOutOfBoundsException(); + if (randomgen != null) + { + randomgen.fill(buffer, offset, length); + return length; + } + Spinner[] spinners = new Spinner[8]; int n = 0x1; for (int i = 0; i < spinners.length; i++) @@ -131,4 +151,4 @@ running = false; } } -} \ No newline at end of file +} Index: kaffe/libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java diff -u kaffe/libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java:1.1 kaffe/libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java:1.2 --- kaffe/libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java:1.1 Wed Oct 19 20:16:10 2005 +++ kaffe/libraries/javalib/vmspecific/org/kaffe/security/LameRandomness.java Tue Apr 18 10:18:14 2006 @@ -35,7 +35,7 @@ * * @see kaffe.security.Randomness#fill() */ - public void fill(byte bits[]) + public void fill(byte bits[], int offset, int length) { new Random().nextBytes(bits); } Index: kaffe/libraries/javalib/vmspecific/org/kaffe/security/Randomness.java diff -u kaffe/libraries/javalib/vmspecific/org/kaffe/security/Randomness.java:1.1 kaffe/libraries/javalib/vmspecific/org/kaffe/security/Randomness.java:1.2 --- kaffe/libraries/javalib/vmspecific/org/kaffe/security/Randomness.java:1.1 Wed Oct 19 20:16:10 2005 +++ kaffe/libraries/javalib/vmspecific/org/kaffe/security/Randomness.java Tue Apr 18 10:18:14 2006 @@ -31,7 +31,7 @@ * * @param bits The array to fill with random bits. */ - public abstract void fill(byte bits[]); + public abstract void fill(byte bits[], int offset, int length); /** * @see java.lang.Object#toString() Index: kaffe/libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java diff -u kaffe/libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java:1.1 kaffe/libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java:1.2 --- kaffe/libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java:1.1 Wed Oct 19 20:16:10 2005 +++ kaffe/libraries/javalib/vmspecific/org/kaffe/security/UnixRandomness.java Tue Apr 18 10:18:14 2006 @@ -53,11 +53,11 @@ * * @see kaffe.security.Randomness#fill() */ - public synchronized void fill(byte bits[]) + public synchronized void fill(byte bits[], int offset, int length) { try { - this.dis.readFully(bits); + this.dis.readFully(bits, offset, length); } catch(IOException e) { Index: kaffe/libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java diff -u kaffe/libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java:1.1 kaffe/libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java:1.2 --- kaffe/libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java:1.1 Wed Oct 19 20:16:11 2005 +++ kaffe/libraries/javalib/vmspecific/org/kaffe/security/provider/SHA1PRNG.java Tue Apr 18 10:18:17 2006 @@ -151,7 +151,7 @@ * Fill the seed using the implementation specific source of * randomness. */ - impl.fill(this.seed); + impl.fill(this.seed, 0, SEED_SIZE); try { _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe