我可以在 JavaCard 3.0.4 中使用预先计算的哈希来验证签名吗
Can I verify signature using a precomputed hash in JavaCard 3.0.4
我了解到在 Javacard 3.0.5 中有一个 API 可以这样做 verifyPreComputedHash()
。 3.0.4 呢?是否可以先使用 setInitialDigest()
加载预先计算的哈希值,然后再调用 verify()
?如果可能的话,谁能举个例子。
不,那不可能。用于 SHA-1 和 SHA-2 等哈希算法的填充由位填充和消息大小组成。不幸的是,填充总是必要的,在最后一次调用 signature
或 verify
.
之前,完整消息的大小是 unknown
就我个人而言,我从未理解过这种 setInitialDigest
方法。只有当要签名的数据在平台和芯片之间分开时才有意义。此外,它依赖于 中间散列值 的特定编码,该编码定义不明确。对于新设计/平台,我肯定会选择 verifyPreComputedHash
。但恐怕如果你在 3.0.5 之前使用任何东西,这就没什么用了。
我了解到在 Javacard 3.0.5 中有一个 API 可以这样做 verifyPreComputedHash()
。 3.0.4 呢?是否可以先使用 setInitialDigest()
加载预先计算的哈希值,然后再调用 verify()
?如果可能的话,谁能举个例子。
不,那不可能。用于 SHA-1 和 SHA-2 等哈希算法的填充由位填充和消息大小组成。不幸的是,填充总是必要的,在最后一次调用 signature
或 verify
.
就我个人而言,我从未理解过这种 setInitialDigest
方法。只有当要签名的数据在平台和芯片之间分开时才有意义。此外,它依赖于 中间散列值 的特定编码,该编码定义不明确。对于新设计/平台,我肯定会选择 verifyPreComputedHash
。但恐怕如果你在 3.0.5 之前使用任何东西,这就没什么用了。