Я ищу две функции, концептуально подобные этим:
// 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 );
, где string
может быть char*
, std::string
или чем-то легко конвертируемым для этих двух. И где public_key
и private_key
могут быть в основном чем угодно, от ключей, сгенерированных некоторыми командами (gpg / ssl или что-то еще), до ключей, сгенерированных с помощью других простых функций.
Я изучил несколько библиотек криптографии (libgcrypt, libgpgme, openssl ...), но реализовать такие функции с этими библиотеками непросто: им требуются поверхностные знания об асимметричном шифровании и много кода.
В любом случае, это задание не кажется необычным.
Как я могу реализовать две функции выше?