Changeset - e2095e3881bf
[Not reviewed]
default
0 9 0
Laman - 3 years ago 2022-04-01 13:09:18

reformated with more whitespace
1 file changed with 3 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/blake.js
Show inline comments
 
@@ -44,51 +44,53 @@ BLAKE2S.prototype.digest=function(){
 
};
 

	
 
BLAKE2S.prototype._compress=function(last){
 
	const SIGMA=[
 
		[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
 
		[14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],
 
		[11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4],
 
		[7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8],
 
		[9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13],
 
		[2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9],
 
		[12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11],
 
		[13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10],
 
		[6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5],
 
		[10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]
 
	];
 
	let v=this._state.concat(IV);
 
	v[12]^=this._dataLen[0];
 
	v[13]^=this._dataLen[1];
 
	if(last){v[14]^=MASK;}
 
	let data=bytes2int32s(this._buffer);
 

	
 
	for(let i=0;i<10;i++){
 
		let perm=SIGMA[i%10];
 
		this._mix(v,0,4,8,12,data[perm[0]],data[perm[1]]);
 
		this._mix(v,1,5,9,13,data[perm[2]],data[perm[3]]);
 
		this._mix(v,2,6,10,14,data[perm[4]],data[perm[5]]);
 
		this._mix(v,3,7,11,15,data[perm[6]],data[perm[7]]);
 

	
 
		this._mix(v,0,5,10,15,data[perm[8]],data[perm[9]]);
 
		this._mix(v,1,6,11,12,data[perm[10]],data[perm[11]]);
 
		this._mix(v,2,7,8,13,data[perm[12]],data[perm[13]]);
 
		this._mix(v,3,4,9,14,data[perm[14]],data[perm[15]]);
 
	}
 

	
 
	this._state=this._state.map((x,i)=>x^v[i]^v[i+8]);
 
};
 

	
 
BLAKE2S.prototype._mix=function(arr,ia,ib,ic,id,x,y){
 
	let a=arr[ia], b=arr[ib], c=arr[ic], d=arr[id];
 
	a=(a+b+x)&MASK; d=rrot(d^a,16);
 
	c=(c+d)&MASK; b=rrot(b^c,12);
 
	a=(a+b+y)&MASK; d=rrot(d^a,8);
 
	c=(c+d)&MASK; b=rrot(b^c,7);
 
	arr[ia]=a; arr[ib]=b; arr[ic]=c; arr[id]=d;
 
};
 

	
 
export function blake2s(data,outputLen=32,key=[]){
 
	let h=new BLAKE2S(outputLen,key);
 
	for(let i=0;i<data.length;i+=BLOCK_LEN){h.update(data.slice(i,i+BLOCK_LEN));}
 
	for (let i = 0; i < data.length; i += BLOCK_LEN) {
 
		h.update(data.slice(i, i + BLOCK_LEN));
 
	}
 
	return h.digest();
 
}
0 comments (0 inline, 0 general)