3 releases (breaking)

0.3.1 Jun 17, 2023
0.3.0 Jun 16, 2023
0.2.0 Jun 15, 2023
0.1.0 May 25, 2023

#2268 in Cryptography

22 downloads per month

MIT license

25KB
421 lines

TableSalt

codecov test safety schedule check

Description

TableSalt is a safe, oxidized wrapper for libsodium.

Usage

To use tablesalt, add start by adding it as a dependency in your Cargo.toml file.

[dependencies]
tablesalt = "0.3.1"

Hashing

Currently, TableSalt only provides libsodium's crypto_generichash API.

Hashing a message

The following example shows how to hash a simple message. The code here uses the crate hex to encode the hash, which is a Vec<u8> into a hexadecimal string.

use tablesalt::sodium;

fn main() {
    let s = sodium::Sodium::new();
    let hash = s.crypto_generichash(b"Some message", None, 32);

    println!("blake2b hash: {}", hex::encode(&hash));
}

Hashing a multi-part message

use tablesalt::sodium;

fn main() {
    let s = sodium::Sodium::new();
    let mut state = s.crypto_generichash_init(None, 32);
    state.update(b"Some ");
    state.update(b"message");
    let hash = state.finalize();

    println!("blake2b hash: {}", hex::encode(&hash));
}

Dependencies

~15MB
~66K SLoC