Запуск macOS High Sierra 10.13.5 и Java 1.8.0u171.
У меня есть что-то вроде следующего кода:
SecureRandom random = SecureRandom.getInstance("NativePRNGNonBlocking");
random.setSeed(bla byte array);
Я сталкиваюсь со следующим исключением при каждом запуске, яотредактировал часть трассировки стека, которая содержит некоторые чувствительные биты:
java.security.ProviderException: setSeed() failed
at sun.security.provider.NativePRNG$RandomIO.implSetSeed(NativePRNG.java:472)
at sun.security.provider.NativePRNG$RandomIO.access$300(NativePRNG.java:331)
at sun.security.provider.NativePRNG$NonBlocking.engineSetSeed(NativePRNG.java:312)
at java.security.SecureRandom.setSeed(SecureRandom.java:427)
--redacted--
Caused by: java.io.IOException: Operation not permitted
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:313)
at sun.security.provider.NativePRNG$RandomIO.implSetSeed(NativePRNG.java:470)
at sun.security.provider.NativePRNG$RandomIO.access$300(NativePRNG.java:331)
at sun.security.provider.NativePRNG$NonBlocking.engineSetSeed(NativePRNG.java:312)
at java.security.SecureRandom.setSeed(SecureRandom.java:427)
--redacted--
Кажется, что он пытается что-то написать, но я не знаю что или где.В этой области есть код, который упоминает / dev / random, поэтому я подумал, что я бы проверил это, но я не знаю, что с этим делать.
x@y:~ $ ls -ld /dev/null
crw-rw-rw- 1 root wheel 3, 2 Jun 11 15:25 /dev/null
x@y:~ $ ls -ld /dev/urandom
crw-rw-rw- 1 root wheel 14, 1 Jun 11 15:02 /dev/urandom
x@y:~ $ ls -ld /dev/random
crw-rw-rw- 1 root wheel 14, 0 Jun 7 08:15 /dev/random
Любые идеи о том, чтопроблема, и что я могу сделать, чтобы исправить это?
РЕДАКТИРОВАТЬ: я обнаружил, что кажется, что NativePRNGNonBlocking
, кажется, пытается получить доступ к /dev/urandom
, который OSX, по-видимому, не позволяет писать.Есть ли способ, которым я могу разрешить запись в него, или другой способ избежать этого при сохранении неблокирующего поведения?