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
- HttpResponseHeader.cs
- ListenerChannelContext.cs
- InlineObject.cs
- OdbcCommand.cs
- FontFaceLayoutInfo.cs
- FigureHelper.cs
- IriParsingElement.cs
- HierarchicalDataSourceIDConverter.cs
- DataTableCollection.cs
- FrameworkTextComposition.cs
- Expander.cs
- CorrelationActionMessageFilter.cs
- HttpPostedFileWrapper.cs
- SymmetricAlgorithm.cs
- Authorization.cs
- WebConfigurationHost.cs
- ProxyGenerator.cs
- ScalarOps.cs
- WmiPutTraceRecord.cs
- BitmapEncoder.cs
- ExpandoObject.cs
- WindowHideOrCloseTracker.cs
- SequentialOutput.cs
- Int64.cs
- ToolTipService.cs
- DataRowExtensions.cs
- CaseStatementSlot.cs
- Brushes.cs
- XmlCharType.cs
- WaitForChangedResult.cs
- XmlSecureResolver.cs
- GridErrorDlg.cs
- ReferencedCollectionType.cs
- AppDomainProtocolHandler.cs
- objectquery_tresulttype.cs
- ShapingWorkspace.cs
- ButtonField.cs
- SingleAnimationUsingKeyFrames.cs
- _HeaderInfoTable.cs
- Command.cs
- ParameterToken.cs
- Color.cs
- ResourceKey.cs
- HostedTransportConfigurationManager.cs
- ImageMapEventArgs.cs
- PixelFormatConverter.cs
- FileRegion.cs
- WebAdminConfigurationHelper.cs
- EventLogger.cs
- TargetParameterCountException.cs
- streamingZipPartStream.cs
- SiteIdentityPermission.cs
- TextEndOfSegment.cs
- DocumentViewerBaseAutomationPeer.cs
- ItemType.cs
- FormCollection.cs
- PersonalizationProviderCollection.cs
- LabelDesigner.cs
- ObjectDataSourceEventArgs.cs
- _NestedSingleAsyncResult.cs
- IgnoreFileBuildProvider.cs
- PolicyChain.cs
- ToolStripTextBox.cs
- ApplicationInfo.cs
- EncoderFallback.cs
- CodeDefaultValueExpression.cs
- CompilerResults.cs
- LoginView.cs
- StylesEditorDialog.cs
- AmbiguousMatchException.cs
- CreateUserWizard.cs
- KnownBoxes.cs
- CodeFieldReferenceExpression.cs
- SerializationTrace.cs
- WorkflowViewService.cs
- RelationshipEndCollection.cs
- KerberosSecurityTokenProvider.cs
- ReadOnlyPropertyMetadata.cs
- HostingEnvironmentException.cs
- User.cs
- EventToken.cs
- AbandonedMutexException.cs
- Bookmark.cs
- HybridObjectCache.cs
- DataGridViewRowsRemovedEventArgs.cs
- sqlnorm.cs
- ToolStripAdornerWindowService.cs
- TraceInternal.cs
- RefExpr.cs
- TableLayout.cs
- EncryptedHeader.cs
- OrderByQueryOptionExpression.cs
- Function.cs
- EndOfStreamException.cs
- NameSpaceExtractor.cs
- Int32Rect.cs
- QilSortKey.cs
- SessionStateSection.cs
- DecimalAnimation.cs
- ExpressionVisitor.cs