Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / ManagedLibraries / Security / System / Security / Cryptography / Xml / EncryptedReference.cs / 5 / EncryptedReference.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// EncryptedReference.cs
//
// This object implements the EncryptedReference element.
//
// 04/01/2002
//
namespace System.Security.Cryptography.Xml
{
using System;
using System.Collections;
using System.Xml;
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public abstract class EncryptedReference {
private string m_uri;
private string m_referenceType;
private TransformChain m_transformChain;
internal XmlElement m_cachedXml = null;
protected EncryptedReference () : this (String.Empty, new TransformChain()) {
}
protected EncryptedReference (string uri) : this (uri, new TransformChain()) {
}
protected EncryptedReference (string uri, TransformChain transformChain) {
this.TransformChain = transformChain;
this.Uri = uri;
m_cachedXml = null;
}
public string Uri {
get { return m_uri; }
set {
if (value == null)
throw new ArgumentNullException(SecurityResources.GetResourceString("Cryptography_Xml_UriRequired"));
m_uri = value;
m_cachedXml = null;
}
}
public TransformChain TransformChain {
get {
if (m_transformChain == null)
m_transformChain = new TransformChain();
return m_transformChain;
}
set {
m_transformChain = value;
m_cachedXml = null;
}
}
public void AddTransform (Transform transform) {
this.TransformChain.Add(transform);
}
protected string ReferenceType {
get { return m_referenceType; }
set {
m_referenceType = value;
m_cachedXml = null;
}
}
internal protected bool CacheValid {
get {
return (m_cachedXml != null);
}
}
public virtual XmlElement GetXml () {
if (CacheValid) return m_cachedXml;
XmlDocument document = new XmlDocument();
document.PreserveWhitespace = true;
return GetXml(document);
}
internal XmlElement GetXml (XmlDocument document) {
if (ReferenceType == null)
throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_ReferenceTypeRequired"));
// Create the Reference
XmlElement referenceElement = document.CreateElement(ReferenceType, EncryptedXml.XmlEncNamespaceUrl);
if (!String.IsNullOrEmpty(m_uri))
referenceElement.SetAttribute("URI", m_uri);
// Add the transforms to the CipherReference
if (this.TransformChain.Count > 0)
referenceElement.AppendChild(this.TransformChain.GetXml(document, SignedXml.XmlDsigNamespaceUrl));
return referenceElement;
}
public virtual void LoadXml (XmlElement value) {
if (value == null)
throw new ArgumentNullException("value");
this.ReferenceType = value.LocalName;
this.Uri = Utils.GetAttribute(value, "URI", EncryptedXml.XmlEncNamespaceUrl);
// Transforms
XmlNamespaceManager nsm = new XmlNamespaceManager(value.OwnerDocument.NameTable);
nsm.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl);
XmlNode transformsNode = value.SelectSingleNode("ds:Transforms", nsm);
if (transformsNode != null)
this.TransformChain.LoadXml(transformsNode as XmlElement);
// cache the Xml
m_cachedXml = value;
}
}
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class CipherReference : EncryptedReference {
private byte[] m_cipherValue;
public CipherReference () : base () {
ReferenceType = "CipherReference";
}
public CipherReference (string uri) : base(uri) {
ReferenceType = "CipherReference";
}
public CipherReference (string uri, TransformChain transformChain) : base(uri, transformChain) {
ReferenceType = "CipherReference";
}
// This method is used to cache results from resolved cipher references.
internal byte[] CipherValue {
get {
if (!CacheValid)
return null;
return m_cipherValue;
}
set {
m_cipherValue = value;
}
}
public override XmlElement GetXml () {
if (CacheValid) return m_cachedXml;
XmlDocument document = new XmlDocument();
document.PreserveWhitespace = true;
return GetXml(document);
}
new internal XmlElement GetXml (XmlDocument document) {
if (ReferenceType == null)
throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_ReferenceTypeRequired"));
// Create the Reference
XmlElement referenceElement = document.CreateElement(ReferenceType, EncryptedXml.XmlEncNamespaceUrl);
if (!String.IsNullOrEmpty(this.Uri))
referenceElement.SetAttribute("URI", this.Uri);
// Add the transforms to the CipherReference
if (this.TransformChain.Count > 0)
referenceElement.AppendChild(this.TransformChain.GetXml(document, EncryptedXml.XmlEncNamespaceUrl));
return referenceElement;
}
public override void LoadXml (XmlElement value) {
if (value == null)
throw new ArgumentNullException("value");
this.ReferenceType = value.LocalName;
this.Uri = Utils.GetAttribute(value, "URI", EncryptedXml.XmlEncNamespaceUrl);
// Transforms
XmlNamespaceManager nsm = new XmlNamespaceManager(value.OwnerDocument.NameTable);
nsm.AddNamespace("enc", EncryptedXml.XmlEncNamespaceUrl);
XmlNode transformsNode = value.SelectSingleNode("enc:Transforms", nsm);
if (transformsNode != null)
this.TransformChain.LoadXml(transformsNode as XmlElement);
// cache the Xml
m_cachedXml = value;
}
}
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class DataReference : EncryptedReference {
public DataReference () : base () {
ReferenceType = "DataReference";
}
public DataReference (string uri) : base(uri) {
ReferenceType = "DataReference";
}
public DataReference (string uri, TransformChain transformChain) : base(uri, transformChain) {
ReferenceType = "DataReference";
}
}
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class KeyReference : EncryptedReference {
public KeyReference () : base () {
ReferenceType = "KeyReference";
}
public KeyReference (string uri) : base(uri) {
ReferenceType = "KeyReference";
}
public KeyReference (string uri, TransformChain transformChain) : base(uri, transformChain) {
ReferenceType = "KeyReference";
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// EncryptedReference.cs
//
// This object implements the EncryptedReference element.
//
// 04/01/2002
//
namespace System.Security.Cryptography.Xml
{
using System;
using System.Collections;
using System.Xml;
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public abstract class EncryptedReference {
private string m_uri;
private string m_referenceType;
private TransformChain m_transformChain;
internal XmlElement m_cachedXml = null;
protected EncryptedReference () : this (String.Empty, new TransformChain()) {
}
protected EncryptedReference (string uri) : this (uri, new TransformChain()) {
}
protected EncryptedReference (string uri, TransformChain transformChain) {
this.TransformChain = transformChain;
this.Uri = uri;
m_cachedXml = null;
}
public string Uri {
get { return m_uri; }
set {
if (value == null)
throw new ArgumentNullException(SecurityResources.GetResourceString("Cryptography_Xml_UriRequired"));
m_uri = value;
m_cachedXml = null;
}
}
public TransformChain TransformChain {
get {
if (m_transformChain == null)
m_transformChain = new TransformChain();
return m_transformChain;
}
set {
m_transformChain = value;
m_cachedXml = null;
}
}
public void AddTransform (Transform transform) {
this.TransformChain.Add(transform);
}
protected string ReferenceType {
get { return m_referenceType; }
set {
m_referenceType = value;
m_cachedXml = null;
}
}
internal protected bool CacheValid {
get {
return (m_cachedXml != null);
}
}
public virtual XmlElement GetXml () {
if (CacheValid) return m_cachedXml;
XmlDocument document = new XmlDocument();
document.PreserveWhitespace = true;
return GetXml(document);
}
internal XmlElement GetXml (XmlDocument document) {
if (ReferenceType == null)
throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_ReferenceTypeRequired"));
// Create the Reference
XmlElement referenceElement = document.CreateElement(ReferenceType, EncryptedXml.XmlEncNamespaceUrl);
if (!String.IsNullOrEmpty(m_uri))
referenceElement.SetAttribute("URI", m_uri);
// Add the transforms to the CipherReference
if (this.TransformChain.Count > 0)
referenceElement.AppendChild(this.TransformChain.GetXml(document, SignedXml.XmlDsigNamespaceUrl));
return referenceElement;
}
public virtual void LoadXml (XmlElement value) {
if (value == null)
throw new ArgumentNullException("value");
this.ReferenceType = value.LocalName;
this.Uri = Utils.GetAttribute(value, "URI", EncryptedXml.XmlEncNamespaceUrl);
// Transforms
XmlNamespaceManager nsm = new XmlNamespaceManager(value.OwnerDocument.NameTable);
nsm.AddNamespace("ds", SignedXml.XmlDsigNamespaceUrl);
XmlNode transformsNode = value.SelectSingleNode("ds:Transforms", nsm);
if (transformsNode != null)
this.TransformChain.LoadXml(transformsNode as XmlElement);
// cache the Xml
m_cachedXml = value;
}
}
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class CipherReference : EncryptedReference {
private byte[] m_cipherValue;
public CipherReference () : base () {
ReferenceType = "CipherReference";
}
public CipherReference (string uri) : base(uri) {
ReferenceType = "CipherReference";
}
public CipherReference (string uri, TransformChain transformChain) : base(uri, transformChain) {
ReferenceType = "CipherReference";
}
// This method is used to cache results from resolved cipher references.
internal byte[] CipherValue {
get {
if (!CacheValid)
return null;
return m_cipherValue;
}
set {
m_cipherValue = value;
}
}
public override XmlElement GetXml () {
if (CacheValid) return m_cachedXml;
XmlDocument document = new XmlDocument();
document.PreserveWhitespace = true;
return GetXml(document);
}
new internal XmlElement GetXml (XmlDocument document) {
if (ReferenceType == null)
throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_ReferenceTypeRequired"));
// Create the Reference
XmlElement referenceElement = document.CreateElement(ReferenceType, EncryptedXml.XmlEncNamespaceUrl);
if (!String.IsNullOrEmpty(this.Uri))
referenceElement.SetAttribute("URI", this.Uri);
// Add the transforms to the CipherReference
if (this.TransformChain.Count > 0)
referenceElement.AppendChild(this.TransformChain.GetXml(document, EncryptedXml.XmlEncNamespaceUrl));
return referenceElement;
}
public override void LoadXml (XmlElement value) {
if (value == null)
throw new ArgumentNullException("value");
this.ReferenceType = value.LocalName;
this.Uri = Utils.GetAttribute(value, "URI", EncryptedXml.XmlEncNamespaceUrl);
// Transforms
XmlNamespaceManager nsm = new XmlNamespaceManager(value.OwnerDocument.NameTable);
nsm.AddNamespace("enc", EncryptedXml.XmlEncNamespaceUrl);
XmlNode transformsNode = value.SelectSingleNode("enc:Transforms", nsm);
if (transformsNode != null)
this.TransformChain.LoadXml(transformsNode as XmlElement);
// cache the Xml
m_cachedXml = value;
}
}
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class DataReference : EncryptedReference {
public DataReference () : base () {
ReferenceType = "DataReference";
}
public DataReference (string uri) : base(uri) {
ReferenceType = "DataReference";
}
public DataReference (string uri, TransformChain transformChain) : base(uri, transformChain) {
ReferenceType = "DataReference";
}
}
[System.Security.Permissions.HostProtection(MayLeakOnAbort = true)]
public sealed class KeyReference : EncryptedReference {
public KeyReference () : base () {
ReferenceType = "KeyReference";
}
public KeyReference (string uri) : base(uri) {
ReferenceType = "KeyReference";
}
public KeyReference (string uri, TransformChain transformChain) : base(uri, transformChain) {
ReferenceType = "KeyReference";
}
}
}
// 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
- NativeActivityTransactionContext.cs
- TextElementEnumerator.cs
- DBPropSet.cs
- dataobject.cs
- SHA384Managed.cs
- OdbcPermission.cs
- ViewSimplifier.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SchemaEntity.cs
- PrintDocument.cs
- HtmlControlPersistable.cs
- StructuredType.cs
- CodeExpressionCollection.cs
- DbBuffer.cs
- ContractInferenceHelper.cs
- WebPartConnectionsCancelVerb.cs
- InternalCache.cs
- ReliableSession.cs
- DataGridViewComboBoxColumn.cs
- Matrix3DConverter.cs
- HttpWebResponse.cs
- Literal.cs
- ElementsClipboardData.cs
- ScaleTransform3D.cs
- BehaviorEditorPart.cs
- InvalidCastException.cs
- FontDifferentiator.cs
- OleDbTransaction.cs
- WebRequestModuleElementCollection.cs
- ContainerVisual.cs
- MaskedTextProvider.cs
- StylusShape.cs
- VirtualPathUtility.cs
- ExpressionReplacer.cs
- DocumentPage.cs
- complextypematerializer.cs
- UIPermission.cs
- MimeFormImporter.cs
- SmtpException.cs
- SiteMap.cs
- CalendarSelectionChangedEventArgs.cs
- DataControlButton.cs
- PersonalizationProviderHelper.cs
- OleDbParameterCollection.cs
- BindingMemberInfo.cs
- MsmqIntegrationChannelFactory.cs
- RemoteCryptoRsaServiceProvider.cs
- TaskHelper.cs
- DataGridParentRows.cs
- RealProxy.cs
- DbFunctionCommandTree.cs
- EmptyTextWriter.cs
- HashHelper.cs
- sitestring.cs
- _IPv6Address.cs
- mda.cs
- WindowsRichEdit.cs
- WindowAutomationPeer.cs
- SpnEndpointIdentity.cs
- ForeignConstraint.cs
- SuppressMergeCheckAttribute.cs
- TemplateXamlTreeBuilder.cs
- SqlRewriteScalarSubqueries.cs
- grammarelement.cs
- PageCatalogPart.cs
- AssemblyBuilder.cs
- SecurityTokenSerializer.cs
- CodeGeneratorOptions.cs
- DCSafeHandle.cs
- Buffer.cs
- EdmPropertyAttribute.cs
- IISUnsafeMethods.cs
- IdentityNotMappedException.cs
- XmlReflectionMember.cs
- Manipulation.cs
- Helper.cs
- DependentList.cs
- DataSourceXmlSerializationAttribute.cs
- dataprotectionpermissionattribute.cs
- ArrangedElementCollection.cs
- TextDecorationUnitValidation.cs
- DataGridViewCellParsingEventArgs.cs
- XmlSchemaSet.cs
- FaultFormatter.cs
- DataRelation.cs
- LockedBorderGlyph.cs
- SolidBrush.cs
- DataGridViewComboBoxEditingControl.cs
- HtmlInputHidden.cs
- URI.cs
- InstanceDataCollectionCollection.cs
- TargetParameterCountException.cs
- SqlBulkCopyColumnMapping.cs
- HttpModuleCollection.cs
- Misc.cs
- safex509handles.cs
- IDQuery.cs
- DataGridViewCheckBoxCell.cs
- SQLChars.cs
- ComboBox.cs