Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / SignatureResourcePool.cs / 1 / SignatureResourcePool.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.IO; using System.Security.Cryptography; using System.IdentityModel.Tokens; using System.Xml; using System.Text; // for sequential use by one thread sealed class SignatureResourcePool { const int BufferSize = 64; CanonicalizationDriver canonicalizationDriver; HashStream hashStream; SHA1 sha1; #if NO XmlC14NWriter integratedWriter; #endif XmlDictionaryWriter utf8Writer; byte[] encodingBuffer; char[] base64Buffer; public char[] TakeBase64Buffer() { if (this.base64Buffer == null) { this.base64Buffer = new char[BufferSize]; } return this.base64Buffer; } public CanonicalizationDriver TakeCanonicalizationDriver() { if (this.canonicalizationDriver == null) { this.canonicalizationDriver = new CanonicalizationDriver(); } else { this.canonicalizationDriver.Reset(); } return this.canonicalizationDriver; } public byte[] TakeEncodingBuffer() { if (this.encodingBuffer == null) { this.encodingBuffer = new byte[BufferSize]; } return this.encodingBuffer; } public HashAlgorithm TakeHashAlgorithm(string algorithm) { if (algorithm == SecurityAlgorithms.Sha1Digest) { return TakeSha1(); } else { return CryptoHelper.CreateHashAlgorithm(algorithm); } } public HashStream TakeHashStream(HashAlgorithm hash) { if (this.hashStream == null) { this.hashStream = new HashStream(hash); } else { this.hashStream.Reset(hash); } return this.hashStream; } public HashStream TakeHashStream(string algorithm) { return TakeHashStream(TakeHashAlgorithm(algorithm)); } #if NO public XmlC14NWriter TakeIntegratedWriter(Stream stream) { return TakeIntegratedWriter(stream, false, null); } public XmlC14NWriter TakeIntegratedWriter(Stream stream, bool includeComments, string[] inclusivePrefixes) { if (this.integratedWriter == null) { this.integratedWriter = new XmlC14NWriter(stream, includeComments, inclusivePrefixes); } else { this.integratedWriter.SetOutput(stream, includeComments, inclusivePrefixes); } return this.integratedWriter; } #endif SHA1 TakeSha1() { if (this.sha1 == null) { this.sha1 = CryptoHelper.NewSha1HashAlgorithm(); } else { this.sha1.Initialize(); } return this.sha1; } public XmlDictionaryWriter TakeUtf8Writer() { if (this.utf8Writer == null) { this.utf8Writer = XmlDictionaryWriter.CreateTextWriter(Stream.Null, Encoding.UTF8, false); } else { ((IXmlTextWriterInitializer) this.utf8Writer).SetOutput(Stream.Null, Encoding.UTF8, false); } return this.utf8Writer; } } } // 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
- TextSelectionHighlightLayer.cs
- StyleXamlParser.cs
- XmlDataSourceNodeDescriptor.cs
- ProcessRequestArgs.cs
- RegexCapture.cs
- PolyLineSegment.cs
- CachedPathData.cs
- NamespaceDecl.cs
- ViewStateException.cs
- FormatterServices.cs
- SafeRegistryHandle.cs
- SiteOfOriginContainer.cs
- TableItemPattern.cs
- Common.cs
- WebPartConnectionsCloseVerb.cs
- HttpApplication.cs
- FileDialog_Vista_Interop.cs
- SQLBoolean.cs
- HttpRequestWrapper.cs
- DataGridViewComboBoxCell.cs
- CustomAssemblyResolver.cs
- ArraySegment.cs
- DrawingCollection.cs
- PolyLineSegmentFigureLogic.cs
- ControlCachePolicy.cs
- DashStyles.cs
- COM2IProvidePropertyBuilderHandler.cs
- COAUTHIDENTITY.cs
- FixedSOMFixedBlock.cs
- XmlMembersMapping.cs
- PreviewPageInfo.cs
- TextRenderer.cs
- DataGridViewColumnEventArgs.cs
- PreparingEnlistment.cs
- ThreadStateException.cs
- ConfigUtil.cs
- MailDefinition.cs
- DataControlReferenceCollection.cs
- ScriptDescriptor.cs
- PeerResolverSettings.cs
- PropertyChangedEventArgs.cs
- TheQuery.cs
- StorageAssociationSetMapping.cs
- CodeIdentifiers.cs
- ContentHostHelper.cs
- SafeReversePInvokeHandle.cs
- SiteOfOriginContainer.cs
- QueryRewriter.cs
- BuilderPropertyEntry.cs
- LiteralLink.cs
- EntityContainerAssociationSet.cs
- transactioncontext.cs
- WpfXamlMember.cs
- DesignerDataTable.cs
- GridViewUpdateEventArgs.cs
- BitmapEffectrendercontext.cs
- PointIndependentAnimationStorage.cs
- SmtpNegotiateAuthenticationModule.cs
- ContentPropertyAttribute.cs
- ItemChangedEventArgs.cs
- Connector.cs
- Restrictions.cs
- cryptoapiTransform.cs
- TextLine.cs
- Calendar.cs
- ScrollEvent.cs
- WindowsAuthenticationModule.cs
- ShapingWorkspace.cs
- QueryOptionExpression.cs
- CopyAction.cs
- SafeNativeMethods.cs
- PackWebResponse.cs
- ResourceReferenceExpression.cs
- DiscoveryReference.cs
- ExceptionRoutedEventArgs.cs
- DataKey.cs
- cryptoapiTransform.cs
- EditCommandColumn.cs
- ToolboxDataAttribute.cs
- UpdateCompiler.cs
- ScalarOps.cs
- _ProxyRegBlob.cs
- FormViewInsertedEventArgs.cs
- CaseStatement.cs
- FontStyleConverter.cs
- Image.cs
- PopOutPanel.cs
- ManagementScope.cs
- ProfileGroupSettingsCollection.cs
- MembershipValidatePasswordEventArgs.cs
- OdbcParameterCollection.cs
- SiteMapPathDesigner.cs
- FixedLineResult.cs
- BasePattern.cs
- CounterSample.cs
- LazyTextWriterCreator.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- SnapshotChangeTrackingStrategy.cs
- AuthorizationRuleCollection.cs
- ContextActivityUtils.cs