/******************************************************************************/ /*********************METHODS**************************/ /// <summary> /// calculat md5 signature of the string in Input /// </summary> /// <returns> Digest: the finger print of msg</returns> protected Digest CalculateMD5Value() { /***********vairable declaration**************/ byte [] bMsg; //buffer to hold bits uint N; //N is the size of msg as word (32 bit) Digest dg =new Digest(); // the value to be returned // create a buffer with bits padded and length is alos padded bMsg=CreatePaddedBuffer(); N=(uint)(bMsg.Length*8)/32; //no of 32 bit blocks for (uint i=0; i<N/16;i++) { CopyBlock(bMsg,i); PerformTransformation(ref dg.A,ref dg.B,ref dg.C,ref dg.D); } return dg; }
/******************************************************************************/ /*********************METHODS**************************/ /// <summary> /// calculat md5 signature of the string in Input /// </summary> /// <returns> Digest: the finger print of msg</returns> protected Digest CalculateMD5Value() { /***********vairable declaration**************/ byte[] bMsg; //buffer to hold bits uint N; //N is the size of msg as word (32 bit) Digest dg = new Digest(); // the value to be returned // jsc can handle local byrefs for now var dg_A = dg.A; var dg_B = dg.B; var dg_C = dg.C; var dg_D = dg.D; Console.WriteLine( "CalculateMD5Value enter " + new { dg_A, dg_B, dg_C, dg_D } ); // create a buffer with bits padded and length is alos padded bMsg = CreatePaddedBuffer(); N = (uint)(bMsg.Length * 8) / 32; //no of 32 bit blocks for (uint i = 0; i < N / 16; i++) { CopyBlock(bMsg, i); // jsc do you support ref int and then also ref uint? // X:\jsc.svn\examples\javascript\test\TestByRefUInt32\TestByRefUInt32\Class1.cs PerformTransformation(ref dg_A, ref dg_B, ref dg_C, ref dg_D); //RotateLeft { uiNumber = 2911426732, shift = 21, value = 362131739 } //CalculateMD5Value PerformTransformation { i = 0, dg_A = 3649838548, dg_B = 78774415, dg_C = 2550759657, dg_D = 2118318316 } //CalculateMD5Value exit { dg_A = 3649838548, dg_B = 78774415, dg_C = 2550759657, dg_D = 2118318316 } //CalculateMD5Value enter { dg_A = 1732584193, dg_B = 4023233417, dg_C = 2562383102, dg_D = 271733878 } //RotateLeft { uiNumber = 1138166239, shift = 7, value = 3951357857 } //0:31ms CalculateMD5Value PerformTransformation { i = 0, dg_A = 141088792020, dg_B = 150402629775, dg_C = 148579647721, dg_D = 143852239084 } view-source:36394 //0:31ms CalculateMD5Value exit { dg_A = 141088792020, dg_B = 150402629775, dg_C = 148579647721, dg_D = 143852239084 } view-source:36394 //0:33ms CalculateMD5Value enter { dg_A = 1732584193, dg_B = 4023233417, dg_C = 2562383102, dg_D = 271733878 } view-source:36394 //0:33ms RotateLeft { uiNumber = 9728100831, shift = 7, value = 3951357857 } Console.WriteLine( "CalculateMD5Value PerformTransformation " + new { i, dg_A, dg_B, dg_C, dg_D } ); } // jsc can handle local byrefs for now dg.A = dg_A; dg.B = dg_B; dg.C = dg_C; dg.D = dg_D; Console.WriteLine( "CalculateMD5Value exit " + new { dg_A, dg_B, dg_C, dg_D } ); return dg; }
/// <summary> /// calculat md5 signature of the string in Input /// </summary> /// <returns> Digest: the finger print of msg</returns> protected Digest CalculateMd5Value() { /***********vairable declaration**************/ var dg =new Digest(); // the value to be returned // create a buffer with bits padded and length is alos padded BitVector[] bMsg = CreatePaddedBuffer(); uint N = (uint)(bMsg.Length*8)/32; for (uint i=0; i<N/16;i++) { CopyBlock(bMsg,i); PerformTransformation(ref dg.A,ref dg.B,ref dg.C,ref dg.D); } return dg; }