#digest #hashing #structures #sha-256

no-std hashing-serializer

Serialize serde-implementing structures directly into a hash

3 unstable releases

0.2.0-pre.0 Aug 1, 2024
0.1.1 Jun 12, 2024
0.1.0 Jun 12, 2024

#153 in No standard library

Download history 286/week @ 2024-11-15 359/week @ 2024-11-22 491/week @ 2024-11-29 423/week @ 2024-12-06 640/week @ 2024-12-13 127/week @ 2024-12-20 39/week @ 2024-12-27 208/week @ 2025-01-03 235/week @ 2025-01-10 499/week @ 2025-01-17 431/week @ 2025-01-24 332/week @ 2025-01-31 305/week @ 2025-02-07 439/week @ 2025-02-14 351/week @ 2025-02-21 486/week @ 2025-02-28

1,611 downloads per month
Used in 13 crates (via synedrion)

MIT license

15KB
336 lines

crate Docs License Coverage

An implementation of serde::Serializer serializing directly into a hash digest (anything implementing digest::Update).

use digest::Digest;
use k256::ecdsa::SigningKey;
use rand_core::OsRng;
use serde::Serialize;
use sha2::Sha256;

use hashing_serializer::HashingSerializer;

let sk = SigningKey::random(&mut OsRng);
let vk = sk.verifying_key();

let mut digest = Sha256::new();
let serializer = HashingSerializer { digest: &mut digest };
vk.serialize(serializer).unwrap();

Dependencies

~0.6–1MB
~23K SLoC