in src/sha3.js [163:201]
squeeze: function(buff, olen) {
var done,
m = 0,
i, j, k, el;
/* extract by columns */
done = false;
for (;;) {
for (j = 0; j < 5; j++) {
for (i = 0; i < 5; i++) {
el = this.S[i][j].copy();
for (k = 0; k < 8; k++) {
buff[m++] = (el.bot & 0xff);
if (m >= olen || (m % this.rate) == 0) {
done = true;
break;
}
el = SHA3.rotl(el, 56);
}
if (done) {
break;
}
}
if (done) {
break;
}
}
if (m >= olen) {
break;
}
done = false;
this.transform();
}
},