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个字节)的串联。
如果错了,请纠正我
答案 0 :(得分:1)
对于DSA签名,是的,BCryptSignHash的签名输出正如您所描述的那样,即(r,s)采用big-endian格式。
(我在过去与OpenSSL互操作时必须提取这些值。)