如何在android中运行时访问库jar文件?

时间:2011-12-01 21:44:15

标签: android fips

我创建了一个加密模块并将其导出为jar文件。

库在加载时需要进行自我完整性测试才能通过FIPS验证。

这样做的第一个想法是在运行时读取jar文件,制作一个哈希并将其与保存在某处的签名进行比较。

通过解压缩使用jar文件的应用程序apk,我找不到jar。所以我猜jar中的类都保存在classes.dex中,对不对?是否可以从classes.dex中恢复jar?

3 个答案:

答案 0 :(得分:1)

在加载模块之前,您需要执行“已批准的完整性技术”。唯一的NIST“已批准”完整性验证方法是: - DSA / RSA / ECDSA签名 - C / MAC或HMAC

请参阅FIPS140-2 Implementation Guidance document中的“6.4已批准的完整性技术”。

简单的MD5 / SHA-1 / SHA-2哈希是不够的。

答案 1 :(得分:0)

  

是否可以从classes.dex恢复jar?

没有

而且,它对你有点好处。改变你的JAR的人也只会改变哈希值。

答案 2 :(得分:0)

dex格式不是公开的,但是确实存在一个工具可以将它提取到jar,它叫做dex2jar,可以在这里找到http://code.google.com/p/dex2jar/

不要以为它解决了你的问题,只是想你想知道。