Поделиться через


CipherData Класс

Определение

Представляет элемент <CipherData> в XML-шифровании. Этот класс не наследуется.

public ref class CipherData sealed
public sealed class CipherData
type CipherData = class
Public NotInheritable Class CipherData
Наследование
CipherData

Примеры

В следующем примере кода класс используется EncryptedData для создания <EncryptedData> элемента, содержащего <CipherData> элемент , а затем записывает XML-файл в XML-файл.

#using <System.Xml.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::Xml;
using namespace System::IO;

/// This sample used the EncryptedData class to create a EncryptedData element
/// and write it to an XML file.
int main()
{
    // Create a new CipherData object.
    CipherData^ cipher = gcnew CipherData();
    // Assign a byte array to be the CipherValue. This is a
    // byte array representing encrypted data.
    cipher->CipherValue = gcnew array<Byte>(8);
    // Create a new EncryptedData object.
    EncryptedData^ encryptionRoot = gcnew EncryptedData();
    //Add an encryption method to the object.
    encryptionRoot->Id = "ED";
    encryptionRoot->EncryptionMethod = gcnew EncryptionMethod(
        "http://www.w3.org/2001/04/xmlenc#aes128-cbc");
    encryptionRoot->CipherData = cipher;

    //Add key information to the object.
    KeyInfo^ keyDetails = gcnew KeyInfo();
    keyDetails->AddClause(gcnew KeyInfoRetrievalMethod("#EK",
        "http://www.w3.org/2001/04/xmlenc#EncryptedKey"));
    encryptionRoot->KeyInfo = keyDetails;

    // Create new XML document and put encrypted data into it.
    XmlDocument^ doc = gcnew XmlDocument();
    XmlElement^ encryptionPropertyElement =
        doc->CreateElement("EncryptionProperty", 
        EncryptedXml::XmlEncNamespaceUrl);
    EncryptionProperty^ property = gcnew EncryptionProperty(
        encryptionPropertyElement);
    encryptionRoot->AddProperty(property);

    // Output the resulting XML information into a file.
    String^ path = "test.xml";
    try
    {
        File::WriteAllText(path, encryptionRoot->GetXml()->OuterXml);
    }
    catch (IOException^ ex)
    {
        Console::WriteLine("There was an error writing to {0}", path);
        Console::WriteLine(ex->Message);
    }
    //Console.WriteLine(ed.GetXml().OuterXml);
}
using System;
using System.Security.Cryptography.Xml;
using System.Xml;
using System.IO;

/// This sample used the EncryptedData class to create a EncryptedData element
/// and write it to an XML file.
namespace EncryptedDataSample
{
    class Sample1
    {
        [STAThread]
        static void Main(string[] args)
        {
            // Create a new CipherData object.
            CipherData cd = new CipherData();
            // Assign a byte array to be the CipherValue. This is a byte array representing encrypted data.
            cd.CipherValue = new byte[8];
            // 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.
            string path = @"c:\test\MyTest.xml";
            File.WriteAllText(path,ed.GetXml().OuterXml);
            //Console.WriteLine(ed.GetXml().OuterXml);
        }
    }
}
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.
Module EncryptedDataSample1

    Sub Main()
        ' Create a new CipherData object.
        Dim cd As New CipherData
        ' Assign a byte array to the CipherValue.
        cd.CipherValue = New Byte(7) {}
        ' 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 Sub

End Module

Комментарии

Класс CipherData представляет <CipherData> элемент в xml-шифровании. Это обязательный элемент, предоставляющий зашифрованные данные. Он должен либо содержать зашифрованные данные в виде текста <CipherValue> элемента в кодировке <CipherReference> Base64, либо предоставлять ссылку на внешнее расположение, содержащее зашифрованные данные с помощью элемента .

Во многих случаях не требуется напрямую создавать новый экземпляр CipherData класса . Классы EncryptedXml, EncryptedDataи EncryptedKey создают экземпляры.

Примечание

Объект CipherData может иметь либо свойство, CipherReference либо CipherValue свойство, но не оба свойства. Если CryptographicException объекту CipherData назначены оба объекта, возникает исключение .

Конструкторы

CipherData()

Инициализирует новый экземпляр класса CipherData.

CipherData(Byte[])

Инициализирует новый экземпляр класса CipherData массивом байтов в виде значения свойства CipherValue.

CipherData(CipherReference)

Инициализирует новый экземпляр класса CipherData с помощью объекта CipherReference.

Свойства

CipherReference

Получает или задает элемент <CipherReference>.

CipherValue

Получает или задает элемент <CipherValue>.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetXml()

Получает XML-значения для объекта CipherData.

LoadXml(XmlElement)

Загружает XML-данные из объекта XmlElement в объект CipherData.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к