blockset-lib 0.7.0

BLOCKSET internal library
Documentation
use crate::uint::u256::U256;

pub const SHA224: U256 = [
    0xf70e5939_3070dd17_367cd507_c1059ed8,
    0xbefa4fa4_64f98fa7_68581511_ffc00b31,
];

#[cfg(test)]
mod test {
    use wasm_bindgen_test::wasm_bindgen_test;

    use crate::{sha2::compress::compress, uint::u256::U256};

    use super::SHA224;

    const A: U256 = compress(SHA224, [[0x8000_0000, 0], [0, 0]]);

    const _: () = assert!({
        let x = A;
        x[0] == 0x288234c4_476102bb_2a3a2bc9_d14a028c
            && (x[1] & ((1 << 96) - 1)) == 0xc5b3e42f_828ea62a_15a2b01f
    });

    #[wasm_bindgen_test]
    #[test]
    fn test() {
        let mut x = A;
        x[1] |= 0xFFFF_FFFF << 96;
        assert_eq!(
            x,
            [
                0x288234c4_476102bb_2a3a2bc9_d14a028c,
                0xFFFFFFFF_c5b3e42f_828ea62a_15a2b01f,
            ]
        );
    }

    #[wasm_bindgen_test]
    #[test]
    fn runtime_test() {
        let mut x = compress(SHA224, [[0x8000_0000, 0], [0, 0]]);
        x[1] |= 0xFFFF_FFFF << 96;
        assert_eq!(
            x,
            [
                0x288234c4_476102bb_2a3a2bc9_d14a028c,
                0xFFFFFFFF_c5b3e42f_828ea62a_15a2b01f,
            ]
        );
    }
}