首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Android 4.1 Keychain

使用Android 4.1 Keychain
EN

Stack Overflow用户
提问于 2012-06-29 20:27:15
回答 1查看 2.7K关注 0票数 3

我使用的是Android 4.1 Keychain,下面的代码在4.0下运行得很好,但现在给我一个空指针异常(Cipher不能读取一些内部属性)

代码语言:javascript
复制
privateKey = KeyChain.getPrivateKey(context,mAlias);
byte[] data = // some biary data
Cipher rsasinger = javax.crypto.Cipher.getInstance("RSA/ECB/PKCS1PADDING");
rsasinger.init(Cipher.ENCRYPT_MODE, privkey);

byte[] signed_bytes = rsasinger.doFinal(data);

我将来自KeyChain的私钥作为不透明密钥来处理,并简单地将其与java安全Api一起使用。我需要以不同的方式使用KeyChain API吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-09 06:49:02

经过进一步的调试和Google引擎的联系(谢谢!)事实证明,安卓注册了不同的JAVA Crypto提供程序,并且只有OpenSSL提供程序能够使用密钥库中的PrivateKeys。

但是通过一些黑客攻击和使用/system/lib/ssl/engines/libkeystore.so,应该可以解决这个问题。

有关我的解决方案,请参阅http://code.google.com/p/ics-openvpn/source/browse/src/de/blinkt/openvpn/OpenVpnManagementThread.java#446中的http://code.google.com/p/ics-openvpn/source/browse/jni/jbcrypto.cpp和proccessSignJellyBean。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11261774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档