| File: System\Security\Cryptography\SHA512Managed.cs | Web Access |
| Project: src\runtime\src\libraries\System.Security.Cryptography\src\System.Security.Cryptography.csproj (System.Security.Cryptography) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; using Internal.Cryptography; namespace System.Security.Cryptography { [Obsolete(Obsoletions.DerivedCryptographicTypesMessage, DiagnosticId = Obsoletions.DerivedCryptographicTypesDiagId, UrlFormat = Obsoletions.SharedUrlFormat)] [EditorBrowsable(EditorBrowsableState.Never)] // SHA512Managed has a copy of the same implementation as SHA512 public sealed class SHA512Managed : SHA512 { private readonly HashProvider _hashProvider; public SHA512Managed() { _hashProvider = HashProviderDispenser.CreateHashProvider(HashAlgorithmNames.SHA512); HashSizeValue = _hashProvider.HashSizeInBytes * 8; } protected sealed override void HashCore(byte[] array, int ibStart, int cbSize) => _hashProvider.AppendHashData(array, ibStart, cbSize); protected sealed override void HashCore(ReadOnlySpan<byte> source) => _hashProvider.AppendHashData(source); protected sealed override byte[] HashFinal() => _hashProvider.FinalizeHashAndReset(); protected sealed override bool TryHashFinal(Span<byte> destination, out int bytesWritten) => _hashProvider.TryFinalizeHashAndReset(destination, out bytesWritten); public sealed override void Initialize() => _hashProvider.Reset(); protected sealed override void Dispose(bool disposing) { _hashProvider.Dispose(disposing); base.Dispose(disposing); } } }