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
- DebuggerAttributes.cs
- ManageRequest.cs
- BindingContext.cs
- WindowsAuthenticationModule.cs
- MenuItem.cs
- ObjectQuery_EntitySqlExtensions.cs
- ProjectionNode.cs
- ExtensionSurface.cs
- RepeatButton.cs
- AtlasWeb.Designer.cs
- LinkTarget.cs
- SettingsBase.cs
- DBParameter.cs
- OAVariantLib.cs
- CodeDomConfigurationHandler.cs
- AQNBuilder.cs
- NavigationExpr.cs
- LexicalChunk.cs
- LinkedList.cs
- FontSizeConverter.cs
- Authorization.cs
- DataSetUtil.cs
- RTLAwareMessageBox.cs
- SplitterPanel.cs
- WebPartDisplayModeCollection.cs
- RSAPKCS1SignatureDeformatter.cs
- AspNetHostingPermission.cs
- OracleConnectionString.cs
- BitmapFrame.cs
- TableRowCollection.cs
- Funcletizer.cs
- ImageAnimator.cs
- MLangCodePageEncoding.cs
- ProvidersHelper.cs
- DecimalFormatter.cs
- DataSourceView.cs
- TextServicesLoader.cs
- HtmlLink.cs
- CommandDevice.cs
- X509ScopedServiceCertificateElementCollection.cs
- ValidationError.cs
- MessagePropertyDescriptionCollection.cs
- InternalSafeNativeMethods.cs
- StatementContext.cs
- PenLineCapValidation.cs
- AppDomainShutdownMonitor.cs
- SolidColorBrush.cs
- SmiContext.cs
- PagesSection.cs
- ConditionedDesigner.cs
- GenericIdentity.cs
- PathBox.cs
- RouteCollection.cs
- ExpressionBindingCollection.cs
- FamilyTypeface.cs
- ZipIOBlockManager.cs
- DataKey.cs
- DockPanel.cs
- TextEffectResolver.cs
- MsdtcWrapper.cs
- SqlCacheDependency.cs
- ContextDataSourceView.cs
- EventListener.cs
- TemplateInstanceAttribute.cs
- ExtensionSurface.cs
- ListViewGroupConverter.cs
- HwndSource.cs
- ListDictionaryInternal.cs
- ConsoleTraceListener.cs
- ContentPathSegment.cs
- FontSourceCollection.cs
- XsdValidatingReader.cs
- DataGridViewRowStateChangedEventArgs.cs
- SystemKeyConverter.cs
- DTCTransactionManager.cs
- CodeObject.cs
- FixUp.cs
- DataGridCell.cs
- Animatable.cs
- ProcessDesigner.cs
- FlowDocumentScrollViewer.cs
- __FastResourceComparer.cs
- EntityViewGenerationConstants.cs
- NotifyIcon.cs
- SQLSingle.cs
- XmlHierarchyData.cs
- Soap.cs
- HttpProfileBase.cs
- TagMapCollection.cs
- streamingZipPartStream.cs
- DefaultObjectSerializer.cs
- ToolStripTextBox.cs
- WorkerRequest.cs
- HandleCollector.cs
- ResourceType.cs
- ActivityStatusChangeEventArgs.cs
- DispatcherHooks.cs
- SpeechRecognitionEngine.cs
- TextRangeEdit.cs
- SrgsDocument.cs