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
1 changed files with 9 additions and 8 deletions

View File

@ -55,19 +55,20 @@ public final class AesKeyProducer implements KeyProducer {
} }
private SecureRandom secureRandom() throws NoSuchAlgorithmException { private SecureRandom secureRandom() throws NoSuchAlgorithmException {
// use Windows-PRNG for windows (default impl is SHA1PRNG) try {
if (System.getProperty("os.name").startsWith("Windows")) { // use Windows-PRNG for windows (default impl is SHA1PRNG)
return SecureRandom.getInstance("Windows-PRNG"); if (System.getProperty("os.name").startsWith("Windows")) {
} else { return SecureRandom.getInstance("Windows-PRNG");
try { } else {
// 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) {
// at this point we just have to go with the default impl even if it blocks
return new SecureRandom();
} }
} catch (NoSuchAlgorithmException ignored) {
// Fall back to the default impl as we couldn't load any others
return new SecureRandom();
} }
} }
} }