Function sha::sha256::ops::digest_round_x4 [-] [+] [src]

pub fn digest_round_x4(state: &mut [u32; 8], k: [u32; 4], w: [u32; 4])

This function can be easily implemented with Intel SHA intruction set extensions.

{
    let abef = u32x4(a, b, e, f);
    let cdgh = u32x4(c, d, g, h);

    cdgh = sha256rnds2(cdgh, abef, work);
    abef = sha256rnds2(abef, cdgh, sha256swap(work));

    a = abef.0;
    b = abef.1;
    c = cdgh.0;
    d = cdgh.1;
    e = abef.2;
    f = abef.3;
    g = cdgh.2;
    h = cdgh.3;
}