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
- GroupBox.cs
- WebPartCollection.cs
- CacheAxisQuery.cs
- XmlReader.cs
- ResourceExpressionBuilder.cs
- WebServiceTypeData.cs
- FacetDescription.cs
- CodeAttributeDeclaration.cs
- SocketAddress.cs
- TextOptionsInternal.cs
- BitmapCodecInfo.cs
- OdbcStatementHandle.cs
- HttpRuntime.cs
- LicenseManager.cs
- RequiredArgumentAttribute.cs
- BufferedGraphicsManager.cs
- WindowsGraphics.cs
- WebSysDescriptionAttribute.cs
- OLEDB_Util.cs
- SevenBitStream.cs
- StorageModelBuildProvider.cs
- FakeModelItemImpl.cs
- Utils.cs
- GlobalItem.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- InheritanceContextChangedEventManager.cs
- TextReader.cs
- Scripts.cs
- QueueException.cs
- EdmRelationshipRoleAttribute.cs
- VScrollBar.cs
- ServiceReference.cs
- EnumUnknown.cs
- DockingAttribute.cs
- DataKeyCollection.cs
- ExtensionElementCollection.cs
- ConnectionManagementElement.cs
- BindingMAnagerBase.cs
- DataControlFieldCollection.cs
- DomainLiteralReader.cs
- Attributes.cs
- TextDecorationLocationValidation.cs
- ProjectionPathSegment.cs
- BuildProviderCollection.cs
- MetaModel.cs
- DataControlPagerLinkButton.cs
- ToolBarButtonDesigner.cs
- JapaneseCalendar.cs
- ExceptionUtil.cs
- HashMembershipCondition.cs
- FactoryGenerator.cs
- StateItem.cs
- RuntimeVariableList.cs
- SimpleParser.cs
- COM2EnumConverter.cs
- CodePageEncoding.cs
- UriScheme.cs
- ConnectionPoolManager.cs
- TextDocumentView.cs
- PageBreakRecord.cs
- DataColumnChangeEvent.cs
- QuotedStringFormatReader.cs
- RectValueSerializer.cs
- SqlAggregateChecker.cs
- ControlParameter.cs
- LinearQuaternionKeyFrame.cs
- SimpleHandlerFactory.cs
- SslStreamSecurityBindingElement.cs
- CapabilitiesSection.cs
- IItemContainerGenerator.cs
- ClientSettingsProvider.cs
- Transform3DGroup.cs
- InvalidStoreProtectionKeyException.cs
- ResolvedKeyFrameEntry.cs
- QilScopedVisitor.cs
- HttpModuleActionCollection.cs
- TextElementEnumerator.cs
- IndexedSelectQueryOperator.cs
- CollectionBuilder.cs
- DataGridViewLayoutData.cs
- Condition.cs
- PathNode.cs
- PanningMessageFilter.cs
- XmlSchemaValidationException.cs
- Substitution.cs
- TemplateModeChangedEventArgs.cs
- SoapIgnoreAttribute.cs
- ImageKeyConverter.cs
- ProfileModule.cs
- BigInt.cs
- RegexWriter.cs
- Evidence.cs
- StringComparer.cs
- DataGridView.cs
- InfocardChannelParameter.cs
- GridViewSortEventArgs.cs
- HitTestParameters.cs
- SqlCommandBuilder.cs
- NeutralResourcesLanguageAttribute.cs
- HttpCacheVary.cs