Sto cercando due funzioni concettualmente simili a queste:C/C++ cifrare/decifrare con chiave pubblica
// 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);
dove string
potrebbe essere un char*
, un std::string
o qualcosa di facilmente convertibili a quei due. E dove public_key
e private_key
possono essere praticamente qualsiasi cosa, da tasti generati con alcuni comandi (roba gpg/ssl o qualsiasi altra cosa), a tasti generati con altre semplici funzioni.
Ho esaminato alcune librerie di crittografia (libgcrypt, libgpgme, openssl ...), ma non sembra affatto facile implementare tali funzioni con quelle librerie: richiedono una conoscenza non superficiale di asimmetrica crittografia e molto codice.
Ad ogni modo questo compito non sembra insolito. Come posso implementare le due funzioni sopra?
Avete controllato Keyczar? http://code.google.com/p/keyczar/ –
encrypted_text è probabilmente dati binari. Devi stare attento agli zeri incorporati. Includerei lunghezze nei prototipi ... – pmg
@pmg: Mi rendo conto che esiste un [c] -tag, ma suppongo che peoro stia pensando a 'std :: string' del C++, che è pulito a 8 bit e include una lunghezza , separato dal contenuto della stringa. –