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
- ByteKeyFrameCollection.cs
- QilGenerator.cs
- SizeF.cs
- AstNode.cs
- TextElementEnumerator.cs
- OrderPreservingSpoolingTask.cs
- XsltArgumentList.cs
- HierarchicalDataBoundControl.cs
- ExpressionBindingCollection.cs
- VarInfo.cs
- ErrorLog.cs
- ToggleButton.cs
- GB18030Encoding.cs
- ResourceType.cs
- LinkArea.cs
- BufferModeSettings.cs
- ActivityWithResultWrapper.cs
- cache.cs
- AnimationLayer.cs
- ExceptionRoutedEventArgs.cs
- SqlDataSourceView.cs
- FileDataSourceCache.cs
- EmptyReadOnlyDictionaryInternal.cs
- IxmlLineInfo.cs
- SimpleApplicationHost.cs
- smtppermission.cs
- MeasureItemEvent.cs
- DataSpaceManager.cs
- Synchronization.cs
- WebPartHelpVerb.cs
- Win32.cs
- CompoundFileStreamReference.cs
- SafeCryptoHandles.cs
- OracleString.cs
- SerializationInfo.cs
- BamlCollectionHolder.cs
- NullReferenceException.cs
- XmlAttributeCollection.cs
- TextLine.cs
- ScrollViewer.cs
- ServiceNameElement.cs
- ProgressBarRenderer.cs
- CssStyleCollection.cs
- ConvertersCollection.cs
- TextBox.cs
- Root.cs
- ElementsClipboardData.cs
- BasicExpandProvider.cs
- TextChange.cs
- IMembershipProvider.cs
- WebZone.cs
- SessionEndedEventArgs.cs
- SystemWebExtensionsSectionGroup.cs
- AdRotator.cs
- MethodBody.cs
- OdbcConnectionStringbuilder.cs
- InternalCache.cs
- COM2EnumConverter.cs
- errorpatternmatcher.cs
- SwitchLevelAttribute.cs
- Vector.cs
- SqlBulkCopy.cs
- WindowsSolidBrush.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- PersonalizationProviderHelper.cs
- RemoteWebConfigurationHostStream.cs
- StatusBarPanel.cs
- DrawingGroup.cs
- COAUTHINFO.cs
- PointAnimationBase.cs
- DomNameTable.cs
- ZipArchive.cs
- ColorTransform.cs
- MimeMapping.cs
- OrCondition.cs
- MatchSingleFxEngineOpcode.cs
- BuildProvider.cs
- ProgressBar.cs
- PresentationAppDomainManager.cs
- LOSFormatter.cs
- DataRecordObjectView.cs
- RichTextBox.cs
- AdapterUtil.cs
- WebScriptMetadataMessage.cs
- Composition.cs
- RectangleHotSpot.cs
- Type.cs
- QilTypeChecker.cs
- MessageOperationFormatter.cs
- SelectedDatesCollection.cs
- EventlogProvider.cs
- DbgUtil.cs
- AsyncResult.cs
- SQLDateTime.cs
- WebPartConnection.cs
- Utils.cs
- MimeTypePropertyAttribute.cs
- Line.cs
- DataSetUtil.cs
- QilVisitor.cs