Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / EnvelopedSignatureTransform.cs / 1305376 / EnvelopedSignatureTransform.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.IdentityModel
{
using System.Xml;
using System.Security.Cryptography;
sealed class EnvelopedSignatureTransform : Transform
{
string prefix = XmlSignatureStrings.Prefix;
public EnvelopedSignatureTransform()
{
}
public override string Algorithm
{
get { return XD.XmlSignatureDictionary.EnvelopedSignature.Value; }
}
public override object Process(object input, SignatureResourcePool resourcePool, DictionaryManager dictionaryManager)
{
XmlTokenStream tokenStream = input as XmlTokenStream;
if (tokenStream != null)
{
tokenStream.SetElementExclusion(XmlSignatureStrings.Signature, XmlSignatureStrings.Namespace);
return tokenStream;
}
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.UnsupportedInputTypeForTransform, input.GetType())));
}
// this transform is not allowed as the last one in a chain
public override byte[] ProcessAndDigest(object input, SignatureResourcePool resourcePool, string digestAlgorithm, DictionaryManager dictionaryManager)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.UnsupportedLastTransform)));
}
public override void ReadFrom(XmlDictionaryReader reader, DictionaryManager dictionaryManager)
{
reader.MoveToContent();
string algorithm = XmlHelper.ReadEmptyElementAndRequiredAttribute(reader,
dictionaryManager.XmlSignatureDictionary.Transform, dictionaryManager.XmlSignatureDictionary.Namespace, dictionaryManager.XmlSignatureDictionary.Algorithm, out this.prefix);
if (algorithm != this.Algorithm)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new CryptographicException(SR.GetString(SR.AlgorithmMismatchForTransform)));
}
}
public override void WriteTo(XmlDictionaryWriter writer, DictionaryManager dictionaryManager)
{
writer.WriteStartElement(this.prefix, dictionaryManager.XmlSignatureDictionary.Transform, dictionaryManager.XmlSignatureDictionary.Namespace);
writer.WriteAttributeString(dictionaryManager.XmlSignatureDictionary.Algorithm, null, this.Algorithm);
writer.WriteEndElement(); // Transform
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.IdentityModel
{
using System.Xml;
using System.Security.Cryptography;
sealed class EnvelopedSignatureTransform : Transform
{
string prefix = XmlSignatureStrings.Prefix;
public EnvelopedSignatureTransform()
{
}
public override string Algorithm
{
get { return XD.XmlSignatureDictionary.EnvelopedSignature.Value; }
}
public override object Process(object input, SignatureResourcePool resourcePool, DictionaryManager dictionaryManager)
{
XmlTokenStream tokenStream = input as XmlTokenStream;
if (tokenStream != null)
{
tokenStream.SetElementExclusion(XmlSignatureStrings.Signature, XmlSignatureStrings.Namespace);
return tokenStream;
}
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.UnsupportedInputTypeForTransform, input.GetType())));
}
// this transform is not allowed as the last one in a chain
public override byte[] ProcessAndDigest(object input, SignatureResourcePool resourcePool, string digestAlgorithm, DictionaryManager dictionaryManager)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR.GetString(SR.UnsupportedLastTransform)));
}
public override void ReadFrom(XmlDictionaryReader reader, DictionaryManager dictionaryManager)
{
reader.MoveToContent();
string algorithm = XmlHelper.ReadEmptyElementAndRequiredAttribute(reader,
dictionaryManager.XmlSignatureDictionary.Transform, dictionaryManager.XmlSignatureDictionary.Namespace, dictionaryManager.XmlSignatureDictionary.Algorithm, out this.prefix);
if (algorithm != this.Algorithm)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new CryptographicException(SR.GetString(SR.AlgorithmMismatchForTransform)));
}
}
public override void WriteTo(XmlDictionaryWriter writer, DictionaryManager dictionaryManager)
{
writer.WriteStartElement(this.prefix, dictionaryManager.XmlSignatureDictionary.Transform, dictionaryManager.XmlSignatureDictionary.Namespace);
writer.WriteAttributeString(dictionaryManager.XmlSignatureDictionary.Algorithm, null, this.Algorithm);
writer.WriteEndElement(); // Transform
}
}
}
// 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
- ErrorInfoXmlDocument.cs
- CssTextWriter.cs
- EnumerableRowCollectionExtensions.cs
- XPathNodeInfoAtom.cs
- ToolStripPanel.cs
- AspNetSynchronizationContext.cs
- Simplifier.cs
- EventListener.cs
- QueryResponse.cs
- IUnknownConstantAttribute.cs
- SQLResource.cs
- CodeRemoveEventStatement.cs
- MetadataPropertyvalue.cs
- SafeFreeMibTable.cs
- CachedPathData.cs
- XmlBaseReader.cs
- BrowserDefinition.cs
- FrameworkElement.cs
- COM2ColorConverter.cs
- AssertSection.cs
- BCLDebug.cs
- SchemaNotation.cs
- InkCanvasSelection.cs
- PixelFormat.cs
- XmlSchemaImport.cs
- ObjectDataSourceView.cs
- DoubleLink.cs
- JsonFormatReaderGenerator.cs
- DesignerVerb.cs
- FillErrorEventArgs.cs
- DragEvent.cs
- NavigationHelper.cs
- FlowDocumentPage.cs
- UIAgentAsyncParams.cs
- UserMapPath.cs
- SqlPersonalizationProvider.cs
- namescope.cs
- DbParameterHelper.cs
- System.Data_BID.cs
- ToolboxComponentsCreatedEventArgs.cs
- HtmlControlPersistable.cs
- HtmlInputReset.cs
- LinqMaximalSubtreeNominator.cs
- SignatureConfirmations.cs
- HelpPage.cs
- XmlILConstructAnalyzer.cs
- ArraySet.cs
- RtfFormatStack.cs
- CodeLinePragma.cs
- SaveFileDialog.cs
- ControlIdConverter.cs
- DataRowChangeEvent.cs
- RuleConditionDialog.cs
- ClusterRegistryConfigurationProvider.cs
- ProfileGroupSettings.cs
- SourceFileInfo.cs
- FamilyTypeface.cs
- EntityDataSourceContextCreatedEventArgs.cs
- CommandHelper.cs
- SoapEnumAttribute.cs
- WebHttpElement.cs
- CommandBindingCollection.cs
- FunctionQuery.cs
- GenerateScriptTypeAttribute.cs
- X509Certificate2Collection.cs
- FileLogRecordHeader.cs
- NotFiniteNumberException.cs
- SqlBulkCopyColumnMapping.cs
- Size3DConverter.cs
- SmiEventSink.cs
- datacache.cs
- AuthenticationManager.cs
- ConfigXmlElement.cs
- ErrorProvider.cs
- SqlVisitor.cs
- ItemCollection.cs
- TraceUtility.cs
- DbConvert.cs
- ToolStripItemImageRenderEventArgs.cs
- versioninfo.cs
- PartitionResolver.cs
- HwndKeyboardInputProvider.cs
- PersonalizationAdministration.cs
- XmlTextReaderImplHelpers.cs
- PointConverter.cs
- ProfileInfo.cs
- XmlSerializer.cs
- MetaChildrenColumn.cs
- MissingFieldException.cs
- GetPageNumberCompletedEventArgs.cs
- XmlHierarchyData.cs
- DeclarativeCatalogPart.cs
- SolidBrush.cs
- DbgUtil.cs
- FontFamily.cs
- ReachSerializationCacheItems.cs
- PermissionAttributes.cs
- IDReferencePropertyAttribute.cs
- ManualWorkflowSchedulerService.cs
- XmlSerializerAssemblyAttribute.cs