MD5CryptoServiceProvider.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / MD5CryptoServiceProvider.cs / 1305376 / MD5CryptoServiceProvider.cs

                            using System.Diagnostics.Contracts; 
// ==++==
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// ==--==
// [....] 
// 

// 
// MD5CryptoServiceProvider.cs
//

namespace System.Security.Cryptography { 
[System.Runtime.InteropServices.ComVisible(true)]
    public sealed class MD5CryptoServiceProvider : MD5 { 
        [System.Security.SecurityCritical /*auto-generated*/] 
        private SafeHashHandle _safeHashHandle = null;
 
        //
        // public constructors
        //
 
        [System.Security.SecuritySafeCritical]  // auto-generated
        public MD5CryptoServiceProvider() { 
            if (CryptoConfig.AllowOnlyFipsAlgorithms) 
                throw new InvalidOperationException(Environment.GetResourceString("Cryptography_NonCompliantFIPSAlgorithm"));
            Contract.EndContractBlock(); 

            // _CreateHash will check for failures and throw the appropriate exception
            _safeHashHandle = Utils.CreateHash(Utils.StaticProvHandle, Constants.CALG_MD5);
        } 

        [System.Security.SecuritySafeCritical] // overrides public transparent member 
        protected override void Dispose(bool disposing) 
        {
            if (_safeHashHandle != null && !_safeHashHandle.IsClosed) 
                _safeHashHandle.Dispose();
            base.Dispose(disposing);
        }
 
        //
        // public methods 
        // 

        [System.Security.SecuritySafeCritical]  // auto-generated 
        public override void Initialize() {
            if (_safeHashHandle != null && !_safeHashHandle.IsClosed)
                _safeHashHandle.Dispose();
 
            // _CreateHash will check for failures and throw the appropriate exception
            _safeHashHandle = Utils.CreateHash(Utils.StaticProvHandle, Constants.CALG_MD5); 
        } 

        [System.Security.SecuritySafeCritical] // overrides protected transparent member 
        protected override void HashCore(byte[] rgb, int ibStart, int cbSize)
        {
            Utils.HashData(_safeHashHandle, rgb, ibStart, cbSize);
        } 

        [System.Security.SecuritySafeCritical] // overrides protected transparent member 
        protected override byte[] HashFinal() { 
            return Utils.EndHash(_safeHashHandle);
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK