2009-08-27 13 views
2

J'ai un problème avec CryptVerifySignature retour NTE_NO_MEMORY (Le CSP a manqué de mémoire pendant l'opération.)CSP Mémoire insuffisante avec CryptVerifySignature

Je suis en train de vérifier une signature générée avec OpenSSL, je l'ai déjà décodées une clé publique PEM, inversé l'octet-séquence et l'a importé.

J'ai essayé explicitement de spécifier MS Enhanced Provider, et ma longueur de clé est de 4096 bits (< 16384 bits max). J'ai vu quelques commentaires sur des forums suggérant des problèmes d'alignement de mémoire, mais je suis sur un Intel Pentium Dual-Core, et mes tampons sont alignés 32 bits.

Quelqu'un a déjà vu ce problème?

+0

Il serait utile si vous pouviez nous le code et les données qui échouent. –

+0

En fait, le problème a disparu maintenant. Il a disparu lorsque je suis passé de l'utilisation de la fonction RSA_sign OpenSSL à la fonction RSA_private_encrypt pour générer des signatures. Je pense que c'est quelque chose à faire, y compris un identifiant d'algorithme. – jarmond

+0

@jarmond: Merci de poster comme réponse votre problème. – doptimusprime

Répondre

0

Il est bon de savoir que le problème est résolu en chantant RSA_private_encrypt. Mon cas est inverse de vous. J'ai signé en utilisant CryptSignHash et je l'ai vérifié en utilisant RSA_verify. J'ai remarqué que l'ordre des octets de signature généré par CryptSignHash et RSA_sign pour les mêmes données est exactement inversé. Découvrez ce link.

Veuillez essayer d'inverser les octets et de voir si cela fonctionne pour vous.

J'ai réussi à signer en utilisant CryptSignHash et à vérifier en utilisant RSA_verify et cela fonctionne parfaitement.