Share via


CipherData 类

定义

表示 XML 加密中的 <CipherData> 元素。 此类不能被继承。

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 加密中的 元素。 它是提供加密数据的必需元素。 它必须包含作为元素的 base64 编码文本的 <CipherValue> 加密数据,或者使用 元素提供对包含加密数据的外部位置的 <CipherReference> 引用。

在许多情况下,无需直接创建 类的新实例 CipherData 。 、 EncryptedXmlEncryptedDataEncryptedKey 类会为你创建实例。

注意

对象 CipherData 可以具有 CipherReference 属性或 CipherValue 属性,但不能同时具有两者。 CryptographicException如果两者都分配给 对象CipherData,则会引发 。

构造函数

CipherData()

初始化 CipherData 类的新实例。

CipherData(Byte[])

通过使用一个字节数组作为 CipherValue 值来初始化 CipherData 类的新实例。

CipherData(CipherReference)

使用 CipherReference 对象初始化 CipherData 类的新实例。

属性

CipherReference

获取或设置 <CipherReference> 元素。

CipherValue

获取或设置 <CipherValue> 元素。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
GetXml()

获取 CipherData 对象的 XML 值。

LoadXml(XmlElement)

XmlElement 中的 XML 数据加载到 CipherData 对象中。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于