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
- CreateRefExpr.cs
- ConnectionStringSettings.cs
- RecognizerStateChangedEventArgs.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- SimpleTypeResolver.cs
- ConnectionStringSettingsCollection.cs
- ObjectDataSourceEventArgs.cs
- ObjectMaterializedEventArgs.cs
- X509ThumbprintKeyIdentifierClause.cs
- FixedTextBuilder.cs
- AnnotationStore.cs
- ConfigXmlAttribute.cs
- MimePart.cs
- BoolLiteral.cs
- MetadataPropertyAttribute.cs
- Span.cs
- PlatformCulture.cs
- EventDrivenDesigner.cs
- SafeCryptoHandles.cs
- HorizontalAlignConverter.cs
- UmAlQuraCalendar.cs
- HttpListenerResponse.cs
- ListenerServiceInstallComponent.cs
- SqlFacetAttribute.cs
- Attributes.cs
- ArraySubsetEnumerator.cs
- TypeDependencyAttribute.cs
- DesignerLabelAdapter.cs
- EventLogHandle.cs
- Type.cs
- ToolStripItemCollection.cs
- SkinBuilder.cs
- CodeCatchClause.cs
- VersionedStream.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ResourceAttributes.cs
- SchemaContext.cs
- CompensationDesigner.cs
- JsonFormatReaderGenerator.cs
- ProcessThread.cs
- SocketPermission.cs
- ProtocolsConfiguration.cs
- SecurityState.cs
- DoubleLinkListEnumerator.cs
- ContainerParagraph.cs
- HttpModuleAction.cs
- DeploymentSectionCache.cs
- LicenseException.cs
- TimeIntervalCollection.cs
- ClientProxyGenerator.cs
- DataGridViewCheckBoxCell.cs
- MultiPartWriter.cs
- Debugger.cs
- FilteredAttributeCollection.cs
- WebBrowserHelper.cs
- CrossAppDomainChannel.cs
- ItemContainerGenerator.cs
- DataSetViewSchema.cs
- FontStyle.cs
- StackBuilderSink.cs
- DataSourceCacheDurationConverter.cs
- Configuration.cs
- CallbackDebugElement.cs
- WCFModelStrings.Designer.cs
- EastAsianLunisolarCalendar.cs
- SiteMapNodeItem.cs
- VectorCollection.cs
- _LoggingObject.cs
- DataGridViewComboBoxCell.cs
- FirstMatchCodeGroup.cs
- RawKeyboardInputReport.cs
- _AutoWebProxyScriptWrapper.cs
- DEREncoding.cs
- DataGridLinkButton.cs
- RayMeshGeometry3DHitTestResult.cs
- Pkcs9Attribute.cs
- UIElement.cs
- WebPartConnectionsCloseVerb.cs
- XmlComment.cs
- LocatorManager.cs
- ClientApiGenerator.cs
- RtfNavigator.cs
- WebMessageEncodingElement.cs
- CodeBlockBuilder.cs
- NameValueFileSectionHandler.cs
- CollaborationHelperFunctions.cs
- RawUIStateInputReport.cs
- ComboBox.cs
- WorkflowInstanceSuspendedRecord.cs
- ObjectTypeMapping.cs
- RemotingConfigParser.cs
- MatrixConverter.cs
- HttpCachePolicy.cs
- ListViewItemSelectionChangedEvent.cs
- UmAlQuraCalendar.cs
- DynamicResourceExtension.cs
- ConfigXmlCDataSection.cs
- DiscoveryClientDocuments.cs
- TextLineResult.cs
- SessionPageStateSection.cs