Update AesKeyProducer.java (#4211)

This commit is contained in:
rtm516 2023-10-15 21:51:06 +01:00 committed by GitHub
parent 3fa35b2cb9
commit 6b67e43f84
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -55,19 +55,20 @@ public final class AesKeyProducer implements KeyProducer {
} }
private SecureRandom secureRandom() throws NoSuchAlgorithmException { private SecureRandom secureRandom() throws NoSuchAlgorithmException {
try {
// use Windows-PRNG for windows (default impl is SHA1PRNG) // use Windows-PRNG for windows (default impl is SHA1PRNG)
if (System.getProperty("os.name").startsWith("Windows")) { if (System.getProperty("os.name").startsWith("Windows")) {
return SecureRandom.getInstance("Windows-PRNG"); return SecureRandom.getInstance("Windows-PRNG");
} else { } else {
try {
// NativePRNG (which should be the default on unix-systems) can still block your // NativePRNG (which should be the default on unix-systems) can still block your
// system. Even though it isn't as bad as NativePRNGBlocking, we still try to // system. Even though it isn't as bad as NativePRNGBlocking, we still try to
// prevent that if possible // prevent that if possible
return SecureRandom.getInstance("NativePRNGNonBlocking"); return SecureRandom.getInstance("NativePRNGNonBlocking");
}
} catch (NoSuchAlgorithmException ignored) { } catch (NoSuchAlgorithmException ignored) {
// at this point we just have to go with the default impl even if it blocks // Fall back to the default impl as we couldn't load any others
return new SecureRandom(); return new SecureRandom();
} }
} }
} }
}