| File: System\IdentityModel\HashStream.cs | Web Access |
| Project: src\src\System.ServiceModel.Primitives\src\System.ServiceModel.Primitives.csproj (System.ServiceModel.Primitives) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.IO; using System.Security.Cryptography; using System.ServiceModel; namespace System.IdentityModel { internal sealed class HashStream : Stream { private bool _disposed; private MemoryStream _logStream; /// <summary> /// Constructor for HashStream. The HashAlgorithm instance is owned by the caller. /// </summary> public HashStream(HashAlgorithm hash) { if (hash == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(hash)); } Reset(hash); } public override bool CanRead { get { return false; } } public override bool CanWrite { get { return true; } } public override bool CanSeek { get { return false; } } public override long Length { get { return 0L; } } public override long Position { get { return 0L; } set { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } } public override void Flush() { } public void FlushHash() { FlushHash(null); } public void FlushHash(MemoryStream preCanonicalBytes) { throw ExceptionHelper.PlatformNotSupported(); } public byte[] FlushHashAndGetValue() { return FlushHashAndGetValue(null); } public byte[] FlushHashAndGetValue(MemoryStream preCanonicalBytes) { throw ExceptionHelper.PlatformNotSupported(); } public override int Read(byte[] buffer, int offset, int count) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } public void Reset() { throw ExceptionHelper.PlatformNotSupported(); } public void Reset(HashAlgorithm hash) { throw ExceptionHelper.PlatformNotSupported(); } public override void Write(byte[] buffer, int offset, int count) { throw ExceptionHelper.PlatformNotSupported(); } public override long Seek(long offset, SeekOrigin origin) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } public override void SetLength(long length) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } protected override void Dispose(bool disposing) { base.Dispose(disposing); if (_disposed) { return; } if (disposing) { // // Free all of our managed resources // if (_logStream != null) { _logStream.Dispose(); _logStream = null; } } // Free native resources, if any. _disposed = true; } } }