#channel #string #signing #untrusted #port #python #popular

itsdangerous

Rust port of the popular itsdangerous python library for signing strings and sending them over untrusted channels

7 unstable releases

0.4.1 Mar 11, 2022
0.4.0 Apr 20, 2021
0.3.2 Mar 24, 2021
0.3.1 Jun 14, 2019
0.1.0 Jun 12, 2019

#1001 in Cryptography

Download history 18688/week @ 2023-12-13 19371/week @ 2023-12-20 518/week @ 2023-12-27 9210/week @ 2024-01-03 7236/week @ 2024-01-10 9360/week @ 2024-01-17 16308/week @ 2024-01-24 8301/week @ 2024-01-31 16486/week @ 2024-02-07 9485/week @ 2024-02-14 8194/week @ 2024-02-21 15530/week @ 2024-02-28 12952/week @ 2024-03-06 14990/week @ 2024-03-13 5613/week @ 2024-03-20 27805/week @ 2024-03-27

61,932 downloads per month

MIT license

79KB
1.5K SLoC

itsdangerous-rs

Build Status License Documentation Cargo

A rust re-implementation of the Python library itsdangerous.

Essentially, this crate provides various helpers to pass data to untrusted environments and get it back safe and sound. Data is cryptographically signed to ensure that it has not been tampered with.

Basic Usage

Add this to your Cargo.toml:

[dependencies]
itsdangerous = "0.3"

Next, get to signing some dangerous strings:

use itsdangerous::{default_builder, Signer};

fn main() {
    // Create a signer using the default builder, and an arbitrary secret key.
    let signer = default_builder("secret key").build();

    // Sign an arbitrary string, and send it somewhere dangerous.
    let signed = signer.sign("hello world!");

    // Unsign the string and validate that it hasn't been tampered with.
    let unsigned = signer.unsign(&signed).expect("Signature was not valid");
    assert_eq!(unsigned, "hello world!");
}

For more in-depth examples, check out the documentation!

License

Licensed under the MIT license.

Dependencies

~0.8–1.1MB
~23K SLoC