CipherData クラス
アセンブリ: System.Security (system.security.dll 内)


CipherData クラスは、XML 暗号化の <CipherData> 要素を表します。これは、暗号化されたデータを提供する必須の要素です。この要素は、暗号化されたデータを <CipherValue> 要素の base64 でエンコードされたテキストとして格納するか、または暗号化されたデータを格納する外部の場所の参照を <CipherReference> 要素を使用して提供する必要があります。
多くの場合は、CipherData クラスの新しいインスタンスを直接作成する必要はありません。EncryptedXml クラス、EncryptedData クラス、および EncryptedKey クラスによってインスタンスが作成されます。
![]() |
---|
CipherData オブジェクトは、CipherReference または CipherValue のどちらかのプロパティを持つことができます。両方のプロパティを持つことはできません。両方が CipherData オブジェクトに割り当てられている場合は、CryptographicException がスローされます。 |

EncryptedData クラスを使用して <CipherData> 要素を含む <EncryptedData> 要素を作成した後、XML を XML ファイルに書き込むコード例を次に示します。
Imports System 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 'Main 'Console.WriteLine(ed.GetXml().OuterXml); End Sub End Module
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); } } }
#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); }

System.Security.Cryptography.Xml.CipherData


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- CipherData クラスのページへのリンク