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
- HelpKeywordAttribute.cs
- RowUpdatingEventArgs.cs
- DefaultWorkflowTransactionService.cs
- Inline.cs
- COSERVERINFO.cs
- CertificateElement.cs
- HandleRef.cs
- DataColumnMapping.cs
- ITextView.cs
- DataTableTypeConverter.cs
- Operators.cs
- MetadataSection.cs
- ReferentialConstraint.cs
- ConfigPathUtility.cs
- ObjectMemberMapping.cs
- MainMenu.cs
- FormsAuthenticationModule.cs
- UserCancellationException.cs
- ContainerFilterService.cs
- InstanceHandle.cs
- NameTable.cs
- MatrixUtil.cs
- ObjectRef.cs
- SqlInternalConnection.cs
- SymbolEqualComparer.cs
- ArraySubsetEnumerator.cs
- DetailsViewInsertEventArgs.cs
- TypeValidationEventArgs.cs
- Rect3DConverter.cs
- SmtpAuthenticationManager.cs
- FixedSOMTable.cs
- PageThemeBuildProvider.cs
- DataBoundControlParameterTarget.cs
- TableNameAttribute.cs
- Stylesheet.cs
- QueryResult.cs
- ClientSettingsSection.cs
- SafeHandle.cs
- CodeBlockBuilder.cs
- DataGridToolTip.cs
- WpfGeneratedKnownProperties.cs
- AsymmetricCryptoHandle.cs
- PageBuildProvider.cs
- ComponentResourceKey.cs
- TypeConstant.cs
- IconHelper.cs
- DesignerOptionService.cs
- ExtensionDataReader.cs
- RuntimeArgumentHandle.cs
- DataGridColumnCollectionEditor.cs
- InputQueue.cs
- DateTimePicker.cs
- StrongName.cs
- XmlEntityReference.cs
- UserControlParser.cs
- PropertyToken.cs
- InkCanvasSelection.cs
- CryptoProvider.cs
- Delay.cs
- CompilationPass2Task.cs
- SimpleApplicationHost.cs
- ConnectionManagementElement.cs
- ParallelTimeline.cs
- DataServiceExpressionVisitor.cs
- AggregateNode.cs
- RawKeyboardInputReport.cs
- HybridDictionary.cs
- XmlnsDictionary.cs
- XmlWellformedWriter.cs
- BuildProvider.cs
- TimersDescriptionAttribute.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- HtmlFormWrapper.cs
- EntityDataSourceWrapperCollection.cs
- TransactionValidationBehavior.cs
- StrongNamePublicKeyBlob.cs
- ResourceSet.cs
- MultiView.cs
- LongValidatorAttribute.cs
- DPTypeDescriptorContext.cs
- PointHitTestParameters.cs
- SmtpClient.cs
- AppSecurityManager.cs
- CrossAppDomainChannel.cs
- ImageAttributes.cs
- DataGridRelationshipRow.cs
- processwaithandle.cs
- SelfIssuedAuthRSACryptoProvider.cs
- DLinqColumnProvider.cs
- ConfigXmlSignificantWhitespace.cs
- ProtocolsConfigurationEntry.cs
- CultureInfoConverter.cs
- XmlText.cs
- _AutoWebProxyScriptWrapper.cs
- MultiPartWriter.cs
- AspNetHostingPermission.cs
- MaterializeFromAtom.cs
- WindowsStatic.cs
- GatewayIPAddressInformationCollection.cs
- EntityDataSourceConfigureObjectContextPanel.cs