我遇到CryptVerifySignature返回NTE_NO_MEMORY的问题(CSP在操作期间内存不足。)
我正在尝试验证使用OpenSSL生成的签名,我已经解码了PEM公钥,反转了字节序列并导入了它。
我已尝试明确指定MS Enhanced Provider,我的密钥长度为4096位(最大<16384位)。
我在论坛上看到一些建议内存对齐问题的评论,但我使用的是英特尔奔腾双核,并且我的缓冲区是32位对齐的。
之前有人看过这个问题吗?
答案 0 :(得分:0)
很高兴知道问题是通过唱RSA_private_encrypt来解决的。 我的情况与你相反。我使用CryptSignHash签名并使用RSA_verify验证它。
我注意到CryptSignHash和RSA_sign为相同数据生成的签名字节顺序正好相反。看看这个link。
请尝试反转字节,看看它是否适合您。
我已经使用CryptSignHash成功完成了签名并使用RSA_verify进行了验证,并且它完全正常工作。