Я ищу две функции, концептуально похожие на эти:
// 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 ...), но совсем непросто реализовать такие функции с этими библиотеками: они требуют неповерхностных знаний об асимметричности. шифрование и много кода.
В любом случае эта задача не кажется редкостью. Как я могу реализовать две указанные выше функции?