I will need to do some encryption of the user data in my Windows desktop application, written in
C++ using WinAPIs (no .NET or WinRT stuff.) Namely, I'll be doing the following:
- Symmetric encryption:
- Public key encryption (asymmetric): preferably using
Elliptic curve cryptography.
My only requirements would be:
- The code must run on Windows XP SP3 and later OS.
- Be sufficiently robust.
So I was wondering, which would be better suited to use for Windows?
To use Windows built in Cryptography APIs, or
To use some C or C++ based crypto library. If so, which one? Can you explain? (The app will be developed in
Visual Studio 2008as C++/MFC project.)
My thinking on the benefits of the each was this:
With Windows built in crypto APIs, it is a faster coding since most of the encryption code is provided in the APIs. Plus Windows libraries may implement CPU acceleration (for instance, some Intel CPUs have built-in AES operands.)
But, with C/C++ library, there's no dependencies on Windows DLLs that may not be present on the older OS, or contain older bugs that Microsoft did not patch.