我已经在窗口中使用BCryptSignHash与ECDSA算法签署了哈希值。输出签名缓冲区的长度为64个字节。我还使用BCryptGenerateKeyPair函数(BCRYPT_ECDSA_P256_ALGORITHM算法)生成了公钥和私钥blob,并使用该函数对散列进行了签名。了解BCryptSignHash输出签名
我必须在linux中使用此密钥对验证此签名。我能够使用链接“http://msdn.microsoft.com/en-us/library/windows/desktop/aa375520%28v=vs.85%29.aspx”解密生成的公钥 - 私钥对,并能够在Linux中使用相同的密钥对。
生成的64字节签名理想情况下应该是签名对(r,s)(http://en.wikipedia.org/wiki/Elliptic_Curve_DSA)。
有没有办法理解生成的64字节签名,以便我可以将签名blob内容映射到(r,s)对在Linux中并验证它?
还是有更简单的方法来验证在linux生成的签名?
谢谢, ˚F
感谢您的信息..我试过crypto ++,并且我能够在Windows和Linux应用程序级别使用签名和密钥。 但现在我得到了另一个问题来处理... | 正在Windows应用程序级别完成签名。验证必须在2个地方完成 - linux应用程序和Windows驱动程序。 Crypto ++在Windows应用程序级别创建密钥时非常有用,并且我在数据上签名。使用相同的密钥,我能够在Linux应用程序中验证数据。现在我遇到的问题是我不能在Windows驱动程序中使用crypto ++。 是否有3种格式的公共图书馆? – Fazlin