Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TcpClientCredentialType.cs
- XmlDesignerDataSourceView.cs
- MatcherBuilder.cs
- DiscoveryMessageSequence.cs
- TypeResolvingOptionsAttribute.cs
- DataPagerField.cs
- RegexWorker.cs
- InfoCardHelper.cs
- StickyNoteAnnotations.cs
- TextTreeText.cs
- DataGridHelper.cs
- StorageComplexTypeMapping.cs
- DockEditor.cs
- XPathAncestorQuery.cs
- Point3DConverter.cs
- ResumeStoryboard.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- DigitShape.cs
- DataStorage.cs
- GPPOINTF.cs
- XmlIncludeAttribute.cs
- ServicePerformanceCounters.cs
- GeometryConverter.cs
- EntityClassGenerator.cs
- DiagnosticsConfiguration.cs
- ReturnType.cs
- DigitalSignature.cs
- WebPartDisplayModeCancelEventArgs.cs
- HttpServerVarsCollection.cs
- DefaultBindingPropertyAttribute.cs
- CollectionCodeDomSerializer.cs
- BindingMemberInfo.cs
- DataGridViewRowHeaderCell.cs
- DoubleCollectionValueSerializer.cs
- BindingFormattingDialog.cs
- EventPropertyMap.cs
- XmlTextReaderImplHelpers.cs
- FormViewPageEventArgs.cs
- StylusPlugInCollection.cs
- SafeRsaProviderHandle.cs
- BitStack.cs
- BufferedGraphicsManager.cs
- Utils.cs
- CollectionViewGroupRoot.cs
- ListViewPagedDataSource.cs
- DataGridItemAutomationPeer.cs
- OleDbStruct.cs
- StorageAssociationTypeMapping.cs
- GroupStyle.cs
- InProcStateClientManager.cs
- cache.cs
- FormViewModeEventArgs.cs
- InvalidCommandTreeException.cs
- QilGenerator.cs
- ReflectEventDescriptor.cs
- SystemShuttingDownException.cs
- FileStream.cs
- CodeRegionDirective.cs
- GroupByExpressionRewriter.cs
- Int64AnimationBase.cs
- EntityModelSchemaGenerator.cs
- EnumConverter.cs
- UInt32.cs
- CompiledRegexRunner.cs
- LicenseProviderAttribute.cs
- DeclarativeCatalogPart.cs
- _AutoWebProxyScriptWrapper.cs
- VarRefManager.cs
- DataGridHelper.cs
- StdValidatorsAndConverters.cs
- PlatformNotSupportedException.cs
- ShapingEngine.cs
- SqlDataSourceView.cs
- IgnoreSection.cs
- StrokeIntersection.cs
- GeneralTransform3DGroup.cs
- DeploymentSectionCache.cs
- ServiceNameElement.cs
- QueryableFilterRepeater.cs
- SaveWorkflowAsyncResult.cs
- CategoryValueConverter.cs
- XmlHierarchicalEnumerable.cs
- DataGridViewImageCell.cs
- AuthenticationModuleElement.cs
- ConnectionsZone.cs
- BrowserCapabilitiesFactoryBase.cs
- TemplateFactory.cs
- SharedStatics.cs
- WindowsListView.cs
- DesignerActionTextItem.cs
- CriticalExceptions.cs
- CompatibleIComparer.cs
- TextEndOfLine.cs
- IItemContainerGenerator.cs
- DataGridViewImageColumn.cs
- UnsafeNativeMethodsPenimc.cs
- CollectionViewGroup.cs
- GroupBox.cs
- RegexMatch.cs
- PageEventArgs.cs