Esempio n. 1
0
		/******************************************************************************/
		/*********************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;
		}
Esempio n. 2
0
        /******************************************************************************/
        /*********************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;
        }
Esempio n. 3
0
        /// <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;
        }