【问题标题】:Android Q bouncy castle issueAndroid Q 充气城堡问题
【发布时间】:2019-07-20 10:42:09
【问题描述】:

从 API 级别 28 开始,Google 限制了安全提供程序功能(充气城堡问题)。 因此,或者我们使用海绵城堡添加了安全提供程序 现在我们可以生成一个密钥对。但密钥对与前一个不匹配。 We can't get Private key这是我们之前使用的,旧codeapi 27:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC", "BC");
SecureRandom random =SecureRandom.getInstance("SHA1PRNG");
keyGen.initialize(256, random);KeyFactory kaif = KeyFactory.getInstance("EC", "BC");
KeyPair pair = keyGen.generateKeyPair();
PrivateKey privateKey = pair.getPrivate();
PublicKey publicKey = pair.getPublic();

在 API 级别问题之后,我们已删除“BC”并通过添加以下 lineSecurity.insertProviderAt(BouncyCastleProvider(), 1); 手动添加 Bouncy Castle 通过在依赖项中实现充气城堡, 实施“com.madgag.spongycastle:core:1.58.0.0” 实施“com.madgag.spongycastle:prov:1.58.0.0” 但密钥对与前一个不匹配。 新代码:api 28

Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
keyGen.initialize(256, random);
KeyFactory kaif = KeyFactory.getInstance("EC");
KeyPair pair = keyGen.generateKeyPair();
PrivateKey privateKey = pair.getPrivate();
PublicKey publicKey = pair.getPublic();

但密钥对与前一个不匹配。

图片:

【问题讨论】:

标签: android bouncycastle spongycastle


【解决方案1】:

尝试在您的安全提供程序的第一行插入 new BouncyCastleProvider() 并从您的代码中删除所有 setprovider("BC")。

【讨论】:

  • Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1); Security.removeProvider("BC"); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC"); SecureRandom 随机 = SecureRandom.getInstance("SHA1PRNG"); keyGen.initialize(256, 随机); KeyFactory kaif = KeyFactory.getInstance("EC");密钥对对 = keyGen.generateKeyPair(); PrivateKey privateKey = pair.getPrivate(); PublicKey publicKey = pair.getPublic();我已经试过了
  • 但问题存在
  • 不,如果存在,您应该删除“BC”然后插入
  • 另外,如果您使用 spongycastle,则提供者应该是“SC”而不是“BC”
  • 嗨@frestonic 在描述中附上图片请参考
猜你喜欢
  • 1970-01-01
  • 2022-11-07
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 2014-09-19
  • 2019-12-29
相关资源
最近更新 更多