Status fields:
| creation_ts: | 2008-03-30 15:04 |
|---|---|
| component: | native |
| version: | default branch |
| rep_platform: | All |
| op_sys: | All |
| bug_status: | RESOLVED |
| resolution: | FIXED |
| reporter: | twisti@complang.tuwien.ac.at |
This simple testcase:
SecureRandom sr = new SecureRandom();
byte[] seed = new byte[20];
sr.nextBytes(seed);
throws this exception with OpenJDK libraries:
$ cacao -Djava.security.egd=file:/dev/random test
LOG: [0x30021cf0] JVM_InitializeSocketLibrary: IMPLEMENT ME!
Exception in thread "main" java.lang.InternalError: URLSeedGenerator file:/dev/random
generated exception: Invalid argument
at
sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.java:471)
at sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:140)
at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:135)
at sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:131)
at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:188)
at java.security.SecureRandom.nextBytes(SecureRandom.java:450)
at test.main(test.java:69)
I investigated this bug more deeply and this is a more common problem: we don't use OpenJDK's HPI. I have already started to fix that. A patch is coming soon.
This changeset: http://mips.complang.tuwien.ac.at/hg/cacao/rev/fceac7c38a1b adds the initialization and usage of the HPI. The bug is fixed.