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


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;
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> элемента в кодировке Base64 или предоставить ссылку на внешнее расположение, содержащее зашифрованные данные с помощью <CipherReference> элемента.

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

Замечание

Объект CipherData может иметь либо свойство, либо CipherReferenceCipherValue свойство, но не оба. Вызывается, 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-данные из XmlElementCipherData объекта в объект.

MemberwiseClone()

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

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

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

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

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