encryption-rust 1.3.0

可插拔密码学组件库的 Rust 实现:在统一契约下提供对称加密、非对称加密、哈希、密钥派生(HKDF / PBKDF2 / Argon2 / scrypt)、签名(SM2 / ECDSA / Ed25519)、密钥协商(ECDH / X25519)与后量子密钥封装(ML-KEM),包含 AES/Sodium 与国密 SM2/SM3/SM4/ZUC 等实现
Documentation
// Copyright (c) 2026 erik <erik@erik.xyz> — https://erik.xyz

//! SHA-256 哈希;输出 32 字节。

use sha2::Sha256;

use crate::hash::{NamedDigest, hasher};

hasher!(Sha256Hasher, "sha256", "SHA-256 哈希器(无状态,可复用)。");

impl NamedDigest for Sha256Hasher {
    type Core = Sha256;
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::contract::Hasher;

    #[test]
    fn matches_known_vector() {
        let hasher = Sha256Hasher::new();
        assert_eq!(
            hasher.digest_hex(b"abc").unwrap(),
            "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
        );
        assert_eq!(hasher.digest(b"abc").unwrap().len(), 32);
    }
}