我工作的公司对Android应用程序开发持谨慎态度,因为默认加密库Bouncy Castle未通过FIPS-140认证。我无法改变他们的思想或政策。
我想知道我用我的应用程序安装(或至少捆绑)SunJCE的选项。
首先,我找不到我要下载这个jar的最新版本的地方。我尝试从我的桌面抓取jce jar并将其设置为我的Android项目中的内部jar并收到这个有趣的,如果不祥的消息:
尝试包含核心课程 (java。*或javax。*)在其他东西中 而不是核心库。可能就是这样 你试图包括在一个 应用核心库(或者 其中一部分来自桌面虚拟 机。这肯定不会 工作。它至少会危害它 您的应用与未来的兼容性 该平台的版本。也是 经常有可疑的合法性。
如果你真的打算建立一个核心 图书馆 - 这是合适的 作为创建完整虚拟的一部分 机器分配,而不是 编译应用程序 - 然后使用 “--core-library”选项 禁止显示此错误消息。
如果你继续使用 “ - 核心库”但实际上是 建立一个应用程序,然后是 预先警告你的申请会 在某些方面仍然无法建立或运行 点。请为生气做好准备 例如,找到那些的客户 你的申请停止运作 一旦他们升级他们的经营 系统。你应该为此负责 问题
如果你合法地使用了一些 恰好位于核心的代码 包,然后最简单的安全 替代方案是重新包装 那段代码。也就是说,移动课程 问题进入你自己的包 命名空间。这意味着他们会 永远不要与核心系统发生冲突 类。如果你发现你不能 这样做,那是一个迹象 你所走的路会 最终导致痛苦,痛苦, 悲伤,悲伤。
我不是一个痛苦,痛苦,悲伤或悲伤的人,所以我想知道正确的方法来完成这项任务,只要这是我应该尝试的事情。
答案 0 :(得分:1)
由于遇到编译器错误,您将无法导入java.*
或javax.*
类。遵循他们的指示应该工作,但更改JCE大小的东西的包可能是重要的,我不知道结果是否仍然符合FIPS-140的条件。另外,如果JCE是用纯Java实现的,那么它在Android上可能会很慢。除非JCE来自GPL版本的Java或其他一些开源实现,否则错误消息提示的许可问题是相关的。
还有其他可用的FIPS-140加密库,例如NSS,它们具有Java绑定,还有其他可以编写Java绑定的加密库。您可以让其中一个使用NDK的人在Android上运行。