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
- MachinePropertyVariants.cs
- SemanticBasicElement.cs
- XmlMapping.cs
- HttpHostedTransportConfiguration.cs
- AttributeCollection.cs
- RegistrationContext.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- JapaneseCalendar.cs
- ConfigurationLoaderException.cs
- ConnectionStringSettingsCollection.cs
- GradientStop.cs
- DataBoundControlActionList.cs
- WindowsListViewGroupSubsetLink.cs
- ScopelessEnumAttribute.cs
- DataSourceProvider.cs
- XmlSchemaDocumentation.cs
- PropertyToken.cs
- DataBinder.cs
- NameSpaceExtractor.cs
- InputChannelAcceptor.cs
- GeometryGroup.cs
- BinaryUtilClasses.cs
- ExpressionPrefixAttribute.cs
- HighlightVisual.cs
- ScriptDescriptor.cs
- Camera.cs
- WeakRefEnumerator.cs
- PrintDocument.cs
- ValidatedControlConverter.cs
- ExtendedPropertyInfo.cs
- InputReport.cs
- TimeSpan.cs
- InputProcessorProfiles.cs
- AppManager.cs
- MouseButtonEventArgs.cs
- XhtmlStyleClass.cs
- PolicyValidationException.cs
- AuthenticationService.cs
- StrokeNodeData.cs
- SqlDependencyListener.cs
- ServiceDocumentFormatter.cs
- ConvertEvent.cs
- XmlStringTable.cs
- MessageSmuggler.cs
- SmiContextFactory.cs
- Event.cs
- XmlValidatingReaderImpl.cs
- MSG.cs
- DirectoryNotFoundException.cs
- MenuItemBinding.cs
- Tracer.cs
- WebPartCatalogAddVerb.cs
- EventSinkHelperWriter.cs
- NameScope.cs
- IArgumentProvider.cs
- OdbcConnectionStringbuilder.cs
- FontWeight.cs
- ControlEvent.cs
- CompareValidator.cs
- OrderedDictionary.cs
- FixedTextBuilder.cs
- ServerIdentity.cs
- MimePart.cs
- XPathDocument.cs
- UserControlDocumentDesigner.cs
- ScriptReferenceBase.cs
- LicenseException.cs
- HwndAppCommandInputProvider.cs
- LiteralLink.cs
- TextParagraphProperties.cs
- InputLanguage.cs
- PropertyMetadata.cs
- CommandHelpers.cs
- KnownTypesProvider.cs
- ChannelFactoryRefCache.cs
- HandlerBase.cs
- Exception.cs
- CfgParser.cs
- SqlAggregateChecker.cs
- StreamGeometry.cs
- EncodingDataItem.cs
- InvalidDataContractException.cs
- Line.cs
- CapabilitiesAssignment.cs
- X509CertificateChain.cs
- CopyOnWriteList.cs
- ConsoleTraceListener.cs
- FrameworkObject.cs
- MgmtConfigurationRecord.cs
- HttpUnhandledOperationInvoker.cs
- TerminatorSinks.cs
- HandledEventArgs.cs
- CursorConverter.cs
- ToolBarButton.cs
- EpmSourceTree.cs
- UserControlParser.cs
- TemplateAction.cs
- ModelVisual3D.cs
- HelpInfo.cs
- COM2DataTypeToManagedDataTypeConverter.cs