/** * Copy constructor. We are using copy constructors in place * of the object.Clone() interface as this interface is not * supported by J2ME. */ internal LongDigest( LongDigest t) { xBuf = new byte[t.xBuf.Length]; CopyIn(t); }
internal void ProcessBlock() { this.AdjustByteCounts(); for (int i = 16; i <= 79; i++) { this.W[i] = LongDigest.Sigma1(this.W[i - 2]) + this.W[i - 7] + LongDigest.Sigma0(this.W[i - 15]) + this.W[i - 16]; } ulong num = this.H1; ulong num2 = this.H2; ulong num3 = this.H3; ulong num4 = this.H4; ulong num5 = this.H5; ulong num6 = this.H6; ulong num7 = this.H7; ulong num8 = this.H8; int num9 = 0; for (int j = 0; j < 10; j++) { num8 += LongDigest.Sum1(num5) + LongDigest.Ch(num5, num6, num7) + LongDigest.K[num9] + this.W[num9++]; num4 += num8; num8 += LongDigest.Sum0(num) + LongDigest.Maj(num, num2, num3); num7 += LongDigest.Sum1(num4) + LongDigest.Ch(num4, num5, num6) + LongDigest.K[num9] + this.W[num9++]; num3 += num7; num7 += LongDigest.Sum0(num8) + LongDigest.Maj(num8, num, num2); num6 += LongDigest.Sum1(num3) + LongDigest.Ch(num3, num4, num5) + LongDigest.K[num9] + this.W[num9++]; num2 += num6; num6 += LongDigest.Sum0(num7) + LongDigest.Maj(num7, num8, num); num5 += LongDigest.Sum1(num2) + LongDigest.Ch(num2, num3, num4) + LongDigest.K[num9] + this.W[num9++]; num += num5; num5 += LongDigest.Sum0(num6) + LongDigest.Maj(num6, num7, num8); num4 += LongDigest.Sum1(num) + LongDigest.Ch(num, num2, num3) + LongDigest.K[num9] + this.W[num9++]; num8 += num4; num4 += LongDigest.Sum0(num5) + LongDigest.Maj(num5, num6, num7); num3 += LongDigest.Sum1(num8) + LongDigest.Ch(num8, num, num2) + LongDigest.K[num9] + this.W[num9++]; num7 += num3; num3 += LongDigest.Sum0(num4) + LongDigest.Maj(num4, num5, num6); num2 += LongDigest.Sum1(num7) + LongDigest.Ch(num7, num8, num) + LongDigest.K[num9] + this.W[num9++]; num6 += num2; num2 += LongDigest.Sum0(num3) + LongDigest.Maj(num3, num4, num5); num += LongDigest.Sum1(num6) + LongDigest.Ch(num6, num7, num8) + LongDigest.K[num9] + this.W[num9++]; num5 += num; num += LongDigest.Sum0(num2) + LongDigest.Maj(num2, num3, num4); } this.H1 += num; this.H2 += num2; this.H3 += num3; this.H4 += num4; this.H5 += num5; this.H6 += num6; this.H7 += num7; this.H8 += num8; this.wOff = 0; Array.Clear(this.W, 0, 16); }
protected void CopyIn(LongDigest t) { Array.Copy(t.xBuf, 0, xBuf, 0, t.xBuf.Length); xBufOff = t.xBufOff; byteCount1 = t.byteCount1; byteCount2 = t.byteCount2; H1 = t.H1; H2 = t.H2; H3 = t.H3; H4 = t.H4; H5 = t.H5; H6 = t.H6; H7 = t.H7; H8 = t.H8; Array.Copy(t.W, 0, W, 0, t.W.Length); wOff = t.wOff; }
protected void CopyIn(LongDigest t) { Array.Copy(t.xBuf, 0, this.xBuf, 0, t.xBuf.Length); this.xBufOff = t.xBufOff; this.byteCount1 = t.byteCount1; this.byteCount2 = t.byteCount2; this.H1 = t.H1; this.H2 = t.H2; this.H3 = t.H3; this.H4 = t.H4; this.H5 = t.H5; this.H6 = t.H6; this.H7 = t.H7; this.H8 = t.H8; Array.Copy(t.W, 0, this.W, 0, t.W.Length); this.wOff = t.wOff; }
protected void CopyIn(LongDigest t) { global::System.Array.Copy((global::System.Array)t.xBuf, 0, (global::System.Array)xBuf, 0, t.xBuf.Length); xBufOff = t.xBufOff; byteCount1 = t.byteCount1; byteCount2 = t.byteCount2; H1 = t.H1; H2 = t.H2; H3 = t.H3; H4 = t.H4; H5 = t.H5; H6 = t.H6; H7 = t.H7; H8 = t.H8; global::System.Array.Copy((global::System.Array)t.W, 0, (global::System.Array)W, 0, t.W.Length); wOff = t.wOff; }
/** * Copy constructor. We are using copy constructors in place * of the object.Clone() interface as this interface is not * supported by J2ME. */ internal LongDigest( LongDigest t) { xBuf = new byte[t.xBuf.Length]; Array.Copy(t.xBuf, 0, xBuf, 0, t.xBuf.Length); xBufOff = t.xBufOff; byteCount1 = t.byteCount1; byteCount2 = t.byteCount2; H1 = t.H1; H2 = t.H2; H3 = t.H3; H4 = t.H4; H5 = t.H5; H6 = t.H6; H7 = t.H7; H8 = t.H8; Array.Copy(t.W, 0, W, 0, t.W.Length); wOff = t.wOff; }
internal LongDigest(LongDigest t) { this.xBuf = new byte[t.xBuf.Length]; this.CopyIn(t); }