我为之工作的公司对Android应用程序的开发持谨慎态度,因为默认的密码库Bouncy城堡还没有通过FIPS-140认证。我无法改变他们的想法或政策。
我想知道在我的应用程序中安装(或至少捆绑) SunJCE有哪些选择。
首先,我找不到下载这个jar的最新版本的地方。我试着从我的桌面上抓取jce jar,并在我的Android项目中将它设置为一个内部jar,并收到了这条有趣的消息,尽管这是不祥的消息:
尝试将核心类(java.*或javax.*)包含在核心库以外的其他内容中。很可能您已经尝试在应用程序中包括来自桌面虚拟机的核心库(或其中的一部分)。这肯定是行不通的。至少,这会危及应用程序与平台未来版本的兼容性。这也常常是有问题的合法性。 如果您真的打算构建一个核心库--这只是创建一个完整虚拟机分发版的一部分,而不是编译一个应用程序--那么使用“- core - library”选项来阻止这个错误消息。 如果您继续使用“-核心库”,但实际上正在构建一个应用程序,那么请预先警告您的应用程序在某个时候仍然无法构建或运行。请为愤怒的客户做好准备,例如,一旦他们升级了操作系统,您的应用程序就会停止工作。这个问题要怪你。 如果您合法地使用了一些恰好在核心包中的代码,那么最简单的安全选择就是重新打包该代码。也就是说,将所讨论的类移动到您自己的包命名空间中。这意味着它们永远不会与核心系统类发生冲突。如果你发现你无法做到这一点,那就表明你所走的道路最终将导致痛苦、痛苦、悲伤和哀伤。
我不喜欢痛苦、痛苦、悲伤或哀叹,所以我想知道做这件事的正确方法,只要这是我应该尝试的事情。
发布于 2010-08-04 00:21:35
由于遇到编译器错误,您将无法导入java.*或javax.*类。按照他们的指示应该是有效的,但是为了JCE的大小改变包可能是很重要的,我不知道结果是否仍然符合FIPS-140的标准。另外,如果JCE是用纯Java实现的,那么它在Android上可能会很慢。而且,除非JCE来自GPL的Java版本或其他开源实现,否则错误消息提示的许可问题是相关的。
还有其他可以使用的FIPS-140加密库,如NSS,它们具有Java绑定,以及其他您可能可以为其编写Java绑定的库。这是可能的,你可以让一个与NDK工作的人运行在Android上。
https://stackoverflow.com/questions/3400968
复制相似问题