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
- ConfigurationStrings.cs
- ChooseAction.cs
- LingerOption.cs
- DataGridViewDataErrorEventArgs.cs
- Properties.cs
- ErasingStroke.cs
- ListViewGroupConverter.cs
- DataFieldConverter.cs
- XsltContext.cs
- VSWCFServiceContractGenerator.cs
- externdll.cs
- NativeMethods.cs
- MetadataWorkspace.cs
- PropertyEmitter.cs
- HTMLTagNameToTypeMapper.cs
- InheritedPropertyChangedEventArgs.cs
- WindowsListViewGroupSubsetLink.cs
- XmlElementAttribute.cs
- COM2PropertyDescriptor.cs
- _IPv4Address.cs
- ToolStripGripRenderEventArgs.cs
- InputScope.cs
- ConfigXmlElement.cs
- MachineKeySection.cs
- PeerToPeerException.cs
- InputScopeAttribute.cs
- metrodevice.cs
- InstalledFontCollection.cs
- FormClosingEvent.cs
- AssociationEndMember.cs
- StrokeCollectionDefaultValueFactory.cs
- MsmqIntegrationProcessProtocolHandler.cs
- FileSecurity.cs
- SocketElement.cs
- Simplifier.cs
- CqlQuery.cs
- BoundField.cs
- BooleanExpr.cs
- ToolTipAutomationPeer.cs
- DrawingAttributeSerializer.cs
- FormsAuthenticationUser.cs
- PngBitmapDecoder.cs
- SmtpFailedRecipientException.cs
- UnsafeNativeMethodsMilCoreApi.cs
- TransformedBitmap.cs
- CalendarKeyboardHelper.cs
- XmlQueryStaticData.cs
- ObjectStateFormatter.cs
- WinInetCache.cs
- WinFormsUtils.cs
- BCryptSafeHandles.cs
- SynchronizedDispatch.cs
- TraceHwndHost.cs
- Mouse.cs
- ForAllOperator.cs
- dtdvalidator.cs
- PrintPreviewControl.cs
- NTAccount.cs
- ElementMarkupObject.cs
- RelationshipManager.cs
- ParagraphVisual.cs
- EntityCommand.cs
- QilSortKey.cs
- OpenTypeLayoutCache.cs
- ToolStripItem.cs
- FontSourceCollection.cs
- ExpressionPrefixAttribute.cs
- QueueProcessor.cs
- SocketElement.cs
- SiteMapNodeCollection.cs
- Camera.cs
- RightsManagementInformation.cs
- AnnotationStore.cs
- AuthenticationConfig.cs
- ExpressionWriter.cs
- DBCommandBuilder.cs
- ScopelessEnumAttribute.cs
- WindowsIdentity.cs
- WebMessageBodyStyleHelper.cs
- ArgIterator.cs
- DataServiceException.cs
- CaseStatementSlot.cs
- EventManager.cs
- PathSegmentCollection.cs
- CompositionAdorner.cs
- ProviderManager.cs
- DocumentApplicationJournalEntry.cs
- ListViewContainer.cs
- FileUtil.cs
- _BaseOverlappedAsyncResult.cs
- CryptoConfig.cs
- CheckBox.cs
- Point3DValueSerializer.cs
- BamlBinaryWriter.cs
- XmlSchemaParticle.cs
- WebControlAdapter.cs
- Package.cs
- PropertyItem.cs
- MissingMemberException.cs
- Utility.cs