我正在为客户编写一个新的 JCE 提供程序,因为我需要公开一些自定义密码。扩展CipherSpi
and后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 提供程序来支持所需的功能(使用如何实现提供程序指南),从包中扩展ProviderSpi
和CipherSpi
抽象类。com.sun.*
我是否需要获取 IBM Java JDK 并扩展抽象类com.ibm.*
?或者我是否可以使用我的 Sun 根 Java 代码签名证书对我的 JCE 提供程序 JAR 进行签名,然后将其直接放入 AIX 系统上的正确位置?(其中一个是愚蠢的,但我不知道是哪个)。
我只是不太了解 JCE / JVM 风格,不知道我现在是否需要基于 IBM 的 Java 代码签名证书(如果甚至存在的话),或者基于 Sun 的签名是否足够?