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
- httpserverutility.cs
- SimpleHandlerBuildProvider.cs
- TreeViewEvent.cs
- DateRangeEvent.cs
- PersonalizationState.cs
- ObjectDataSourceMethodEventArgs.cs
- DynamicRendererThreadManager.cs
- DataGridViewElement.cs
- TypeNameConverter.cs
- EventLogInternal.cs
- TextSyndicationContent.cs
- TraceSection.cs
- ResourceReferenceExpression.cs
- PersonalizableAttribute.cs
- WindowsTreeView.cs
- XmlConvert.cs
- SQlBooleanStorage.cs
- Stroke2.cs
- DbSetClause.cs
- ManagedIStream.cs
- EventLogger.cs
- GroupBoxRenderer.cs
- QueryServiceConfigHandle.cs
- MembershipValidatePasswordEventArgs.cs
- SpanIndex.cs
- HttpContextServiceHost.cs
- DBParameter.cs
- AspNetSynchronizationContext.cs
- ZoneMembershipCondition.cs
- StyleBamlRecordReader.cs
- LayoutSettings.cs
- SpellerStatusTable.cs
- PassportAuthentication.cs
- BaseProcessor.cs
- CompositeCollection.cs
- ValidationEventArgs.cs
- SQLConvert.cs
- BaseCollection.cs
- cookiecontainer.cs
- LookupBindingPropertiesAttribute.cs
- Context.cs
- PerspectiveCamera.cs
- DbParameterCollectionHelper.cs
- DescriptionAttribute.cs
- CompoundFileDeflateTransform.cs
- LocationUpdates.cs
- NotImplementedException.cs
- DataServiceRequestArgs.cs
- DataSysAttribute.cs
- ProviderManager.cs
- MatchingStyle.cs
- HelpOperationInvoker.cs
- Sql8ConformanceChecker.cs
- XsdValidatingReader.cs
- OleDbEnumerator.cs
- QuerySafeNavigator.cs
- configsystem.cs
- BreakSafeBase.cs
- DiscoveryClient.cs
- mongolianshape.cs
- RegexBoyerMoore.cs
- CheckBoxAutomationPeer.cs
- ImplicitInputBrush.cs
- Vector3D.cs
- SoapTypeAttribute.cs
- ColumnMap.cs
- SectionXmlInfo.cs
- ParameterToken.cs
- ForEachAction.cs
- PropertyChangedEventManager.cs
- AppSecurityManager.cs
- DetailsView.cs
- XmlBinaryReader.cs
- WorkflowMarkupSerializerMapping.cs
- DataGridViewTopRowAccessibleObject.cs
- URL.cs
- DrawingAttributeSerializer.cs
- IntersectQueryOperator.cs
- DbDataAdapter.cs
- OpenFileDialog.cs
- MetabaseSettings.cs
- URIFormatException.cs
- ContentElement.cs
- ConstrainedDataObject.cs
- DiscoveryClientDuplexChannel.cs
- LinkConverter.cs
- XmlSequenceWriter.cs
- WhitespaceRule.cs
- WriteableBitmap.cs
- CachedTypeface.cs
- DataTableReaderListener.cs
- DifferencingCollection.cs
- HttpPostedFile.cs
- ButtonBase.cs
- ZipPackage.cs
- MappingItemCollection.cs
- InternalRelationshipCollection.cs
- MenuEventArgs.cs
- PersonalizationEntry.cs
- ContourSegment.cs