CsCrypto  1.0.0
Why was CsCrypto Created

The CsCrypto library was created as an abstraction layer to support different underlying cryptographic libraries. The decision of which cryptographic library to select is made by the user of CsCrypto based on your platform and application requirements.

CsCrypto provides an abstraction using modern C++ design principles. Our API uses STL containers in conjunction with strongly-typed wrappers to enforce type safety and memory safety when processing cryptographic data. Having a cross platform abstraction for cryptographic operations improves portability and maintainability.

This library was designed so any developer can add support for additional cryptographic libraries by implementing a few interfaces. The interfaces are added by creating a few classes which are responsible for calling the underlying cryptographic library and converting data into the correct format. We encourage these enhancements to be upstreamed so other CsCrypto users can benefit.

When working with external libraries it is a good practice to create wrappers rather than directly using low level libraries such as OpenSSL. Many security vulnerabilities have been traced to misuse of complex and error prone cryptographic libraries. The strong typing and compile time constraint checking in CsCrypto allows compile time detection for many of the more traditional and common errors.