diff --git a/openssl/src/sha.rs b/openssl/src/sha.rs index a33a0f6c..7f6c4067 100644 --- a/openssl/src/sha.rs +++ b/openssl/src/sha.rs @@ -313,6 +313,20 @@ mod test { assert_eq!(hex::encode(hasher.finish()), expected); } + #[test] + fn cloning_allows_incremental_hashing() { + let expected = "a9993e364706816aba3e25717850c26c9cd0d89d"; + + let mut hasher = Sha1::new(); + hasher.update(b"a"); + + let mut incr_hasher = hasher.clone(); + incr_hasher.update(b"bc"); + + assert_eq!(hex::encode(incr_hasher.finish()), expected); + assert_ne!(hex::encode(hasher.finish()), expected); + } + #[test] fn standalone_224() { let data = b"abc";