2010-04-10 10 views
4

Je dois extraire la clé publique RSA d'une clé privée RSA à l'aide d'OpenSSL.Extraction de la clé publique de la clé privée dans OpenSSL

J'utilise actuellement RSAPublicKey_dup() en passant la clé privée RSA* pour obtenir la clé publique. Cependant, alors que l'appel semble fonctionner, je ne peux pas charger (ou utiliser) cette clé publique à l'aide de l'outil de ligne de commande openssl.

Si je génère la clé publique en utilisant l'outil de ligne de commande ("$ openssl rsa -in private.pem -pubout > public.pem"), je peux l'utiliser et cela fonctionne comme un charme. Est-ce que vous savez comment je peux obtenir ce travail? Peut-être une autre fonction? La documentation OpenSSL est assez difficile à parcourir ...

Merci.

Répondre

2

J'ai réussi à faire ce travail en utilisant PEM_write_bio_RSA_PUBKEY() pour écrire les données PEM dans un tampon en mémoire, puis en utilisant PEM_read_bio_RSA_PUBKEY() pour obtenir un nouveau RSA*.

Maintenant, la clé publique générée peut être utilisée;)

+0

son tort, le résultat est toujours une clé privée – AbiusX

+0

@AbiusX: Pouvez-vous préciser? Semble fonctionner correctement jusqu'à présent. – ereOn

+0

Je ne me souviens pas du truc que j'ai fait, je dois voir l'historique de ma version – AbiusX