Написание собственного кода шифрования «не рекомендуется». Достаточно легко совершить простую ошибку при использовании одной из этих библиотек, не говоря уже о том, чтобы попытаться написать ее самостоятельно.
Что вы действительно хотите использовать, так это OpenSSL с Boost.ASIO поверх него. Если вы не можете этого сделать, то ваша следующая лучшая альтернатива - использовать COM-объект Internet Explorer. Это не так гибко, но может хорошо работать в зависимости от ваших потребностей. Вы также можете изучить Win32 API. Последнее, что я посмотрел, было недостаточно крипто-API, широко доступных для этого. Последний способ справиться с этим - обернуть API .NET, чтобы вы могли использовать их из собственного C ++.
Только если ничего из этого не сработает для вас, вы даже можете подумать написать это самостоятельно. Вы будете делать ошибки, и в результате ваше приложение будет менее защищенным. Итак, прежде чем вы начнете пытаться написать свой собственный криптографический код, вы также можете попытаться взглянуть на туннелирование SOCKS через SSH и использовать чью-либо реализацию SSH. Следующая вещь, на которую я бы посмотрел, это купить код, а не писать его самостоятельно. Код будет не так хорош, как предложения с открытым исходным кодом, так как он будет меньше использоваться, поэтому у него будет больше проблем с безопасностью, но он все равно будет лучше, чем то, что вы написали бы при первой попытке сделать это.
Только если вы исчерпали все эти опции, вы должны подумать о написании этого самостоятельно. Подумав об этом, попробуйте все остальные варианты еще раз, чтобы убедиться, что вы не пропустили, чтобы один из них сработал в первый раз.
Если вы все еще пишете свою собственную реализацию, отбросьте ее и воспользуйтесь одним из других вариантов, прежде чем вводить его в промышленное использование, поскольку будут ошибки, которые могут поставить под угрозу безопасность в той степени, в которой вы, вероятно, с таким же успехом можете не беспокоиться.
Извините за все это, но разобраться в этих вещах действительно сложно, и вы не можете просто сделать это, просто взглянув на чужую реализацию.