2010-03-19 6 views
2

Actuellement, j'ai ma clé privée enregistrée dans un fichier, private.key, et j'utiliser la fonction suivante pour le charger:Comment charger une clé RSA à partir de données binaires dans une structure RSA à l'aide de la bibliothèque OpenSSL C?

RSA * r = PEM_read_RSAPrivateKey ("private.key", NULL, NULL, NULL);

Cela fonctionne parfaitement, mais je ne suis pas satisfait du format basé sur les fichiers; Je veux sauver ma clef dans la forme binaire pure (c.-à-d., Pas base64 ou semblable) dans une variable char* et charger/enregistrer la clef de/à elle. De cette façon, j'ai beaucoup plus de liberté: je vais pouvoir stocker la clé directement dans l'application const char key[] { 0x01, 0x02, ... };, l'envoyer sur une prise réseau, etc.

Malheureusement, je n'ai pas trouvé un moyen de le faire. Le seul moyen de sauvegarder et de charger une clé que je connais est lu/sauvegardé directement dans un fichier.

Répondre

6

Utilisation d2i_RSAPrivateKey pour charger directement à partir d'un tampon contenant du format DER binaire:

const unsigned char *p = key; 
RSA *r = d2i_RSAPrivateKey(NULL, &p, keylen); 
Questions connexes