|Original author(s)||Daniel J. Bernstein, Tanja Lange, Peter Schwabe|
20110221 / February 21, 2011
NaCl (pronounced "salt") is an abbreviation for "Networking and Cryptography library", a public domain "...high-speed software library for network communication, encryption, decryption, signatures, etc".
NaCl was created by the mathematician and programmer Daniel J. Bernstein who is best known for the creation of qmail and Curve25519. The core team also includes Tanja Lange and Peter Schwabe. The main goal while creating NaCl, according to the paper, was to "avoid various types of cryptographic disasters suffered by previous cryptographic libraries".
- Authenticated encryption using Salsa20 and Poly1305.
- Encryption using Salsa20 or AES.
- Authentication using HMAC-SHA-512-256.
- One-time authentication using Poly1305.
- String comparison.
NaCl has a variety of programming language bindings such as PHP, and forms the basis for Libsodium, a cross-platform cryptography library created in 2013 which is API compatible with NaCl.
- Libsodium — a portable, cross-compilable, installable, packageable, API-compatible version of NaCl.
- NaCl Pharo — a Pharo Smalltalk Extension.
- TweetNaCl — a tiny C library, which fits in just 100 tweets (140 symbols each), but supports all NaCl functions.
- NaCl for Tcl — a port to the Tcl language.[third-party source needed]
- https://cr.yp.to/highspeed/coolnacl-20120725.pdf "The security impact of a new cryptographic library" Daniel J. Bernstein, Tanja Lange, Peter Schwabe
- "NaCl: Networking and Cryptography library".
- "Tanja Lange's Homepage".
- "Peter Schwabe's Homepage".
- "Hashing". 2010-08-30. Retrieved 2015-11-14.
- "Generic hashing". 2017-12-13. Retrieved 2018-05-19.
- Bernstein, Daniel J. (10 March 2009). Cryptography in NaCl (PDF).
- "NaCl Internals".
- "NaCl PHP Extension". Github. 2019-06-14.
- "SmalltalkHub repository".
- "Tclers Wiki - NaCl for Tcl".