Busco dos funciones conceptualmente similares a estos:C/C++ cifrar/descifrar con la clave pública
// returns the encrypted text
string encrypt(string public_key, string pass_phrase, string text);
// returns the original text
string decrypt(string private_key, string pass_phrase, string encrypted_text);
donde string
podría ser un char*
, un std::string
o algo fácilmente convertibles a los dos. Y donde public_key
y private_key
pueden ser básicamente cualquier cosa, desde las claves generadas con algunos comandos (cosas gpg/ssl o lo que sea) hasta las claves generadas con otras simples funciones.
He mirado en algunas bibliotecas de criptografía (libgcrypt, libgpgme, openssl ...), pero no se ve nada fácil de implementar dichas funciones con las bibliotecas: requieren un conocimiento no superficial sobre asimétrica cifrado y una gran cantidad de código.
De todos modos, esta tarea no parece poco común. ¿Cómo puedo implementar las dos funciones anteriores?
¿Has comprobado Keyczar? http://code.google.com/p/keyczar/ –
encrypted_text es probablemente datos binarios. Debe tener cuidado con los ceros incrustados. Incluiría longitudes en los prototipos ... – pmg
@pmg: me doy cuenta de que hay una etiqueta [c], pero supongo que Peoro está pensando en C++ 'std :: string', que es de 8 bits limpia e incluye una longitud , separado del contenido de la cadena. –