Crate sodiumoxide

source ·
Expand description

Rust bindings to the sodium library.

Sodium is a portable implementation of Dan Bernsteins NaCl: Networking and Cryptography library

For most users, if you want public-key (asymmetric) cryptography you should use the functions in crypto::box_ for encryption/decryption.

If you want secret-key (symmetric) cryptography you should be using the functions in crypto::secretbox for encryption/decryption.

For public-key signatures you should use the functions in crypto::sign for signature creation and verification.

Unless you know what you’re doing you most certainly don’t want to use the functions in crypto::scalarmult, crypto::stream, crypto::auth and crypto::onetimeauth.

Thread Safety

All functions in this library are thread-safe provided that the init() function has been called during program execution.

If init() hasn’t been called then all functions except the random-number generation functions and the key-generation functions are thread-safe.

Public-key cryptography

crypto::box_

crypto::sign

Sealed boxes

crypto::sealedox

Secret-key cryptography

crypto::secretbox

crypto::stream

crypto::auth

crypto::onetimeauth

Low-level functions

crypto::hash

crypto::verify

crypto::shorthash

Modules

Cryptographic functions
Cryptographic random number generation.
Libsodium utility functions
Libsodium version functions

Functions

init() initializes the sodium library and chooses faster versions of the primitives if possible. init() also makes the random number generation functions (gen_key, gen_keypair, gen_nonce, randombytes, randombytes_into) thread-safe