Gre*_*reg 4 android key-pair android-keystore
当我在 API 24 中使用此 KeyPairGeneratorSpec 对象时,我的类可以正常工作。
KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(this)
.setAlias(KEY_ALIAS)
.setSubject(new X500Principal("CN=" + KEY_ALIAS))
.setSerialNumber(BigInteger.TEN)
.setStartDate(start.getTime())
.setEndDate(end.getTime())
.build();
KeyPairGenerator kpg = KeyPairGenerator.getInstance(RSA);
kpg.initialize(spec);
keyPair = kpg.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)
在低于 24 的版本上编译时,出现以下错误:
java.security.InvalidAlgorithmParameterException: Only RSAKeyGenParameterSpec supported
Run Code Online (Sandbox Code Playgroud)
我不明白,因为 KeyPairGeneratorSpec 应该可以从 api 18 获得?
今天早些时候,Pixel 模拟器 (API 23) 也遇到了这个问题,引发了“仅支持 RSAKeyGenParameterSpec”异常,而 Nexus 5X (API 24) 则没有问题。
可以确认修复是将“AndroidKeyStore”作为第二个参数添加到对 KeyPairGenerator 上 getInstance 的调用中,如上面提到的@estoke:
IE:
KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |