Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- Menu.cs
- XmlUTF8TextWriter.cs
- LongTypeConverter.cs
- EastAsianLunisolarCalendar.cs
- DbTransaction.cs
- SQLString.cs
- CompositeDesignerAccessibleObject.cs
- EdmMember.cs
- ConsumerConnectionPoint.cs
- GlyphTypeface.cs
- XdrBuilder.cs
- RubberbandSelector.cs
- UnsafeNativeMethodsPenimc.cs
- MarginsConverter.cs
- FtpCachePolicyElement.cs
- QilTernary.cs
- PageAdapter.cs
- FontWeightConverter.cs
- ClientTargetCollection.cs
- activationcontext.cs
- CollaborationHelperFunctions.cs
- ControlIdConverter.cs
- StyleCollection.cs
- LocalServiceSecuritySettings.cs
- ResourceReferenceExpressionConverter.cs
- AppendHelper.cs
- WebProxyScriptElement.cs
- DocumentPageTextView.cs
- BitmapEncoder.cs
- Pkcs7Recipient.cs
- KeyInfo.cs
- WebPartHeaderCloseVerb.cs
- Size3DConverter.cs
- RouteParameter.cs
- HashRepartitionStream.cs
- GeometryModel3D.cs
- AvTraceFormat.cs
- SystemIcmpV4Statistics.cs
- BindableAttribute.cs
- TemplateControlCodeDomTreeGenerator.cs
- InternalSafeNativeMethods.cs
- DataGridViewSortCompareEventArgs.cs
- XamlToRtfWriter.cs
- CommandManager.cs
- WebPartEditorCancelVerb.cs
- DesignRelation.cs
- CodeObject.cs
- InternalConfigHost.cs
- StateRuntime.cs
- XmlResolver.cs
- AuthenticationSection.cs
- XmlWrappingWriter.cs
- PeerApplication.cs
- ObjectTypeMapping.cs
- ObjectViewEntityCollectionData.cs
- SendActivityDesignerTheme.cs
- SqlFactory.cs
- CredentialManagerDialog.cs
- TextRangeSerialization.cs
- DocumentGridContextMenu.cs
- AdornedElementPlaceholder.cs
- CacheRequest.cs
- PopupRootAutomationPeer.cs
- sqlnorm.cs
- Deflater.cs
- Assert.cs
- ManagementOperationWatcher.cs
- SessionState.cs
- HttpServerVarsCollection.cs
- QfeChecker.cs
- DataSet.cs
- Menu.cs
- mediapermission.cs
- WebContentFormatHelper.cs
- SQLDecimalStorage.cs
- OperatingSystem.cs
- ObjectCloneHelper.cs
- Variable.cs
- InlinedAggregationOperator.cs
- X509Utils.cs
- SqlNode.cs
- Coordinator.cs
- PolicyStatement.cs
- MultiBinding.cs
- ScrollBar.cs
- Nullable.cs
- SapiRecognizer.cs
- SettingsAttributeDictionary.cs
- SafeBuffer.cs
- UntypedNullExpression.cs
- BitmapEffectInput.cs
- NonParentingControl.cs
- SqlReorderer.cs
- MonthChangedEventArgs.cs
- DataGridViewTextBoxEditingControl.cs
- DBParameter.cs
- SchemaTypeEmitter.cs
- BooleanAnimationUsingKeyFrames.cs
- CharUnicodeInfo.cs
- DataBindingCollection.cs