mirrored from https://www.bouncycastle.org/repositories/bc-java
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
Issue: SecureRandom instance initialization gets failed with NullPointerException
Environment:
Configured the java security provider as BouncyCastle [org.bouncycastle.jce.provider.BouncyCastleProvider] after that i tried to run my below java code (OpenJDK Java 7) and got the following exception
Note: Removed all other security provides from '/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.161.x86_64/jre/lib/security/java.security'
Java Code:
import javax.crypto.SecretKeyFactory;
import sun.security.jca.GetInstance;
import sun.security.jca.GetInstance.Instance;
import sun.security.jca.ProviderList;
import sun.security.jca.Providers;
import java.security.Provider;
import java.util.List;
import java.security.Provider.Service;
import java.security.*;
public class Test {
public static void main(String[] args) {
try {
SecureRandom random = new SecureRandom();
} catch(Exception e){
e.printStackTrace();
}
}
}
Thread Trace :
(Suspended (entry into method <init> in DRBG$Default))
DRBG$Default.<init>() line: 185
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 57
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
Constructor.newInstance(Object...) line: 526
Provider$Service.newInstance(Object) line: 1237
GetInstance.getInstance(Service, Class<?>) line: 236
GetInstance.getInstance(String, Class<?>, String) line: 164
SecureRandom.getInstance(String) line: 287
SecureRandom.getDefaultPRNG(boolean, byte[]) line: 204
SecureRandom.<init>() line: 161
DRBG.createCoreSecureRandom() line: 125
DRBG.createInitialEntropySource() line: 113
DRBG.access$400() line: 25
DRBG$HybridSecureRandom.<init>() line: 260
DRBG.createBaseRandom(boolean) line: 168
DRBG.access$200(boolean) line: 25
DRBG$Default.<clinit>() line: 182
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 57
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
Constructor.newInstance(Object...) line: 526
Provider$Service.newInstance(Object) line: 1237
GetInstance.getInstance(Service, Class<?>) line: 236
GetInstance.getInstance(String, Class<?>, String) line: 164
SecureRandom.getInstance(String) line: 287
SecureRandom.getDefaultPRNG(boolean, byte[]) line: 204
SecureRandom.<init>() line: 161
Test.main(Test.java:13)
Stack Trace:
Exception in thread "main" java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.security.Provider$Service.newInstance(Provider.java:1237)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
at java.security.SecureRandom.getInstance(SecureRandom.java:287)
at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:204)
at java.security.SecureRandom.<init>(SecureRandom.java:161)
at Test.main(Test.java:13)
Caused by: java.lang.NullPointerException
at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.engineGenerateSeed(DRBG.java:200)
at java.security.SecureRandom.generateSeed(SecureRandom.java:528)
at org.bouncycastle.jcajce.provider.drbg.DRBG$HybridSecureRandom.<init>(DRBG.java:267)
at org.bouncycastle.jcajce.provider.drbg.DRBG.createBaseRandom(DRBG.java:168)
at org.bouncycastle.jcajce.provider.drbg.DRBG.access$200(DRBG.java:25)
at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.<clinit>(DRBG.java:182)
... 11 more
After Configuring the entropy system property as 'org.bouncycastle.crypto.prng.BasicEntropySourceProvider' :
export org.bouncycastle.drbg.entropysource=org.bouncycastle.crypto.prng.BasicEntropySourceProvider
Got the below error,
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_161]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_161]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_161]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_161]
at java.security.Provider$Service.newInstance(Provider.java:1237) [rt.jar:1.7.0_161]
at sun.security.jca.GetInstance.getInstance(GetInstance.java:236) [rt.jar:1.7.0_161]
at sun.security.jca.GetInstance.getInstance(GetInstance.java:164) [rt.jar:1.7.0_161]
at java.security.SecureRandom.getInstance(SecureRandom.java:287) [rt.jar:1.7.0_161]
at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:204) [rt.jar:1.7.0_161]
at java.security.SecureRandom.<init>(SecureRandom.java:161) [rt.jar:1.7.0_161]
at Test.main(Test.java:13)
Caused by: java.lang.IllegalStateException: entropy source org.bouncycastle.crypto.prng.BasicEntropySourceProvider not created: org.bouncycastle.crypto.prng.BasicEntropySourceProvider
at org.bouncycastle.jcajce.provider.drbg.DRBG$3.run(DRBG.java:145)
at org.bouncycastle.jcajce.provider.drbg.DRBG$3.run(DRBG.java:134)
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_161]
at org.bouncycastle.jcajce.provider.drbg.DRBG.createEntropySource(DRBG.java:133)
at org.bouncycastle.jcajce.provider.drbg.DRBG.createBaseRandom(DRBG.java:155)
at org.bouncycastle.jcajce.provider.drbg.DRBG.access$200(DRBG.java:25)
at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.<clinit>(DRBG.java:182)
... 16 more
Caused by: java.lang.InstantiationException: org.bouncycastle.crypto.prng.BasicEntropySourceProvider
at java.lang.Class.newInstance(Class.java:368) [rt.jar:1.7.0_161]
at org.bouncycastle.jcajce.provider.drbg.DRBG$3.run(DRBG.java:141)
... 22 more
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels