Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / SignatureResourcePool.cs / 1305376 / 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; HashAlgorithm hashAlgorithm; #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 ( this.hashAlgorithm == null ) { if ( String.IsNullOrEmpty( algorithm ) ) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument( algorithm, SR.GetString( SR.EmptyOrNullArgumentString, "algorithm" ) ); } this.hashAlgorithm = CryptoHelper.CreateHashAlgorithm( algorithm ); } else { this.hashAlgorithm.Initialize(); } return this.hashAlgorithm; } 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 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartConnectionsEventArgs.cs
- PtsPage.cs
- XhtmlMobileTextWriter.cs
- TransactionProxy.cs
- FlowLayoutSettings.cs
- Visual.cs
- AlphaSortedEnumConverter.cs
- ShapeTypeface.cs
- FileDetails.cs
- DateTimePicker.cs
- PreloadedPackages.cs
- TracingConnectionInitiator.cs
- XmlBinaryReader.cs
- HybridObjectCache.cs
- UIEndRequest.cs
- PropertyInformation.cs
- Registry.cs
- PrimitiveType.cs
- MembershipPasswordException.cs
- GiveFeedbackEvent.cs
- GeneralTransformGroup.cs
- AnimatedTypeHelpers.cs
- ObjectContext.cs
- AssemblyAttributesGoHere.cs
- SafeLibraryHandle.cs
- TimelineGroup.cs
- PolyLineSegment.cs
- FixUp.cs
- Paragraph.cs
- XomlCompilerResults.cs
- MarginsConverter.cs
- pingexception.cs
- VScrollBar.cs
- Typography.cs
- DataTableReaderListener.cs
- PartEditor.cs
- SystemUdpStatistics.cs
- GuidelineCollection.cs
- StaticDataManager.cs
- AsynchronousChannelMergeEnumerator.cs
- ImageAnimator.cs
- Preprocessor.cs
- ComIntegrationManifestGenerator.cs
- SqlClientWrapperSmiStreamChars.cs
- RtfFormatStack.cs
- LocalizableAttribute.cs
- Resources.Designer.cs
- HandlerWithFactory.cs
- Site.cs
- SqlInternalConnectionTds.cs
- RuleDefinitions.cs
- OpCopier.cs
- IssuedTokensHeader.cs
- CompiledScopeCriteria.cs
- Preprocessor.cs
- BlockingCollection.cs
- ToolStripMenuItem.cs
- Lasso.cs
- Enum.cs
- XmlSchemaObjectCollection.cs
- ContextMenuAutomationPeer.cs
- ToolStripPanelDesigner.cs
- LineProperties.cs
- GreenMethods.cs
- SqlCacheDependencyDatabase.cs
- IsolatedStorage.cs
- SingleResultAttribute.cs
- OdbcDataReader.cs
- DataSourceView.cs
- EntityStoreSchemaFilterEntry.cs
- InputReport.cs
- ListViewEditEventArgs.cs
- ThousandthOfEmRealPoints.cs
- Mutex.cs
- x509store.cs
- AsyncCompletedEventArgs.cs
- DispatcherSynchronizationContext.cs
- ExitEventArgs.cs
- FormViewInsertedEventArgs.cs
- HyperlinkAutomationPeer.cs
- PeerCollaborationPermission.cs
- XmlNamespaceMapping.cs
- dataprotectionpermission.cs
- TreeNode.cs
- XDeferredAxisSource.cs
- ComplexLine.cs
- OutOfMemoryException.cs
- DynamicPropertyReader.cs
- GridViewCellAutomationPeer.cs
- Int32Collection.cs
- ReadOnlyObservableCollection.cs
- SectionRecord.cs
- ToolStripPanelRow.cs
- BinaryObjectInfo.cs
- OdbcError.cs
- Parsers.cs
- FreeFormPanel.cs
- SpecialFolderEnumConverter.cs
- Stack.cs
- FontSource.cs