Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / HashStream.cs / 1 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlSerializationWriter.cs
- FreezableOperations.cs
- MemoryFailPoint.cs
- _SpnDictionary.cs
- Scripts.cs
- DirectoryInfo.cs
- EpmSyndicationContentSerializer.cs
- X509CertificateChain.cs
- LinearGradientBrush.cs
- ReadOnlyCollectionBase.cs
- LoadRetryAsyncResult.cs
- RealizationDrawingContextWalker.cs
- CompositeFontParser.cs
- ElementAction.cs
- StorageModelBuildProvider.cs
- DescendentsWalkerBase.cs
- SapiRecoInterop.cs
- EFColumnProvider.cs
- X500Name.cs
- UrlMappingsModule.cs
- CollectionBuilder.cs
- DateTimePicker.cs
- PathFigureCollectionValueSerializer.cs
- KnownColorTable.cs
- ListViewItem.cs
- SqlServices.cs
- ValidationHelper.cs
- DateTimePicker.cs
- TextRange.cs
- XmlWhitespace.cs
- Size3DConverter.cs
- webeventbuffer.cs
- SmiEventSink_Default.cs
- Encoder.cs
- LocatorGroup.cs
- TextCompositionManager.cs
- EventSource.cs
- __Error.cs
- ImageAttributes.cs
- DefaultTextStoreTextComposition.cs
- ClientProxyGenerator.cs
- OdbcStatementHandle.cs
- EFDataModelProvider.cs
- Authorization.cs
- HScrollBar.cs
- TypeUnloadedException.cs
- X509WindowsSecurityToken.cs
- AssemblyCache.cs
- OdbcTransaction.cs
- TakeQueryOptionExpression.cs
- ClientScriptManager.cs
- PermissionToken.cs
- SamlDoNotCacheCondition.cs
- OLEDB_Enum.cs
- BehaviorEditorPart.cs
- StrongBox.cs
- TableRow.cs
- Context.cs
- TransformProviderWrapper.cs
- WebControlAdapter.cs
- StatusBarItem.cs
- XPathDocumentBuilder.cs
- PrintControllerWithStatusDialog.cs
- ProfileSection.cs
- VirtualDirectoryMappingCollection.cs
- UserNamePasswordValidator.cs
- SqlCacheDependencySection.cs
- DataGridViewCellCancelEventArgs.cs
- MutexSecurity.cs
- CompareValidator.cs
- TemplatedAdorner.cs
- Encoder.cs
- ResourceKey.cs
- ScrollBar.cs
- ScriptDescriptor.cs
- InternalCompensate.cs
- Msec.cs
- userdatakeys.cs
- RijndaelManaged.cs
- BindingList.cs
- ListViewDeletedEventArgs.cs
- PackageProperties.cs
- StrokeFIndices.cs
- OperationCanceledException.cs
- OrCondition.cs
- DataGridViewSelectedCellCollection.cs
- ComplexBindingPropertiesAttribute.cs
- XamlVector3DCollectionSerializer.cs
- ExtenderProviderService.cs
- XhtmlBasicLabelAdapter.cs
- ClientConfigurationHost.cs
- DataControlCommands.cs
- UInt64Storage.cs
- LineServices.cs
- XmlIterators.cs
- RangeValueProviderWrapper.cs
- XmlSerializerNamespaces.cs
- SourceFileBuildProvider.cs
- Tile.cs
- Odbc32.cs