C / C ++ шифрование / дешифрование с открытым ключом

Я ищу две функции, концептуально похожие на эти:

// 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 );

где строка может быть char * , a std :: string или что-то, что легко конвертируется в эти два. И где public_key и private_key могут быть практически любыми, от ключей, сгенерированных некоторыми командами (gpg / ssl или другими), до ключей, сгенерированных другими простыми функциями. .

Я изучил несколько криптографических библиотек (libgcrypt, libgpgme, openssl ...), но совсем непросто реализовать такие функции с этими библиотеками: они требуют неповерхностных знаний об асимметричности. шифрование и много кода.

В любом случае эта задача не кажется редкостью. Как я могу реализовать две указанные выше функции?

13
задан Brian 8 November 2010 в 15:15
поделиться