BcryptSignHash输出签名的字节顺序

时间:2014-06-10 12:46:07

标签: cryptoapi cng libgcrypt

BcryptGenerateKeyPair 生成的私钥和公钥blob是big-endian编码的(http://msdn.microsoft.com/en-us/library/windows/desktop/aa375520%28v=vs.85%29.aspx)。

使用这些密钥,我使用 BcryptSignHash 签署数据并生成64字节签名,理想情况下应为(r,s)。这个签名也是大端编码的吗?

我需要这些信息来从64字节签名中提取r和s。我假设64字节签名是r(前32个字节)和s(后32个字节)的串联。

如果错了,请纠正我

1 个答案:

答案 0 :(得分:1)

对于DSA签名,是的,BCryptSignHash的签名输出正如您所描述的那样,即(r,s)采用big-endian格式。

(我在过去与OpenSSL互操作时必须提取这些值。)