Java 密钥库中使用的BouncyCastleProvider导致堆栈溢出错误

Java 密钥库中使用的BouncyCastleProvider导致堆栈溢出错误,java,bouncycastle,keystore,Java,Bouncycastle,Keystore,使用BKS代替JKS似乎会导致堆栈溢出错误 我试图弄清楚为什么调用setKeyEntry会导致BouncyCastle的SecureRandom实现中断,以及如何修复它,有什么想法吗 我已使用Security.insertProviderAt(新的BouncyCastleProvider(),1)将BouncyCastleProvider安全提供程序列表插入到“第一”位置。BC版本1.57 KeyStore ks = KeyStore.getInstance("BKS", BouncyC

使用BKS代替JKS似乎会导致堆栈溢出错误

我试图弄清楚为什么调用setKeyEntry会导致BouncyCastle的SecureRandom实现中断,以及如何修复它,有什么想法吗


我已使用
Security.insertProviderAt(新的BouncyCastleProvider(),1)将BouncyCastleProvider安全提供程序列表插入到“第一”位置。BC版本1.57

    KeyStore ks = KeyStore.getInstance("BKS", BouncyCastleProvider.PROVIDER_NAME);
//  KeyStore ks = KeyStore.getInstance("JKS"); // this works
    ks.load(null, null);
    ks.setKeyEntry("serverEC", privateKey, "password".toCharArray(), new X509Certificate[]{ certEC, caCertEC });
我得到的stacktrace是:

java.lang.StackOverflowError
    at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.engineSetSeed(Unknown Source)
    at java.security.SecureRandom.setSeed(SecureRandom.java:427)
    at org.bouncycastle.crypto.prng.SP800SecureRandom.setSeed(Unknown Source)
    at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.engineSetSeed(Unknown Source)
    at java.security.SecureRandom.setSeed(SecureRandom.java:427)
    at org.bouncycastle.crypto.prng.SP800SecureRandom.setSeed(Unknown Source)
    at org.bouncycastle.jcajce.provider.drbg.DRBG$Default.engineSetSeed(Unknown Source)
    at java.security.SecureRandom.setSeed(SecureRandom.java:427)
    at org.bouncycastle.crypto.prng.SP800SecureRandom.setSeed(Unknown Source)
....

“我已使用Security.insertProviderAt(新的BouncyCastleProvider(),1);”将BouncyCastleProvider安全提供程序列表插入到“第一”位置。”。如果不这样做会发生什么?“我已使用Security.insertProviderAt(new-BouncyCastleProvider(),1);”将BouncyCastleProvider安全提供程序列表插入到“第一个”位置。”。如果你不这样做会怎么样?