KeyStore中使用的BouncyCastleProvider导致StackOverflowError

时间:2017-07-20 16:47:38

标签: java bouncycastle keystore

使用BKS代替JKS似乎会导致StackOverflowError。

我正在试图找出为什么调用setKeyEntry导致BouncyCastle的SecureRandom实现中断以及如何修复它,任何想法?

我已使用Security.insertProviderAt(new 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 });

我得到的堆栈跟踪是:

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)
....

0 个答案:

没有答案