【发布时间】:2013-06-09 22:53:35
【问题描述】:
我正在为客户编写一个新的 JCE 提供程序,因为我需要公开一些自定义密码。在扩展CipherSpi 和ProviderSpi 之后,我已经准备好构建了。所以我问客户他们的目标是哪个版本的 Java。他们的回应是:
# java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pap3260sr9fp2-20110627_03(SR9 FP2)) IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 AIX ppc-32 jvmap3260sr9-20110624_85526 (JIT enabled, AOT enabled) J9VM - 20110624_085526 JIT - r9_20101028_17488ifx17
GC - 20101027_AA)
JCL - 20110530_01
#
该死的。所以他们在 AIX 机器上使用 IBM Java 1.6.0。
我已经编写了大部分定制的 JCE Provider 来支持所需的功能(使用 How to Implement a Provider 指南),从 com.sun.* 包扩展 ProviderSpi 和 CipherSpi 抽象类。我是否需要获取 IBM Java JDK 并从 com.ibm.* 扩展抽象类?或者我是否可以使用我的 Sun 根 Java 代码签名证书对我的 JCE 提供程序 JAR 进行签名,然后将其直接放入 AIX 系统上的正确位置? (其中一个是愚蠢的,但我不知道哪个)。
我只是不太了解 JCE/JVM 风格,不知道我现在是否需要基于 IBM 的 Java 代码签名证书(如果甚至存在的话),还是基于 Sun 的签名是否足够?
【问题讨论】:
-
我猜你使用的不是 com.sun.* 包,而是 java.security 和 javax.crypto
标签: java cryptography aix jce