Function sha::sha512::ops::digest_round_x4
[-] [+]
[src]
pub fn digest_round_x4(state: &mut [u64; 8], k: [u64; 4], w: [u64; 4])
There are no plans for hardware implementations at this time, but this function can be easily implemented with some kind of SIMD assistance.
{
// this is to illustrate the data order
let ae = u64x2(a, e);
let bf = u64x2(b, f);
let cg = u64x2(c, g);
let dh = u64x2(d, h);
// this is the core expression
dh = sha512rnd(dh, ae, bf, cg, work[0]);
cg = sha512rnd(cg, dh, ae, bf, work[1]);
bf = sha512rnd(bf, cg, dh, ae, work[2]);
ae = sha512rnd(ae, bf, cg, dh, work[3]);
a = ae.0;
b = bf.0;
c = cg.0;
d = dh.0;
e = ae.1;
f = bf.1;
g = cg.1;
h = dh.1;
}