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
- Sentence.cs
- LogSwitch.cs
- VectorCollectionValueSerializer.cs
- PolicyUnit.cs
- BitmapInitialize.cs
- PageBuildProvider.cs
- ResourceProperty.cs
- PropertyInformationCollection.cs
- XmlHierarchyData.cs
- WeakHashtable.cs
- TextFormatter.cs
- SelectionService.cs
- ValueOfAction.cs
- SaveRecipientRequest.cs
- BuildManagerHost.cs
- TrustLevel.cs
- XPathParser.cs
- StrokeNode.cs
- TemplatingOptionsDialog.cs
- InternalRelationshipCollection.cs
- String.cs
- QilFactory.cs
- PersonalizationStateInfoCollection.cs
- InvalidAsynchronousStateException.cs
- AddingNewEventArgs.cs
- SmiMetaDataProperty.cs
- ThreadStartException.cs
- NameTable.cs
- ImageDrawing.cs
- PersonalizablePropertyEntry.cs
- TextEditor.cs
- PKCS1MaskGenerationMethod.cs
- PrinterSettings.cs
- GatewayIPAddressInformationCollection.cs
- TransformProviderWrapper.cs
- StdValidatorsAndConverters.cs
- TreeViewImageGenerator.cs
- MethodImplAttribute.cs
- Expression.cs
- ConfigXmlText.cs
- ExternalException.cs
- ResetableIterator.cs
- DateTimePicker.cs
- FieldAccessException.cs
- EditingMode.cs
- WmpBitmapDecoder.cs
- DynamicAttribute.cs
- ExceptionValidationRule.cs
- ServiceContractListItemList.cs
- EntityRecordInfo.cs
- GlyphShapingProperties.cs
- CodeSubDirectoriesCollection.cs
- BitmapDownload.cs
- Int64AnimationBase.cs
- DispatchWrapper.cs
- RoutedEventConverter.cs
- ObsoleteAttribute.cs
- OdbcEnvironment.cs
- UnsafeNativeMethods.cs
- FullTrustAssembly.cs
- OperatingSystem.cs
- MediaContext.cs
- BasePropertyDescriptor.cs
- ProviderUtil.cs
- ViewStateException.cs
- DbParameterCollection.cs
- InvalidWorkflowException.cs
- MetadataReference.cs
- activationcontext.cs
- SpellerError.cs
- UndoEngine.cs
- GlyphElement.cs
- SoapConverter.cs
- SafeTokenHandle.cs
- CancelEventArgs.cs
- ListControl.cs
- Rotation3D.cs
- DecoderFallback.cs
- ExtendedPropertyDescriptor.cs
- AuthenticatedStream.cs
- MatrixUtil.cs
- DocumentViewerHelper.cs
- CodeDirectionExpression.cs
- TypedReference.cs
- RewritingSimplifier.cs
- TypeDependencyAttribute.cs
- SelectorAutomationPeer.cs
- XNodeSchemaApplier.cs
- MessageQueueEnumerator.cs
- TextElementAutomationPeer.cs
- GC.cs
- OrderedDictionaryStateHelper.cs
- PackWebRequestFactory.cs
- RSAPKCS1SignatureDeformatter.cs
- QilLiteral.cs
- WindowsAuthenticationEventArgs.cs
- ConfigUtil.cs
- Form.cs
- ToolStripLabel.cs
- Attachment.cs