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 |
Получает или задает элемент |
CipherValue |
Получает или задает элемент |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
GetXml() |
Получает XML-значения для объекта CipherData. |
LoadXml(XmlElement) |
Загружает XML-данные из объекта XmlElement в объект CipherData. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |