软件 JCE 实现与硬件 JCE 实现之间的差异

JCE 的软件密码术实现与硬件实现 (IBMJCECCA) 之间几乎没有什么区别。

在本节的后续主题中描述的一个差异是 RSA 密码算法所需的密钥属性限制。 更重要的区别是在受支持的密码算法列表中。 由于当前可用硬件的限制, IBMJCECCA 提供程序通常支持的算法少于其他提供程序。 IBMJCECCA 提供程序提供的加密操作通常与其他版本的 JCE 提供程序相同。 因此,可以将现有应用程序从软件 JCE 提供程序迁移到硬件 JCE 环境 IBMJCECCA。 要进行迁移,只需为 RSA , DSA 或 EC 生成具有相应属性 (在本节后面的主题中描述) 的新密钥对即可更改安全提供程序。

可以通过将 API 调用与提供程序参数配合使用,或者通过更改提供程序列表以将 IBMJCECCA 置于首选位置 (即,具有比软件 JCE 提供程序更小的序号) 来更改安全提供程序。 如果您必须使用某个软件JCE提供商(例如 OpenJCEPlus, ),且该提供商在提供商列表中的位置优先于IBMJCECCA提供商,则如果您想使用IBMJCECCA提供商来代替该软件提供商,则必须在 getInstance() API中指定IBMJCECCA提供商。 如果未在 API 调用上指定提供程序,那么在运行时调用的提供程序是提供程序列表上支持所请求算法和密钥类型的第一个提供程序。 此行为可能导致使用软件 JCE 提供程序而不是 IBMJCECCA 提供程序。

以下部分和主题描述了基本软件 JCE 提供程序与硬件辅助 JCE 提供程序 (IBMJCECCA) 之间的不同限制和功能。

HMAC 和 PBE

通过使用软件 JCE 提供程序支持的相同 API ,在 IBMJCECCA 提供程序中支持 HMAC 和 PBE 算法。 但是, IBMJCECCA 提供程序通过使用在加密硬件中实现的其他算法来支持这些算法。

读取 Base64-Encoded 证书

使用 Base64 编码的证书将在 ISO8859_1 代码页 (而不是本地代码页) 中读取和写入。 这样做是为了使它们与其他平台上的 Base64-Encoded 证书兼容。 因此,在某些平台上,编码证书可能不可读。