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
- UriTemplateEquivalenceComparer.cs
- IChannel.cs
- CodeCommentStatement.cs
- IOException.cs
- GlyphRunDrawing.cs
- ParserContext.cs
- DataSourceControlBuilder.cs
- TypedTableHandler.cs
- OperatingSystem.cs
- BitmapImage.cs
- EntityDataSourceColumn.cs
- SqlCommand.cs
- CachedFontFamily.cs
- Tuple.cs
- LocalTransaction.cs
- EpmTargetPathSegment.cs
- XmlChildEnumerator.cs
- CqlErrorHelper.cs
- ZoomingMessageFilter.cs
- OleTxTransaction.cs
- MetadataPropertyAttribute.cs
- MeasureData.cs
- PageCodeDomTreeGenerator.cs
- EntityDataSourceQueryBuilder.cs
- MsmqBindingBase.cs
- XmlLoader.cs
- VisualCollection.cs
- StorageBasedPackageProperties.cs
- ViewManagerAttribute.cs
- TreeNodeBinding.cs
- DataBindingsDialog.cs
- BezierSegment.cs
- CombinedGeometry.cs
- ShimAsPublicXamlType.cs
- CqlLexerHelpers.cs
- LayoutTable.cs
- SystemIcmpV4Statistics.cs
- ControlBindingsCollection.cs
- RowUpdatingEventArgs.cs
- AxImporter.cs
- TimeSpanMinutesConverter.cs
- WebPartTransformerAttribute.cs
- DbTransaction.cs
- WindowsPen.cs
- RegistryDataKey.cs
- ControlBuilderAttribute.cs
- RuleAttributes.cs
- TableColumn.cs
- WebBrowser.cs
- ColumnHeaderConverter.cs
- SystemSounds.cs
- WebConfigurationHostFileChange.cs
- SubMenuStyle.cs
- SplineKeyFrames.cs
- IssuedTokensHeader.cs
- EnumerableRowCollection.cs
- StringValidatorAttribute.cs
- DateBoldEvent.cs
- Visual.cs
- DataServiceHost.cs
- ServiceChannelProxy.cs
- SelectedDatesCollection.cs
- JumpItem.cs
- BindingExpressionBase.cs
- PrincipalPermission.cs
- ForwardPositionQuery.cs
- ModelTreeEnumerator.cs
- DropSource.cs
- CharConverter.cs
- SecurityException.cs
- Utils.cs
- SplineQuaternionKeyFrame.cs
- JobStaple.cs
- Cell.cs
- AutomationProperties.cs
- SerializationStore.cs
- SimpleFieldTemplateUserControl.cs
- coordinatorscratchpad.cs
- InputReportEventArgs.cs
- Msec.cs
- InvalidEnumArgumentException.cs
- RawStylusInputReport.cs
- DataGridTableStyleMappingNameEditor.cs
- SaveFileDialog.cs
- Roles.cs
- DefaultSection.cs
- Size3DValueSerializer.cs
- processwaithandle.cs
- documentsequencetextview.cs
- OdbcCommand.cs
- MetadataItemEmitter.cs
- BaseValidator.cs
- ListViewDeletedEventArgs.cs
- DragCompletedEventArgs.cs
- DesignerCategoryAttribute.cs
- SQLDateTimeStorage.cs
- ThicknessAnimation.cs
- UpdateCompiler.cs
- ServiceModelSectionGroup.cs
- ReflectPropertyDescriptor.cs