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
- CompoundFileDeflateTransform.cs
- WindowsPrincipal.cs
- AddInAdapter.cs
- MouseCaptureWithinProperty.cs
- HtmlInputControl.cs
- httpapplicationstate.cs
- EventData.cs
- ApplicationException.cs
- QilReference.cs
- IndexedString.cs
- _IPv6Address.cs
- _HeaderInfo.cs
- LinkButton.cs
- PerformanceCounterPermissionEntry.cs
- LineMetrics.cs
- XslTransform.cs
- SQLGuidStorage.cs
- Subtree.cs
- URL.cs
- NonVisualControlAttribute.cs
- CardSpaceException.cs
- XmlSchemaSimpleContentExtension.cs
- CryptoProvider.cs
- TransportDefaults.cs
- InputElement.cs
- MdiWindowListItemConverter.cs
- VersionValidator.cs
- WebProxyScriptElement.cs
- DocumentPageHost.cs
- XMLDiffLoader.cs
- ScrollItemProviderWrapper.cs
- Rect3D.cs
- FullTextLine.cs
- UnicastIPAddressInformationCollection.cs
- Path.cs
- DataTablePropertyDescriptor.cs
- CodeExporter.cs
- TargetControlTypeCache.cs
- SMSvcHost.cs
- CollectionAdapters.cs
- BrowserCapabilitiesCodeGenerator.cs
- ControlBuilder.cs
- DefaultTraceListener.cs
- KnownTypesHelper.cs
- SynchronousChannel.cs
- XmlIgnoreAttribute.cs
- CompilerResults.cs
- LongPath.cs
- CodeExpressionStatement.cs
- SqlWorkflowPersistenceService.cs
- MultiByteCodec.cs
- RegexGroup.cs
- FormatException.cs
- BrushConverter.cs
- ShaderEffect.cs
- Parser.cs
- MatrixTransform3D.cs
- AmbientEnvironment.cs
- TemplateComponentConnector.cs
- ArgumentOutOfRangeException.cs
- ConfigurationSettings.cs
- MenuItemAutomationPeer.cs
- CharacterHit.cs
- RuleAttributes.cs
- Missing.cs
- PeekCompletedEventArgs.cs
- UserPreferenceChangedEventArgs.cs
- TimeSpanMinutesConverter.cs
- translator.cs
- SqlBulkCopy.cs
- Int32RectConverter.cs
- StackBuilderSink.cs
- TTSEvent.cs
- MenuEventArgs.cs
- TextContainer.cs
- KeyValuePairs.cs
- TemplateInstanceAttribute.cs
- VisualCollection.cs
- PromptEventArgs.cs
- UserNamePasswordClientCredential.cs
- ContentElementAutomationPeer.cs
- TextCollapsingProperties.cs
- X509CertificateChain.cs
- XmlReaderSettings.cs
- VirtualizingPanel.cs
- DataFieldConverter.cs
- XamlToRtfWriter.cs
- ApplicationHost.cs
- XPathDocumentBuilder.cs
- ExtendedProtectionPolicy.cs
- XmlSerializationWriter.cs
- ellipse.cs
- PrintPageEvent.cs
- SerialErrors.cs
- DashStyle.cs
- ConfigDefinitionUpdates.cs
- ControlFilterExpression.cs
- LocalizabilityAttribute.cs
- SafeNativeMethods.cs
- Compiler.cs