/*
	Licensed to the Apache Software Foundation (ASF) under one
	or more contributor license agreements.  See the NOTICE file
	distributed with this work for additional information
	regarding copyright ownership.  The ASF licenses this file
	to you under the Apache License, Version 2.0 (the
	"License"); you may not use this file except in compliance
	with the License.  You may obtain a copy of the License at
	
	http://www.apache.org/licenses/LICENSE-2.0

	Unless required by applicable law or agreed to in writing,
	software distributed under the License is distributed on an
	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
	KIND, either express or implied.  See the License for the
	specific language governing permissions and limitations
	under the License.
*/

var HASH512 = function() {
	this.length=[];
	this.h=[];
	this.w=[];
	this.init();
};

HASH512.prototype={

	transform: function()
	{ /* basic transformation step */
		var a,b,c,d,e,ee,zz,f,g,hh,t1,t2;
		var j,r;
		for (j=16;j<80;j++) 
			this.w[j]=HASH512.theta1(this.w[j-2]).add(this.w[j-7]).add(HASH512.theta0(this.w[j-15])).add(this.w[j-16]);

		a=this.h[0].copy(); b=this.h[1].copy(); c=this.h[2].copy(); d=this.h[3].copy(); 
		e=this.h[4].copy(); f=this.h[5].copy(); g=this.h[6].copy(); hh=this.h[7].copy();
	
		for (j=0;j<80;j++)
		{ /* 80 times - mush it up */
			t1=hh.copy();
			t1.add(HASH512.Sig1(e)).add(HASH512.Ch(e,f,g)).add(HASH512.HK[j]).add(this.w[j]);

			t2=HASH512.Sig0(a); t2.add(HASH512.Maj(a,b,c));
			hh=g; g=f; f=e;
			e=d.copy(); e.add(t1);

			d=c;
			c=b;
			b=a;
			a=t1.copy(); a.add(t2);
		}

		this.h[0].add(a); this.h[1].add(b); this.h[2].add(c); this.h[3].add(d);
		this.h[4].add(e); this.h[5].add(f); this.h[6].add(g); this.h[7].add(hh);
	},

/* Initialise Hash function */
	init: function()
	{ /* initialise */
		var i;
		for (i=0;i<80;i++) this.w[i]=new UInt64(0,0);
		this.length[0]=new UInt64(0,0); this.length[1]=new UInt64(0,0);
		this.h[0]=HASH512.H[0].copy();
		this.h[1]=HASH512.H[1].copy();
		this.h[2]=HASH512.H[2].copy();
		this.h[3]=HASH512.H[3].copy();
		this.h[4]=HASH512.H[4].copy();
		this.h[5]=HASH512.H[5].copy();
		this.h[6]=HASH512.H[6].copy();
		this.h[7]=HASH512.H[7].copy();
	},	

/* process a single byte */
	process: function(byt)
	{ /* process the next message byte */
		var cnt;
		cnt=(this.length[0].bot>>>6)%16;
		this.w[cnt].shlb();
		this.w[cnt].bot|=(byt&0xFF);

		var e=new UInt64(0,8);
		this.length[0].add(e);
		if (this.length[0].top===0 && this.length[0].bot==0) { e=new UInt64(0,1); this.length[1].add(e); }
		if ((this.length[0].bot%1024)===0) this.transform();
	},

/* process an array of bytes */	
	process_array: function(b)
	{
		for (var i=0;i<b.length;i++) this.process(b[i]);
	},

/* process a 32-bit integer */
	process_num: function(n)
	{
		this.process((n>>24)&0xff);
		this.process((n>>16)&0xff);
		this.process((n>>8)&0xff);
		this.process(n&0xff);
	},

	hash: function()
	{ /* pad message and finish - supply digest */
		var i;
		var digest=[];
		var len0,len1;
		len0=this.length[0].copy();
		len1=this.length[1].copy();
		this.process(0x80);
		while ((this.length[0].bot%1024)!=896) this.process(0);

		this.w[14]=len1;
		this.w[15]=len0;    
		this.transform();

		for (i=0;i<HASH512.len;i++)
		{ /* convert to bytes */
			digest[i]=HASH512.R(8*(7-i%8),this.h[i>>>3]).bot&0xff;
		}

		this.init();
		return digest;
	}
};

/* static functions */
HASH512.S= function(n,x)
{
	if (n==0) return x;
	if (n<32)
		return new UInt64((x.top>>>n) | (x.bot<<(32-n)),       (x.bot>>>n) | (x.top << (32-n)));
	else
		return new UInt64((x.bot>>>(n-32)) | (x.top << (64-n)),(x.top>>>(n-32)) | (x.bot<<(64-n)));
	
};

HASH512.R= function(n,x)
{
	if (n==0) return x;
	if (n<32)
		return new UInt64((x.top>>>n),(x.bot>>>n | (x.top << (32-n))));
	else
		return new UInt64(0,x.top >>> (n-32));
};

HASH512.Ch= function(x,y,z)
{
	return new UInt64((x.top&y.top)^(~(x.top)&z.top),(x.bot&y.bot)^(~(x.bot)&z.bot));
};

HASH512.Maj= function(x,y,z)
{
	return new UInt64((x.top&y.top)^(x.top&z.top)^(y.top&z.top),(x.bot&y.bot)^(x.bot&z.bot)^(y.bot&z.bot));
};

HASH512.Sig0= function(x)
{
	var r1=HASH512.S(28,x);
	var r2=HASH512.S(34,x);
	var r3=HASH512.S(39,x);
	return new UInt64(r1.top^r2.top^r3.top,r1.bot^r2.bot^r3.bot);
};

HASH512.Sig1= function(x)
{
	var r1=HASH512.S(14,x);
	var r2=HASH512.S(18,x);
	var r3=HASH512.S(41,x);
	return new UInt64(r1.top^r2.top^r3.top,r1.bot^r2.bot^r3.bot);
};

HASH512.theta0= function(x)
{
	var r1=HASH512.S(1,x);
	var r2=HASH512.S(8,x);
	var r3=HASH512.R(7,x);
	return new UInt64(r1.top^r2.top^r3.top,r1.bot^r2.bot^r3.bot);
};

HASH512.theta1= function(x)
{
	var r1=HASH512.S(19,x);
	var r2=HASH512.S(61,x);
	var r3=HASH512.R(6,x);
	return new UInt64(r1.top^r2.top^r3.top,r1.bot^r2.bot^r3.bot);
};

/* constants */
HASH512.len= 64;

HASH512.H = [new UInt64(0x6a09e667, 0xf3bcc908), new UInt64(0xbb67ae85, 0x84caa73b),
      new UInt64(0x3c6ef372, 0xfe94f82b), new UInt64(0xa54ff53a, 0x5f1d36f1),
      new UInt64(0x510e527f, 0xade682d1), new UInt64(0x9b05688c, 0x2b3e6c1f),
      new UInt64(0x1f83d9ab, 0xfb41bd6b), new UInt64(0x5be0cd19, 0x137e2179)];

HASH512.HK = [new UInt64(0x428a2f98, 0xd728ae22), new UInt64(0x71374491, 0x23ef65cd),
      new UInt64(0xb5c0fbcf, 0xec4d3b2f), new UInt64(0xe9b5dba5, 0x8189dbbc),
      new UInt64(0x3956c25b, 0xf348b538), new UInt64(0x59f111f1, 0xb605d019),
      new UInt64(0x923f82a4, 0xaf194f9b), new UInt64(0xab1c5ed5, 0xda6d8118),
      new UInt64(0xd807aa98, 0xa3030242), new UInt64(0x12835b01, 0x45706fbe),
      new UInt64(0x243185be, 0x4ee4b28c), new UInt64(0x550c7dc3, 0xd5ffb4e2),
      new UInt64(0x72be5d74, 0xf27b896f), new UInt64(0x80deb1fe, 0x3b1696b1),
      new UInt64(0x9bdc06a7, 0x25c71235), new UInt64(0xc19bf174, 0xcf692694),
      new UInt64(0xe49b69c1, 0x9ef14ad2), new UInt64(0xefbe4786, 0x384f25e3),
      new UInt64(0x0fc19dc6, 0x8b8cd5b5), new UInt64(0x240ca1cc, 0x77ac9c65),
      new UInt64(0x2de92c6f, 0x592b0275), new UInt64(0x4a7484aa, 0x6ea6e483),
      new UInt64(0x5cb0a9dc, 0xbd41fbd4), new UInt64(0x76f988da, 0x831153b5),
      new UInt64(0x983e5152, 0xee66dfab), new UInt64(0xa831c66d, 0x2db43210),
      new UInt64(0xb00327c8, 0x98fb213f), new UInt64(0xbf597fc7, 0xbeef0ee4),
      new UInt64(0xc6e00bf3, 0x3da88fc2), new UInt64(0xd5a79147, 0x930aa725),
      new UInt64(0x06ca6351, 0xe003826f), new UInt64(0x14292967, 0x0a0e6e70),
      new UInt64(0x27b70a85, 0x46d22ffc), new UInt64(0x2e1b2138, 0x5c26c926),
      new UInt64(0x4d2c6dfc, 0x5ac42aed), new UInt64(0x53380d13, 0x9d95b3df),
      new UInt64(0x650a7354, 0x8baf63de), new UInt64(0x766a0abb, 0x3c77b2a8),
      new UInt64(0x81c2c92e, 0x47edaee6), new UInt64(0x92722c85, 0x1482353b),
      new UInt64(0xa2bfe8a1, 0x4cf10364), new UInt64(0xa81a664b, 0xbc423001),
      new UInt64(0xc24b8b70, 0xd0f89791), new UInt64(0xc76c51a3, 0x0654be30),
      new UInt64(0xd192e819, 0xd6ef5218), new UInt64(0xd6990624, 0x5565a910),
      new UInt64(0xf40e3585, 0x5771202a), new UInt64(0x106aa070, 0x32bbd1b8),
      new UInt64(0x19a4c116, 0xb8d2d0c8), new UInt64(0x1e376c08, 0x5141ab53),
      new UInt64(0x2748774c, 0xdf8eeb99), new UInt64(0x34b0bcb5, 0xe19b48a8),
      new UInt64(0x391c0cb3, 0xc5c95a63), new UInt64(0x4ed8aa4a, 0xe3418acb),
      new UInt64(0x5b9cca4f, 0x7763e373), new UInt64(0x682e6ff3, 0xd6b2b8a3),
      new UInt64(0x748f82ee, 0x5defb2fc), new UInt64(0x78a5636f, 0x43172f60),
      new UInt64(0x84c87814, 0xa1f0ab72), new UInt64(0x8cc70208, 0x1a6439ec),
      new UInt64(0x90befffa, 0x23631e28), new UInt64(0xa4506ceb, 0xde82bde9),
      new UInt64(0xbef9a3f7, 0xb2c67915), new UInt64(0xc67178f2, 0xe372532b),
      new UInt64(0xca273ece, 0xea26619c), new UInt64(0xd186b8c7, 0x21c0c207),
      new UInt64(0xeada7dd6, 0xcde0eb1e), new UInt64(0xf57d4f7f, 0xee6ed178),
      new UInt64(0x06f067aa, 0x72176fba), new UInt64(0x0a637dc5, 0xa2c898a6),
      new UInt64(0x113f9804, 0xbef90dae), new UInt64(0x1b710b35, 0x131c471b),
      new UInt64(0x28db77f5, 0x23047d84), new UInt64(0x32caab7b, 0x40c72493),
      new UInt64(0x3c9ebe0a, 0x15c9bebc), new UInt64(0x431d67c4, 0x9c100d4c),
      new UInt64(0x4cc5d4be, 0xcb3e42b6), new UInt64(0x597f299c, 0xfc657e2a),
      new UInt64(0x5fcb6fab, 0x3ad6faec), new UInt64(0x6c44198c, 0x4a475817)];
