代码之家  ›  专栏  ›  技术社区  ›  InverseFalcon

在Android上安装sunjce?

  •  4
  • InverseFalcon  · 技术社区  · 14 年前

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

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

    首先,我找不到这个jar最新版本的下载位置。我尝试从我的桌面上抓取jce jar,并在我的Android项目中将其设置为一个内部jar,然后收到了这个有趣的(如果不祥的话)消息:

    尝试包含核心类 (java. *或javax *)在其他事物中 而不是核心库。很可能 您试图将 应用核心库(或 其中一部分)来自桌面虚拟机 机器。这肯定不会 工作。至少,它会危害 应用程序与未来的兼容性 平台的版本。它也是 通常是有问题的合法性。

    如果你真的打算建立一个核心 库——仅适用于 作为创建完整虚拟的一部分 机器分配,而不是 编译应用程序--然后使用 “-core library”选项 取消显示此错误消息。

    如果你继续使用 “——核心库”,但实际上 构建应用程序,然后 预先警告您的申请将 仍然无法构建或运行 点。请做好生气的准备 例如,发现 您的应用程序停止运行 一旦他们升级了操作系统 系统。你要为此负责 问题。

    如果你合法地使用 恰好在核心中的代码 打包,然后是最简单的保险箱 你可以选择重新包装 那个代码。也就是说,移动班级 在你自己的包裹里 命名空间。这意味着他们会 永远不要与核心系统冲突 类。如果你发现你不能 这样做,那就是一种暗示 你所走的路是自愿的 最终导致痛苦,痛苦, 悲伤和悲伤。

    我不是一个痛苦、痛苦、悲伤或悲伤的人,所以我想知道完成这项任务的正确方式,前提是我应该尝试一下。

    1 回复  |  直到 14 年前
        1
  •  1
  •   CommonsWare    14 年前

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

    还有其他可用的FIPS-140加密库,例如 NSS 具有Java绑定,以及其他可以编写Java绑定的其他绑定。有可能你可以让一个与NDK合作的人在Android上运行。