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
- TemplateBaseAction.cs
- ChooseAction.cs
- Domain.cs
- KeyGesture.cs
- StickyNoteContentControl.cs
- ErrorLog.cs
- SQLUtility.cs
- XPathAxisIterator.cs
- AmbientLight.cs
- UnsafePeerToPeerMethods.cs
- CodeTypeParameter.cs
- RoleManagerModule.cs
- QueueException.cs
- ConfigViewGenerator.cs
- MgmtConfigurationRecord.cs
- OdbcCommand.cs
- EasingFunctionBase.cs
- GlobalAllocSafeHandle.cs
- XmlLoader.cs
- TraceLog.cs
- ScriptMethodAttribute.cs
- SecurityTokenException.cs
- ButtonChrome.cs
- XamlVector3DCollectionSerializer.cs
- HttpDictionary.cs
- Brush.cs
- LocatorBase.cs
- ConfigurationException.cs
- ClientUtils.cs
- ItemCheckEvent.cs
- WmiEventSink.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- AnnotationMap.cs
- PhoneCallDesigner.cs
- ForEachAction.cs
- AnimationException.cs
- StringConverter.cs
- DefaultPropertyAttribute.cs
- XNameTypeConverter.cs
- WindowsListViewGroupSubsetLink.cs
- ConfigurationManagerHelperFactory.cs
- TextEvent.cs
- TreeWalkHelper.cs
- EventLogSession.cs
- EntityDataSourceSelectingEventArgs.cs
- EntitySet.cs
- ServicesUtilities.cs
- ValidationVisibilityAttribute.cs
- Geometry3D.cs
- MobileTemplatedControlDesigner.cs
- CredentialCache.cs
- AssemblyCache.cs
- SerialStream.cs
- VirtualPathProvider.cs
- DataGridColumn.cs
- ClonableStack.cs
- Array.cs
- GotoExpression.cs
- GeometryHitTestParameters.cs
- ParameterElementCollection.cs
- Transform.cs
- SqlDuplicator.cs
- WSDualHttpSecurity.cs
- Win32Native.cs
- ValidationHelper.cs
- UserControl.cs
- IsolatedStoragePermission.cs
- SignedPkcs7.cs
- XmlParserContext.cs
- ToolStripPanelSelectionGlyph.cs
- ObjectQueryProvider.cs
- NameValuePermission.cs
- ImmutableCollection.cs
- XmlSchemaAnnotated.cs
- Drawing.cs
- DependencyPropertyChangedEventArgs.cs
- RegisteredScript.cs
- diagnosticsswitches.cs
- unsafenativemethodsother.cs
- ResXFileRef.cs
- UrlMappingCollection.cs
- ControlParameter.cs
- CodeAccessSecurityEngine.cs
- TextEndOfSegment.cs
- RuntimeResourceSet.cs
- HttpRequest.cs
- RuntimeEnvironment.cs
- JournalNavigationScope.cs
- DependencyPropertyConverter.cs
- ConsumerConnectionPointCollection.cs
- CatalogZoneDesigner.cs
- AllMembershipCondition.cs
- StructuralComparisons.cs
- WsatTransactionInfo.cs
- JsonDeserializer.cs
- QuotedStringFormatReader.cs
- SafeBitVector32.cs
- TransactionManager.cs
- DbInsertCommandTree.cs
- AssociationSetMetadata.cs