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
- CachedTypeface.cs
- CellQuery.cs
- ForEachAction.cs
- TextDecoration.cs
- BindingWorker.cs
- MediaCommands.cs
- SchemaCollectionPreprocessor.cs
- Storyboard.cs
- RequestCacheEntry.cs
- LocatorBase.cs
- XmlLanguage.cs
- ActivationArguments.cs
- PreviewPrintController.cs
- TranslateTransform3D.cs
- KeyPullup.cs
- HttpApplicationFactory.cs
- XmlSchemaSimpleTypeRestriction.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- List.cs
- CorruptingExceptionCommon.cs
- Calendar.cs
- SQLMoney.cs
- PropertyBuilder.cs
- XmlText.cs
- SegmentInfo.cs
- CacheMode.cs
- Monitor.cs
- ProfileService.cs
- JavaScriptSerializer.cs
- CodeCastExpression.cs
- Line.cs
- HttpModuleActionCollection.cs
- FontResourceCache.cs
- BridgeDataRecord.cs
- RoamingStoreFileUtility.cs
- PreProcessor.cs
- SafeFindHandle.cs
- CodeParameterDeclarationExpression.cs
- SoapEnumAttribute.cs
- CapabilitiesAssignment.cs
- OpacityConverter.cs
- TabItemWrapperAutomationPeer.cs
- Partitioner.cs
- ServiceModelConfigurationSectionGroup.cs
- ObjectListFieldsPage.cs
- ProtocolException.cs
- DefaultPrintController.cs
- Trigger.cs
- MultiView.cs
- AsymmetricAlgorithm.cs
- GeometryModel3D.cs
- DataPagerField.cs
- CodeTypeMemberCollection.cs
- CollectionViewGroup.cs
- DrawingBrush.cs
- BamlLocalizer.cs
- UInt32.cs
- CaseInsensitiveOrdinalStringComparer.cs
- WinEventWrap.cs
- TableParaClient.cs
- IntegerValidator.cs
- OleDbDataReader.cs
- ActivityTypeResolver.xaml.cs
- Inline.cs
- TextServicesPropertyRanges.cs
- ComplexBindingPropertiesAttribute.cs
- ObjectDataSourceSelectingEventArgs.cs
- TypeSource.cs
- KeySplineConverter.cs
- LoginStatusDesigner.cs
- CorrelationQuery.cs
- InputQueue.cs
- SatelliteContractVersionAttribute.cs
- Pointer.cs
- _LoggingObject.cs
- SystemDiagnosticsSection.cs
- TypeCollectionPropertyEditor.cs
- wmiprovider.cs
- TextElementEnumerator.cs
- LocationSectionRecord.cs
- MultitargetUtil.cs
- CustomBindingElement.cs
- RoutedPropertyChangedEventArgs.cs
- RelationshipManager.cs
- AttachmentCollection.cs
- CollectionDataContract.cs
- DataObjectAttribute.cs
- FontFaceLayoutInfo.cs
- XmlSchemaIdentityConstraint.cs
- NonBatchDirectoryCompiler.cs
- IApplicationTrustManager.cs
- ExpandableObjectConverter.cs
- peersecurityelement.cs
- ExtendedPropertyDescriptor.cs
- TranslateTransform.cs
- SecurityKeyUsage.cs
- PersistenceTypeAttribute.cs
- OutputCacheProfile.cs
- Point3DCollectionConverter.cs
- WeakHashtable.cs