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
- ManagedWndProcTracker.cs
- SynchronizationHandlesCodeDomSerializer.cs
- UnmanagedHandle.cs
- UdpConstants.cs
- IxmlLineInfo.cs
- FillRuleValidation.cs
- SqlInfoMessageEvent.cs
- WebControlAdapter.cs
- Hashtable.cs
- ResourceReferenceExpression.cs
- sqlcontext.cs
- ObjectDataSourceView.cs
- XmlDataCollection.cs
- Rfc2898DeriveBytes.cs
- isolationinterop.cs
- DoubleAnimationClockResource.cs
- SystemNetHelpers.cs
- Container.cs
- UIElementHelper.cs
- AsymmetricSignatureFormatter.cs
- OutputCacheSettings.cs
- Vector3DCollection.cs
- PageThemeBuildProvider.cs
- NumberFunctions.cs
- MenuItemBindingCollection.cs
- XmlSchemaNotation.cs
- Debug.cs
- UnsafeNativeMethods.cs
- WindowsTreeView.cs
- GregorianCalendar.cs
- SudsCommon.cs
- PolyBezierSegment.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DelegateInArgument.cs
- Enlistment.cs
- CancellationScope.cs
- ReceiveContent.cs
- RpcAsyncResult.cs
- DataColumnMappingCollection.cs
- CodeDirectionExpression.cs
- MemoryRecordBuffer.cs
- TableColumnCollectionInternal.cs
- ExpressionCopier.cs
- Setter.cs
- XmlCharacterData.cs
- ParallelForEach.cs
- AttributeCollection.cs
- PropertyRecord.cs
- BaseValidator.cs
- RelativeSource.cs
- ListView.cs
- MembershipSection.cs
- Executor.cs
- NumericUpDown.cs
- BatchParser.cs
- CursorConverter.cs
- CompilerGlobalScopeAttribute.cs
- BufferModeSettings.cs
- TextEditorThreadLocalStore.cs
- GeneralTransform3DCollection.cs
- CallContext.cs
- TableNameAttribute.cs
- FillErrorEventArgs.cs
- DbXmlEnabledProviderManifest.cs
- TagPrefixCollection.cs
- DrawingBrush.cs
- Buffer.cs
- SparseMemoryStream.cs
- SymmetricSecurityProtocolFactory.cs
- ReflectionTypeLoadException.cs
- AsyncPostBackErrorEventArgs.cs
- _CookieModule.cs
- GridSplitterAutomationPeer.cs
- FactoryId.cs
- GuidelineCollection.cs
- Double.cs
- PropertyCollection.cs
- ArrangedElementCollection.cs
- ConstraintEnumerator.cs
- ExpressionReplacer.cs
- AnnotationResource.cs
- EncoderReplacementFallback.cs
- WindowsFormsSectionHandler.cs
- DesignerCatalogPartChrome.cs
- DependencyPropertyAttribute.cs
- ProfileParameter.cs
- TemplateBuilder.cs
- HierarchicalDataBoundControl.cs
- FileSystemInfo.cs
- DecoratedNameAttribute.cs
- COM2AboutBoxPropertyDescriptor.cs
- StylusPoint.cs
- Cell.cs
- JsonCollectionDataContract.cs
- AutomationEvent.cs
- HandlerBase.cs
- OdbcUtils.cs
- StronglyTypedResourceBuilder.cs
- EUCJPEncoding.cs
- FrugalMap.cs