Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / HashStream.cs / 1305376 / HashStream.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.IO; using System.Security.Cryptography; using System.IdentityModel.Diagnostics; sealed class HashStream : Stream { HashAlgorithm hash; long length; bool hashNeedsReset; MemoryStream logStream; public HashStream(HashAlgorithm hash) { if (hash == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("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 HashAlgorithm Hash { get { return this.hash; } } public override long Length { get { return this.length; } } public override long Position { get { return this.length; } set { // PreSharp Bug: Property get methods should not throw exceptions. #pragma warning suppress 56503 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } } public override void Flush() { } public void FlushHash() { this.hash.TransformFinalBlock(CryptoHelper.EmptyBuffer, 0, 0); if (DigestTraceRecordHelper.ShouldTraceDigest) DigestTraceRecordHelper.TraceDigest(this.logStream, this.hash); } public byte[] FlushHashAndGetValue() { FlushHash(); return this.hash.Hash; } public override int Read(byte[] buffer, int offset, int count) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } public void Reset() { if (this.hashNeedsReset) { this.hash.Initialize(); this.hashNeedsReset = false; } this.length = 0; if (DigestTraceRecordHelper.ShouldTraceDigest) this.logStream = new MemoryStream(); } public void Reset(HashAlgorithm hash) { this.hash = hash; this.hashNeedsReset = false; this.length = 0; if (DigestTraceRecordHelper.ShouldTraceDigest) this.logStream = new MemoryStream(); } public override void Write(byte[] buffer, int offset, int count) { this.hash.TransformBlock(buffer, offset, count, buffer, offset); this.length += count; this.hashNeedsReset = true; if (DigestTraceRecordHelper.ShouldTraceDigest) this.logStream.Write(buffer, offset, count); } 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()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.IO; using System.Security.Cryptography; using System.IdentityModel.Diagnostics; sealed class HashStream : Stream { HashAlgorithm hash; long length; bool hashNeedsReset; MemoryStream logStream; public HashStream(HashAlgorithm hash) { if (hash == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("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 HashAlgorithm Hash { get { return this.hash; } } public override long Length { get { return this.length; } } public override long Position { get { return this.length; } set { // PreSharp Bug: Property get methods should not throw exceptions. #pragma warning suppress 56503 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } } public override void Flush() { } public void FlushHash() { this.hash.TransformFinalBlock(CryptoHelper.EmptyBuffer, 0, 0); if (DigestTraceRecordHelper.ShouldTraceDigest) DigestTraceRecordHelper.TraceDigest(this.logStream, this.hash); } public byte[] FlushHashAndGetValue() { FlushHash(); return this.hash.Hash; } public override int Read(byte[] buffer, int offset, int count) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } public void Reset() { if (this.hashNeedsReset) { this.hash.Initialize(); this.hashNeedsReset = false; } this.length = 0; if (DigestTraceRecordHelper.ShouldTraceDigest) this.logStream = new MemoryStream(); } public void Reset(HashAlgorithm hash) { this.hash = hash; this.hashNeedsReset = false; this.length = 0; if (DigestTraceRecordHelper.ShouldTraceDigest) this.logStream = new MemoryStream(); } public override void Write(byte[] buffer, int offset, int count) { this.hash.TransformBlock(buffer, offset, count, buffer, offset); this.length += count; this.hashNeedsReset = true; if (DigestTraceRecordHelper.ShouldTraceDigest) this.logStream.Write(buffer, offset, count); } 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()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GlyphTypeface.cs
- DocumentPaginator.cs
- FreezableDefaultValueFactory.cs
- CheckPair.cs
- WebServiceEndpoint.cs
- ResourceProviderFactory.cs
- JsonFormatWriterGenerator.cs
- RuleEngine.cs
- TableLayoutSettings.cs
- QuadraticEase.cs
- OrderByBuilder.cs
- DefaultClaimSet.cs
- EventLogPermissionEntryCollection.cs
- Hash.cs
- ValueTable.cs
- ContentPathSegment.cs
- MutexSecurity.cs
- HttpHandlerActionCollection.cs
- PropertyManager.cs
- WebPartHeaderCloseVerb.cs
- DeclaredTypeValidator.cs
- AnnotationAdorner.cs
- DataViewListener.cs
- TriggerActionCollection.cs
- path.cs
- TraceUtils.cs
- ValueChangedEventManager.cs
- HtmlInputPassword.cs
- RepeatBehaviorConverter.cs
- StateChangeEvent.cs
- ProxyElement.cs
- RequestResizeEvent.cs
- VoiceSynthesis.cs
- SignatureToken.cs
- ClockController.cs
- Int32Rect.cs
- DataTableReader.cs
- XPathNodeInfoAtom.cs
- XMLDiffLoader.cs
- PkcsMisc.cs
- EmptyEnumerator.cs
- Regex.cs
- SystemPens.cs
- EndPoint.cs
- TreeSet.cs
- ObjectMemberMapping.cs
- ObjectListDataBindEventArgs.cs
- XsdBuildProvider.cs
- WindowsGraphics2.cs
- FastEncoder.cs
- EnumBuilder.cs
- Listbox.cs
- TextBreakpoint.cs
- VirtualPath.cs
- basevalidator.cs
- WindowsPrincipal.cs
- PrePrepareMethodAttribute.cs
- ReverseQueryOperator.cs
- VariableQuery.cs
- ControlPaint.cs
- HeaderUtility.cs
- SettingsProviderCollection.cs
- SignedInfo.cs
- SignatureHelper.cs
- TypeSystem.cs
- WinEventTracker.cs
- ConfigurationException.cs
- FileBasedResourceGroveler.cs
- GenericEnumerator.cs
- GotoExpression.cs
- TextRangeSerialization.cs
- TextEmbeddedObject.cs
- NotificationContext.cs
- XPathException.cs
- GroupDescription.cs
- WebBrowserPermission.cs
- ImageSourceConverter.cs
- SerializationInfo.cs
- BamlCollectionHolder.cs
- CompilerParameters.cs
- uribuilder.cs
- ProtocolsConfigurationEntry.cs
- PackageDigitalSignature.cs
- ProcessDesigner.cs
- Command.cs
- SqlDataSourceView.cs
- ManifestResourceInfo.cs
- mongolianshape.cs
- CreateUserWizard.cs
- Vector3DKeyFrameCollection.cs
- LicenseException.cs
- BuildProvider.cs
- HyperLinkStyle.cs
- ViewManager.cs
- HtmlToClrEventProxy.cs
- ValidatingPropertiesEventArgs.cs
- TreeNodeCollectionEditor.cs
- XmlObjectSerializerReadContext.cs
- HtmlControl.cs
- UtilityExtension.cs