streamsha/
lib.rs

1//! # StreamSha
2//! Streamed, resumable Secure Hashing Algorithm(SHA) library
3//!
4//! ## Example
5//! ```rust
6//! # extern crate streamsha;
7//! use streamsha::Sha256;
8//! use streamsha::traits::{
9//!   StreamHasher, Resumable
10//! };
11//! # fn main() {
12//! // Simple hashing
13//! let mut hasher = Sha256::new();
14//! hasher.update(b"pien");
15//! hasher.update(b"paon");
16//! let hash1 = hasher.finish();
17//!
18//! // Pause
19//! let mut hasher1 = Sha256::new();
20//! hasher1.update(b"pien");
21//! let state1 = hasher1.pause();
22//! 
23//! // Resume on the other instance
24//! let mut hasher2 = Sha256::resume(state1).unwrap();
25//! hasher2.update(b"paon");
26//! let hash2 = hasher2.finish();
27//! 
28//! assert_eq!(hash1, hash2);
29//! # }
30//! ```
31
32#![no_std]
33#[macro_use]
34mod utils;
35mod consts;
36pub mod traits;
37mod sha1;
38mod sha256;
39mod sha512;
40pub mod hash_state;
41
42mod arith;
43pub use self::sha1::Sha1;
44pub use self::sha256::Sha256;
45pub use self::sha512::Sha512;