Partager via


CipherReference Classe

Définition

Représente l’élément dans le <CipherReference> chiffrement XML. Cette classe ne peut pas être héritée.

public ref class CipherReference sealed : System::Security::Cryptography::Xml::EncryptedReference
public sealed class CipherReference : System.Security.Cryptography.Xml.EncryptedReference
type CipherReference = class
    inherit EncryptedReference
Public NotInheritable Class CipherReference
Inherits EncryptedReference
Héritage
CipherReference

Exemples

L’exemple de code suivant crée une nouvelle instance de CipherReference.

using System;
using System.Security.Cryptography.Xml;
using System.Xml;
using System.IO;

/// This sample used the EncryptedData class to create an encrypted data element
/// and write it to an XML file. It demonstrates the use of CipherReference.
namespace EncryptedDataSample
{
    class Example
    {
        [STAThread]
        static void Main(string[] args)
        {
            //Create a URI string.
            String uri = "http://www.woodgrovebank.com/document.xml";
            // Create a Base64 transform. The input content retrieved from the
            // URI should be Base64-decoded before other processing.
            Transform base64 = new XmlDsigBase64Transform();
            //Create a transform chain and add the transform to it.
            TransformChain tc = new TransformChain();
            tc.Add(base64);
            //Create <CipherReference> information.
            CipherReference reference = new CipherReference(uri, tc);

            // Create a new CipherData object using the CipherReference information.
            // Note that you cannot assign both a CipherReference and a CipherValue
            // to a CipherData object.
            CipherData cd = new CipherData(reference);

            // Create a new EncryptedData object.
            EncryptedData ed = new EncryptedData();

            //Add an encryption method to the object.
            ed.Id = "ED";
            ed.EncryptionMethod = new EncryptionMethod("http://www.w3.org/2001/04/xmlenc#aes128-cbc");
            ed.CipherData = cd;

            //Add key information to the object.
            KeyInfo ki = new KeyInfo();
            ki.AddClause(new KeyInfoRetrievalMethod("#EK", "http://www.w3.org/2001/04/xmlenc#EncryptedKey"));
            ed.KeyInfo = ki;

            // Create new XML document and put encrypted data into it.
            XmlDocument doc = new XmlDocument();
            XmlElement encryptionPropertyElement = (XmlElement)doc.CreateElement("EncryptionProperty", EncryptedXml.XmlEncNamespaceUrl);
            EncryptionProperty ep = new EncryptionProperty(encryptionPropertyElement);
            ed.AddProperty(ep);

            // Output the resulting XML information into a file.
            try
            {
                string path = @"c:\test\MyTest.xml";

                File.WriteAllText(path, ed.GetXml().OuterXml);
            }
            catch (IOException e)
            {
                Console.WriteLine("File IO error. {0}", e);
            }
        }
    }
}
Imports System.Security.Cryptography.Xml
Imports System.Xml
Imports System.IO


'/ This sample used the EncryptedData class to create a EncryptedData element
'/ and write it to an XML file. It demonstrates the use of CipherReference.
Module Module1

    Sub Main()
        ' Create a URI string.
        Dim uri As String = "http://www.woodgrovebank.com/document.xml"
        ' Create a Base64 transform. The input content retrieved from the
        ' URI should be Base64-decoded before other processing.
        Dim base64 As Transform = New XmlDsigBase64Transform
        Dim tc As New TransformChain
        tc.Add(base64)
        ' Create <CipherReference> information.
        Dim reference As CipherReference = New CipherReference(uri, tc)

        ' Create a new CipherData object.
        ' Note that you cannot assign both a CipherReference and a CipherValue
        ' to a CipherData object.
        Dim cd As CipherData = New CipherData(Reference)

        ' Create a new EncryptedData object.
        Dim ed As New EncryptedData

        'Add an encryption method to the object.
        ed.Id = "ED"
        ed.EncryptionMethod = New EncryptionMethod("http://www.w3.org/2001/04/xmlenc#aes128-cbc")
        ed.CipherData = cd

        'Add key information to the object.
        Dim ki As New KeyInfo
        ki.AddClause(New KeyInfoRetrievalMethod("#EK", "http://www.w3.org/2001/04/xmlenc#EncryptedKey"))
        ed.KeyInfo = ki

        ' Create new XML document and put encrypted data into it.
        Dim doc As New XmlDocument
        Dim encryptionPropertyElement As XmlElement = CType(doc.CreateElement("EncryptionProperty", EncryptedXml.XmlEncNamespaceUrl), XmlElement)
        Dim ep As New EncryptionProperty(encryptionPropertyElement)
        ed.AddProperty(ep)

        ' Output the resulting XML information into a file.
        Dim path As String = "c:\test\MyTest.xml"
        File.WriteAllText(path, ed.GetXml().OuterXml)
    End Sub

End Module

Remarques

Cette classe représente l’élément dans le <CipherReference> chiffrement XML. Il identifie une source qui, lorsqu’elle est traitée, génère les données chiffrées.

Les données chiffrées réelles référencées par le <CipherReference> processus suivant sont obtenues. La <CipherReference> URI propriété contient un URI (Uniform Resource Identifier) qui est déréférencé. Si l’élément <CipherReference> contient également une chaîne de transformation, les données résultant du déreferencing de l’URI sont transformées comme spécifié pour produire les données chiffrées. Par exemple, si les données chiffrées sont encodées en base64 dans un document XML, les transformations spécifient une expression XPath suivie d’un décodage base64 afin que les données chiffrées puissent être extraites.

La syntaxe de l’URI et des transformations est similaire à celle des signatures numériques XML. Toutefois, dans les signatures numériques XML, le traitement de génération et de validation commencent par les mêmes données sources et effectuent cette transformation dans le même ordre. Dans le chiffrement XML, l’application de déchiffrement a uniquement les données chiffrées et les transformations spécifiées. Les transformations sont énumérées dans l’ordre nécessaire pour obtenir les données chiffrées.

Note Par défaut, vous ne pouvez pas déréférer les références de chiffrement à partir de documents avec des sources inconnues, telles que les fichiers d’un site Web, car la DocumentEvidence propriété est null. Par exemple, lorsque vous tentez de déchiffrer un fichier contenant un élément qui fait référence à un <CipherReference> fichier sur le Web, un SecurityException est levée, même si la requête est effectuée par un assembly entièrement approuvé.

Si vous êtes sûr que les documents que vous déchiffrez peuvent être approuvés, vous pouvez modifier ce comportement pour les applications entièrement approuvées à l’aide du code suivant :

Evidence ev = new Evidence();
ev.AddHost (new Zone(SecurityZone.MyComputer));
EncryptedXml exml = new EncryptedXml(doc, ev);

Constructeurs

Nom Description
CipherReference()

Initialise une nouvelle instance de la classe CipherReference.

CipherReference(String, TransformChain)

Initialise une nouvelle instance de la CipherReference classe à l’aide de l’URI (Uniform Resource Identifier) spécifié et des informations de chaîne de transformation.

CipherReference(String)

Initialise une nouvelle instance de la CipherReference classe à l’aide de l’URI (Uniform Resource Identifier) spécifié.

Propriétés

Nom Description
CacheValid

Obtient une valeur qui indique si le cache est valide.

(Hérité de EncryptedReference)
ReferenceType

Obtient ou définit un type de référence.

(Hérité de EncryptedReference)
TransformChain

Obtient ou définit la chaîne de transformation d’un EncryptedReference objet.

(Hérité de EncryptedReference)
Uri

Obtient ou définit l’URI (Uniform Resource Identifier) d’un EncryptedReference objet.

(Hérité de EncryptedReference)

Méthodes

Nom Description
AddTransform(Transform)

Ajoute un Transform objet à la chaîne de transformation actuelle d’un EncryptedReference objet.

(Hérité de EncryptedReference)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
GetXml()

Retourne la représentation XML d’un CipherReference objet.

LoadXml(XmlElement)

Charge les informations XML dans l’élément dans le <CipherReference> chiffrement XML.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à