据我所知,在Javacard 3.0.5中有一个API verifyPreComputedHash()
。 3.0.4怎么样?是否可以先使用setInitialDigest()
加载预先计算的哈希,然后调用verify()
?如果可能,请有人举个例子。
答案 0 :(得分:0)
不,那是不可能的。用于哈希算法(如SHA-1和SHA-2)的填充由位填充和消息大小组成。不幸的是,在最后一次调用signature
或verify
之前,填充始终是必需的,并且完整邮件的大小为 unknown 。
就我个人而言,我从未理解这种setInitialDigest
方法。只有要签名的数据在平台和芯片之间分开才有意义。此外,它依赖于错误定义的中间散列值的特定编码。对于新设计/平台,我当然会选择verifyPreComputedHash
。但是,如果你在3.0.5之前做任何事情,这很有用,我很害怕。