J'ai passé pas mal de temps sur Google à chercher la réponse à cette question. J'ai trouvé plusieurs morceaux de code décrivant des solutions mais la plupart sont en C, .NET ou Java. Mon cas est VB6. J'ai une application RSA1 assez simple: signer des données (en "appA" avec une clé privée), puis valider la signature (en "appB" avec la clé publique, c'est l'application VB6). À l'heure actuelle tout fonctionne correctement via la bibliothèque CryptoAPI.Convertir la clé OpenSSL en CryptoAPI
La partie de signature "appA" doit être déplacée vers un serveur Unix et exécutée par OpenSSL (de préférence). Le problème est la conversion du format de clé de PEM à PublicKeyBlob que CryptoAPI attend.
J'ai essayé de porter this C code à VB. CryptStringToBinary réussit mais CryptDecodeObjectEx se bloque puis se bloque VB.
Je n'ai pas été en mesure de trouver toute la documentation montrant cette utilisation dans VB. Je ne suis pas sûr que ce soit possible même. J'espère que quelqu'un sera en mesure de faire la lumière sur ce sujet. J'ai aussi essayé la fonction CryptDecodeObject (sans "Ex") en espérant que le manque de toutes les structures nécessaires résoudrait le problème ... mais le même problème.
Ma clé de test a été généré par OpenSSL openssl_pkey_new
Merci. Mes déclarations sont correctes, mais j'ai l'impression que mon PCRYPT_DECODE_PARA (et toutes les structures associées) ne sont pas déclarées correctement. Je n'ai pas pu trouver de documentation sur eux pour VB, seulement les defauts de structure C standard. Pour certaines raisons, je ne peux pas avoir de dépendances externes, donc un bout de C est sorti pour l'instant. Je peux essayer PHPSecLib et voir si je peux obtenir des clés codées XML travaillant sur les deux extrémités. Il semble que CryptoAPI les supporte. –