libsodium
  • Introduction
  • Installation
  • Quickstart and FAQ
  • Projects using libsodium
  • Commercial support
  • Bindings for other languages
  • Usage
  • Helpers
  • Padding
  • Secure memory
  • Generating random data
  • Secret-key cryptography
    • Authenticated encryption
    • Encrypted streams and file encryption
    • Encrypting a set of related messages
    • Authentication
    • AEAD constructions
      • ChaCha20-Poly1305
        • Original ChaCha20-Poly1305 construction
        • IETF ChaCha20-Poly1305 construction
        • XChaCha20-Poly1305 construction
      • AEGIS-256
      • AEGIS-128L
      • AES256-GCM
        • AES256-GCM with precomputation
  • Public-key cryptography
    • Authenticated encryption
    • Public-key signatures
    • Sealed boxes
  • Hashing
    • Generic hashing
    • Short-input hashing
  • Password hashing
    • The pwhash* API
  • Key derivation
    • HKDF
  • Key exchange
  • Advanced
    • SHA-2
    • HMAC-SHA-2
    • The Scrypt function
    • Point*scalar multiplication
    • One-time authentication
    • Stream ciphers
      • ChaCha20
      • XChaCha20
      • Salsa20
      • XSalsa20
    • Ed25519 to Curve25519
    • Finite field arithmetic
      • Ristretto
    • Custom RNG
  • Internals
  • Roadmap
Powered by GitBook
On this page
  • Downloading libsodium
  • Mailing list
  • License
  • Thanks!

Introduction

Sodium is a modern, easy-to-use software library for encryption, decryption, signatures, password hashing, and more.

It is a portable, cross-compilable, installable, and packageable fork of NaCl, with a compatible but extended API to improve usability even further.

Its goal is to provide all of the core operations needed to build higher-level cryptographic tools.

Sodium is cross-platform and cross-language. It runs on many compilers and operating systems, including Windows (with MinGW or Visual Studio, x86, x86_64 and arm64), iOS, and Android. JavaScript and WebAssembly versions are also available and fully supported. Furthermore, bindings for all common programming languages are available and well-supported.

The design choices emphasize security and ease of use. But despite the emphasis on high security, primitives are faster across-the-board than most implementations.

Downloading libsodium

libsodium 1.0.20-stable is the latest version.

  • Tarballs and pre-compiled binaries

  • GitHub repository

  • Documentation

Mailing list

A mailing list is available to discuss libsodium.

To join, just send a random email to sodium-subscribe {at} pureftpd{dot}org.

License

ISC license.

See the LICENSE file for details.

Thanks!

Sodium is developed by volunteers. We would like to especially thank the following companies and organizations for their contribution:

  • Paragonie Initiative Enterprise, who donated a Raspberry Pi to ensure that the library works perfectly on this hardware. Thanks!

  • Private Internet Access, who sponsored a complete security audit. This is amazing, thanks!

  • Maximilian Blochberger and Joshua Small, who both generously donated $100. This will help cover the infrastructure costs a lot. Thanks again, Max and Joshua!

  • BestKru

People who designed the primitives and wrote implementations the library is based on can be found in the AUTHORS file. This project wouldn't exist without them.

Also, a huge "thank you" to people and companies who contributed bindings for their favorite programming languages. A list can be found in the THANKS file.

Another huge "thank you" to package maintainers who have been doing an amazing job at building packages for many distributions and operating systems.

Finally, thanks to you for reading this documentation and for the awesome projects you are going to build with this library!

NextInstallation

Last updated 14 days ago