【问题标题】:Installing SunJCE on Android?在 Android 上安装 SunJCE?
【发布时间】:2010-08-03 21:41:54
【问题描述】:

我工作的公司对 Android 应用程序开发持谨慎态度,因为默认加密库 Bouncy Castle 未通过 FIPS-140 认证。我无法改变他们的想法或政策。

我想知道在我的应用程序中安装(或至少捆绑)SunJCE 有哪些选项。

首先,我找不到下载这个 jar 最新版本的地方。我尝试从桌面抓取 jce jar 并将其设置为我的 Android 项目中的内部 jar,并收到了这条有趣的消息:

尝试包含一个核心类 (java.* 或 javax.*) 在其他东西中 而不是核心库。可能就是这样 您试图包含在 应用核心库(或 其中一部分)来自桌面虚拟 机器。这肯定不会 工作。至少会危及 您的应用与未来的兼容性 平台的版本。也是 经常有可疑的合法性。

如果你真的打算构建一个核心 图书馆——这是唯一合适的 作为创建完整虚拟的一部分 机器分布,而不是 编译应用程序——然后使用 “--core-library”选项 禁止显示此错误消息。

如果你继续使用 “--core-library”但实际上是 构建一个应用程序,然后是 预先警告您的应用程序将 在某些情况下仍然无法构建或运行 观点。请做好生气的准备 例如,客户发现 您的应用程序停止运行 一旦他们升级他们的运营 系统。你将为此负责 问题。

如果您合法使用某些 恰好在核心中的代码 包,然后最简单的安全 您的替代方法是重新包装 那个代码。也就是说,移动类 有问题放入您自己的包裹中 命名空间。这意味着他们将 从不与核心系统冲突 类。如果你发现你不能 这样做,那么这是一个迹象 你正在走的路 最终导致痛苦,痛苦, 悲痛欲绝。

我不是一个喜欢痛苦、痛苦、悲伤或哀叹的人,所以我想知道完成这项任务的正确方法,只要这是我应该尝试的事情。

【问题讨论】:

    标签: java android encryption cryptography


    【解决方案1】:

    由于您遇到编译器错误,您将无法导入 java.*javax.* 类。按照他们的指示应该可以工作,但是更改 JCE 大小的包可能很重要,我不知道结果是否仍然符合 FIPS-140 的要求。另外,如果 JCE 是用纯 Java 实现的,它在 Android 上可能会很慢。除非 JCE 来自 GPL 版本的 Java,或其他一些开源实现,否则错误消息提示的许可问题是相关的。

    还有其他可用的 FIPS-140 加密库,例如 NSS,它们具有 Java 绑定,以及您可能为其编写 Java 绑定的其他库。您可以让其中一个使用 NDK 在 Android 上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 2018-10-30
      • 1970-01-01
      • 2013-07-31
      • 2011-02-13
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多