NaCl (software)

NaCl
Original author(s) Daniel J. Bernstein, Tanja Lange, Peter Schwabe
Initial release 2008 (2008)
Stable release
20110221 / February 21, 2011 (2011-02-21)
Operating system UNIX-like
License public domain[1]
Website nacl.cr.yp.to

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".[2]

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[3] and Peter Schwabe.[4] The main goal while creating NaCl, according to the paper, was to "avoid various types of cryptographic disasters suffered by previous cryptographic libraries".[1]

Basic functions

Public-key cryptography

Secret-key cryptography

Low-level functions

  • String comparison.[7]

Implementations

Reference implementation is written in C, often with several inline assembler. C++ and Python are handled as wrappers.[8]

NaCl has a variety of programming language bindings such as PHP,[9] and forms the basis for Libsodium, a cross-platform cryptography library created in 2013 which is API compatible with NaCl.

Alternative implementations

  • Libsodium — a portable, cross-compilable, installable, packageable, API-compatible version of NaCl.[10]
  • TweetNaCl — a tiny C library, which fits in just 100 tweets (140 symbols each), but supports all NaCl functions.[11]
  • NaCl for Tcl — a port to the Tcl language.[12]
  • NaCl for JavaScript — a port of TweetNaCl/NaCl cryptographic library to the JavaScript language.[13]

See also

References

  1. 1 2 https://cr.yp.to/highspeed/coolnacl-20120725.pdf "The security impact of a new cryptographic library" Daniel J. Bernstein, Tanja Lange, Peter Schwabe
  2. "NaCl: Networking and Cryptography library".
  3. "Tanja Lange's Homepage".
  4. "Peter Schwabe's Homepage".
  5. "Hashing". 2010-08-30. Retrieved 2015-11-14.
  6. . 2017-12-13 https://download.libsodium.org/doc/hashing/generic_hashing.html#algorithm-details. Retrieved 2018-05-19. Missing or empty |title= (help)
  7. Bernstein, Daniel J. (10 March 2009). Cryptography in NaCl (PDF).
  8. "NaCl Internals".
  9. "NaCl PHP Extension". Github.
  10. "Libsodium".
  11. "TweetNaCl".
  12. "Tclers Wiki - NaCl for Tcl".
  13. "TweetNaCl".
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.