A Little Bit of Salt Helps Trustworthiness … Meet NaCl
And, so, we have a whole lot of software libraries to choose from. One of the most wide used is OpenSSL. But, it supports so many different methods — and many of which are not relavent any more. It also struggles to support the newer methods. One of my favouriate tweets related to the complexity of OpenSSL is this one:
And if OpenSSL was a GUI, here’s some of the options:
Meet NaCl
And so while OpenSSL supports so many legacy methods, in many cases we really should be picking the most efficient and well-supported methods. For this Daniel J. Bernstein, Tanja Lange and Peter Schwabe produced NaCl (Networking and Cryptography library). One of its core methods is the integration of Curve 25519 for the implementation of X25519 (for key exchange) and Ed25519 (for digital signatures). It was written in C, but has since been ported to other languages, including Python (with PyNaCl).