我可以在Android上使用Bouncy Castle Keystore.UBER吗?

时间:2014-09-15 11:52:23

标签: java android security bouncycastle keystore

根据Bouncy Castle文档,KeyStore有三种实现:

  

Bouncy Castle包有三个密钥库实现。

     

第一个“BKS”是一个密钥库,可以使用密钥工具   与Sun“JKS”密钥库一样的时尚。密钥库是阻止的   篡改但不检查。

     

>第二个,Keystore.BouncyCastle或Keystore.UBER只能工作   如果在命令行上提供了密码,则使用keytool   整个密钥库使用基于SHA1和Twofish的PBE加密。   PBEWithSHAAndTwofish-CBC。这使得整个密钥库能够抵抗   篡改和检查,以及部队核查。 Sun JDK   如果没有密码,keytool将尝试加载密钥库   给出,这个版本是不可能的。 (人们可能想知道   遇到所有这些麻烦,然后在命令上输入密码   线!新的keytool任何人?)。

     

在第一种情况下,密钥使用3-Key-TripleDES加密。

     

第三个是PKCS12兼容密钥库。 PKCS12略有提供   从常规密钥库,密钥库密码的不同情况   是目前唯一用于存储密钥的密码。否则它   支持与其一起使用所需的所有功能   密钥工具。在某些情况下,其他图书馆总是希望如此   处理Sun证书,如果是这种情况使用PKCS12-DEF,和   密钥库生成的证书将使用   默认提供者。在默认情况下,PKCS12使用3DES作为密钥   保护和40位RC2保护证书。也是   可以通过使用PKCS12-3DES-3DES或两者来使用3DES   PKCS12-DEF-3DES-3DES作为KeyStore类型。

我无法在互联网上找到任何有趣的信息,似乎没有人使用它。

可以在Android上使用Keystore.BouncyCastle或Keystore.UBER吗?如何获得实例? KeyStore.getInstance("UBER","BC");?它适用于所有Android版本吗?

1 个答案:

答案 0 :(得分:3)

是的,可以使用,获取实例:

KeyStore.getInstance("UBER", "SC");

在普通的java代码中,它应该是“BC”(BouncyCastle)提供程序,但是在Android上使用了SpongyCastle,所以我们需要在这里放置“SC”。