src/sha_dev.js
function rotr_64(x, n)
	{
		var retVal = null, tmp = new Int_64(x.highOrder, x.lowOrder);

		if (32 >= n)
		{
			retVal = new Int_64(
					(tmp.highOrder >>> n) | ((tmp.lowOrder << (32 - n)) & 0xFFFFFFFF),
					(tmp.lowOrder >>> n) | ((tmp.highOrder << (32 - n)) & 0xFFFFFFFF)
				);
		}
		else
		{
			retVal = new Int_64(
					(tmp.lowOrder >>> (n - 32)) | ((tmp.highOrder << (64 - n)) & 0xFFFFFFFF),
					(tmp.highOrder >>> (n - 32)) | ((tmp.lowOrder << (64 - n)) & 0xFFFFFFFF)
				);
		}

		return retVal;
	}
function rotr_64(x, n)
	{
		var retVal = null, tmp = new Int_64(x.highOrder, x.lowOrder);

		if (32 >= n)
		{
			retVal = new Int_64(
					(tmp.highOrder >>> n) | ((tmp.lowOrder << (32 - n)) & 0xFFFFFFFF),
					(tmp.lowOrder >>> n) | ((tmp.highOrder << (32 - n)) & 0xFFFFFFFF)
				);
		}
		else
		{
			retVal = new Int_64(
					(tmp.lowOrder >>> (n - 32)) | ((tmp.highOrder << (64 - n)) & 0xFFFFFFFF),
					(tmp.highOrder >>> (n - 32)) | ((tmp.lowOrder << (64 - n)) & 0xFFFFFFFF)
				);
		}

		return retVal;
	}
function rotr_64 ( x , n ) { var retVal = null , tmp = new Int_64 ( x . highOrder , x . lowOrder ) ; if ( 32 >= n ) { retVal = new Int_64 ( ( tmp . highOrder >>> n ) | ( ( tmp . lowOrder << ( 32 - n ) ) & 0xFFFFFFFF ) , ( tmp . lowOrder >>> n ) | ( ( tmp . highOrder << ( 32 - n ) ) & 0xFFFFFFFF ) ) ; } else { retVal = new Int_64 ( ( tmp . lowOrder >>> ( n - 32 ) ) | ( ( tmp . highOrder << ( 64 - n ) ) & 0xFFFFFFFF ) , ( tmp . highOrder >>> ( n - 32 ) ) | ( ( tmp . lowOrder << ( 64 - n ) ) & 0xFFFFFFFF ) ) ; } return retVal ; }
The 64-bit implementation of circular rotate right

@private
@param {Int_64} x The 64-bit integer argument
@param {number} n The number of bits to shift
@return {Int_64} The x shifted circularly by n bits
The 64 - bit implementation of circular rotate right