EncryptedXml.AddKeyNameMapping メソッド
アセンブリ: System.Security (system.security.dll 内)

Dim instance As EncryptedXml Dim keyName As String Dim keyObject As Object instance.AddKeyNameMapping(keyName, keyObject)
- keyName
keyObject にマップする名前。


AddKeyNameMapping メソッドを使用すると、共通キーまたは非対称キーを文字列名にマップできます。このメソッドは、keyName パラメータおよび keyObject パラメータの値を有効なキー名マップのテーブルに追加します。

共通キーを使用して、XML ドキュメントを暗号化するコード例を次に示します。この例では、暗号化された XML ドキュメントに対し、復号化処理が適切な復号化キーを検索するために使用するキー名を埋め込みます。
Imports System Imports System.Xml Imports System.Security.Cryptography Imports System.Security.Cryptography.Xml Module Program Sub Main(ByVal args() As String) ' Create an XmlDocument object. Dim xmlDoc As New XmlDocument() ' Load an XML file into the XmlDocument object. Try xmlDoc.PreserveWhitespace = True xmlDoc.Load("test.xml") Catch e As Exception Console.WriteLine(e.Message) End Try ' Create a new TripleDES key. Dim tDESkey As New TripleDESCryptoServiceProvider() Try ' Encrypt the "creditcard" element. Encrypt(xmlDoc, "creditcard", tDESkey, "tDesKey") ' Display the encrypted XML to the console. Console.WriteLine("Encrypted XML:") Console.WriteLine() Console.WriteLine(xmlDoc.OuterXml) ' Decrypt the "creditcard" element. Decrypt(xmlDoc, tDESkey, "tDesKey") ' Display the encrypted XML to the console. Console.WriteLine() Console.WriteLine("Decrypted XML:") Console.WriteLine() Console.WriteLine(xmlDoc.OuterXml) Catch e As Exception Console.WriteLine(e.Message) Finally ' Clear the TripleDES key. tDESkey.Clear() End Try End Sub 'Main Sub Encrypt(ByVal Doc As XmlDocument, ByVal ElementToEncrypt As String, ByVal Alg As SymmetricAlgorithm, ByVal KeyName As String) ' Check the arguments. If Doc Is Nothing Then Throw New ArgumentNullException("Doc") End If If ElementToEncrypt Is Nothing Then Throw New ArgumentNullException("ElementToEncrypt") End If If Alg Is Nothing Then Throw New ArgumentNullException("Alg") End If ''''''''''''''''''''''''''''''''''''''''''''''''''' ' Find the specified element in the XmlDocument ' object and create a new XmlElemnt object. ''''''''''''''''''''''''''''''''''''''''''''''''''' Dim elementEncrypt As XmlElement = Doc.GetElementsByTagName(ElementToEncrypt)(0) ' Throw an XmlException if the element was not found. If ElementToEncrypt Is Nothing Then Throw New XmlException("The specified element was not found") End If ''''''''''''''''''''''''''''''''''''''''''''''''''' ' Create a new instance of the EncryptedXml class ' and use it to encrypt the XmlElement with the ' symmetric key. ''''''''''''''''''''''''''''''''''''''''''''''''''' Dim eXml As New EncryptedXml() ' Add the key mapping. eXml.AddKeyNameMapping(KeyName, Alg) ' Encrypt the element. Dim edElement As EncryptedData = eXml.Encrypt(elementEncrypt, KeyName) ''''''''''''''''''''''''''''''''''''''''''''''''''' ' Replace the element from the original XmlDocument ' object with the EncryptedData element. ''''''''''''''''''''''''''''''''''''''''''''''''''' EncryptedXml.ReplaceElement(elementEncrypt, edElement, False) End Sub 'Encrypt Sub Decrypt(ByVal Doc As XmlDocument, ByVal Alg As SymmetricAlgorithm, ByVal KeyName As String) ' Check the arguments. If Doc Is Nothing Then Throw New ArgumentNullException("Doc") End If If Alg Is Nothing Then Throw New ArgumentNullException("Alg") End If If KeyName Is Nothing Then Throw New ArgumentNullException("KeyName") End If ' Create a new EncryptedXml object. Dim exml As New EncryptedXml(Doc) ' Add the key name mapping. exml.AddKeyNameMapping(KeyName, Alg) ' Decrypt the XML document. exml.DecryptDocument() End Sub End Module
using System; using System.Xml; using System.Security.Cryptography; using System.Security.Cryptography.Xml; class Program { static void Main(string[] args) { // Create an XmlDocument object. XmlDocument xmlDoc = new XmlDocument(); // Load an XML file into the XmlDocument object. try { xmlDoc.PreserveWhitespace = true; xmlDoc.Load("test.xml"); } catch (Exception e) { Console.WriteLine(e.Message); } // Create a new TripleDES key. TripleDESCryptoServiceProvider tDESkey = new TripleDESCryptoServiceProvider(); try { // Encrypt the "creditcard" element. Encrypt(xmlDoc, "creditcard", tDESkey, "tDesKey"); // Display the encrypted XML to the console. Console.WriteLine("Encrypted XML:"); Console.WriteLine(); Console.WriteLine(xmlDoc.OuterXml); // Decrypt the "creditcard" element. Decrypt(xmlDoc, tDESkey, "tDesKey"); // Display the encrypted XML to the console. Console.WriteLine(); Console.WriteLine("Decrypted XML:"); Console.WriteLine(); Console.WriteLine(xmlDoc.OuterXml); } catch (Exception e) { Console.WriteLine(e.Message); } finally { // Clear the TripleDES key. tDESkey.Clear(); } } public static void Encrypt(XmlDocument Doc, string ElementToEncrypt, SymmetricAlgorithm Alg, string KeyName) { // Check the arguments. if (Doc == null) throw new ArgumentNullException("Doc"); if (ElementToEncrypt == null) throw new ArgumentNullException("ElementToEncrypt"); if (Alg == null) throw new ArgumentNullException("Alg"); //////////////////////////////////////////////// // Find the specified element in the XmlDocument // object and create a new XmlElemnt object. //////////////////////////////////////////////// XmlElement elementToEncrypt = Doc.GetElementsByTagName(ElementToEncrypt)[0] as XmlElement; // Throw an XmlException if the element was not found. if (elementToEncrypt == null) { throw new XmlException("The specified element was not found"); } ////////////////////////////////////////////////// // Create a new instance of the EncryptedXml class // and use it to encrypt the XmlElement with the // symmetric key. ////////////////////////////////////////////////// EncryptedXml eXml = new EncryptedXml(); // Add the key mapping. eXml.AddKeyNameMapping(KeyName, Alg); // Encrypt the element. EncryptedData edElement = eXml.Encrypt(elementToEncrypt, KeyName); //////////////////////////////////////////////////// // Replace the element from the original XmlDocument // object with the EncryptedData element. //////////////////////////////////////////////////// EncryptedXml.ReplaceElement(elementToEncrypt, edElement, false); } public static void Decrypt(XmlDocument Doc, SymmetricAlgorithm Alg, string KeyName) { // Check the arguments. if (Doc == null) throw new ArgumentNullException("Doc"); if (Alg == null) throw new ArgumentNullException("Alg"); if (KeyName == null) throw new ArgumentNullException("KeyName"); // Create a new EncryptedXml object. EncryptedXml exml = new EncryptedXml(Doc); // Add the key name mapping. exml.AddKeyNameMapping(KeyName, Alg); // Decrypt the XML document. exml.DecryptDocument(); } }
#using <System.Security.dll> #using <System.dll> #using <System.Xml.dll> using namespace System; using namespace System::Xml; using namespace System::Security::Cryptography; using namespace System::Security::Cryptography::Xml; static void Encrypt( XmlDocument^ Doc, String^ ElementToEncrypt, SymmetricAlgorithm^ Alg, String^ KeyName ) { // Check the arguments. if ( Doc == nullptr ) throw gcnew ArgumentNullException( L"Doc" ); if ( ElementToEncrypt == nullptr ) throw gcnew ArgumentNullException( L"ElementToEncrypt" ); if ( Alg == nullptr ) throw gcnew ArgumentNullException( L"Alg" ); //////////////////////////////////////////////// // Find the specified element in the XmlDocument // object and create a new XmlElemnt object. //////////////////////////////////////////////// XmlElement^ elementToEncrypt = dynamic_cast<XmlElement^>(Doc->GetElementsByTagName( ElementToEncrypt )->Item( 0 )); // Throw an XmlException if the element was not found. if ( elementToEncrypt == nullptr ) { throw gcnew XmlException( L"The specified element was not found" ); } ////////////////////////////////////////////////// // Create a new instance of the EncryptedXml class // and use it to encrypt the XmlElement with the // symmetric key. ////////////////////////////////////////////////// EncryptedXml^ eXml = gcnew EncryptedXml; // Add the key mapping. eXml->AddKeyNameMapping( KeyName, Alg ); // Encrypt the element. EncryptedData^ edElement = eXml->Encrypt( elementToEncrypt, KeyName ); //////////////////////////////////////////////////// // Replace the element from the original XmlDocument // object with the EncryptedData element. //////////////////////////////////////////////////// EncryptedXml::ReplaceElement( elementToEncrypt, edElement, false ); } static void Decrypt( XmlDocument^ Doc, SymmetricAlgorithm^ Alg, String^ KeyName ) { // Check the arguments. if ( Doc == nullptr ) throw gcnew ArgumentNullException( L"Doc" ); if ( Alg == nullptr ) throw gcnew ArgumentNullException( L"Alg" ); if ( KeyName == nullptr ) throw gcnew ArgumentNullException( L"KeyName" ); // Create a new EncryptedXml object. EncryptedXml^ exml = gcnew EncryptedXml( Doc ); // Add the key name mapping. exml->AddKeyNameMapping( KeyName, Alg ); // Decrypt the XML document. exml->DecryptDocument(); } int main() { // Create an XmlDocument object. XmlDocument^ xmlDoc = gcnew XmlDocument; // Load an XML file into the XmlDocument object. try { xmlDoc->PreserveWhitespace = true; xmlDoc->Load( L"test.xml" ); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } // Create a new TripleDES key. TripleDESCryptoServiceProvider^ tDESkey = gcnew TripleDESCryptoServiceProvider; try { // Encrypt the "creditcard" element. Encrypt( xmlDoc, L"creditcard", tDESkey, L"tDesKey" ); // Display the encrypted XML to the console. Console::WriteLine( L"Encrypted XML:" ); Console::WriteLine(); Console::WriteLine( xmlDoc->OuterXml ); // Decrypt the "creditcard" element. Decrypt( xmlDoc, tDESkey, L"tDesKey" ); // Display the encrypted XML to the console. Console::WriteLine(); Console::WriteLine( L"Decrypted XML:" ); Console::WriteLine(); Console::WriteLine( xmlDoc->OuterXml ); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } finally { // Clear the TripleDES key. tDESkey->Clear(); } }
import System.*; import System.Xml.*; import System.Security.Cryptography.*; import System.Security.Cryptography.Xml.*; class Program { public static void main(String[] args) { // Create an XmlDocument object. XmlDocument xmlDoc = new XmlDocument(); // Load an XML file into the XmlDocument object. try { xmlDoc.set_PreserveWhitespace(true); xmlDoc.Load("test.xml"); } catch (System.Exception e) { Console.WriteLine(e.get_Message()); } // Create a new TripleDES key. TripleDESCryptoServiceProvider tDESkey = new TripleDESCryptoServiceProvider(); try { // Encrypt the "creditcard" element. Encrypt(xmlDoc, "creditcard", tDESkey, "tDesKey"); // Display the encrypted XML to the console. Console.WriteLine("Encrypted XML:"); Console.WriteLine(); Console.WriteLine(xmlDoc.get_OuterXml()); // Decrypt the "creditcard" element. Decrypt(xmlDoc, tDESkey, "tDesKey"); // Display the encrypted XML to the console. Console.WriteLine(); Console.WriteLine("Decrypted XML:"); Console.WriteLine(); Console.WriteLine(xmlDoc.get_OuterXml()); } catch (System.Exception e) { Console.WriteLine(e.get_Message()); } finally { // Clear the TripleDES key. tDESkey.Clear(); } } //main public static void Encrypt(XmlDocument doc, String elementToEncrypt, SymmetricAlgorithm alg, String keyName) throws XmlException { // Check the arguments. if (doc == null) { throw new ArgumentNullException("doc"); } if (elementToEncrypt == null) { throw new ArgumentNullException("elementToEncrypt"); } if (alg == null) { throw new ArgumentNullException("alg"); } //////////////////////////////////////////////// // Find the specified element in the XmlDocument // object and create a new XmlElemnt object. //////////////////////////////////////////////// XmlElement elementToEncrypt1 = (XmlElement)doc.GetElementsByTagName( elementToEncrypt).get_ItemOf(0); // Throw an XmlException if the element was not found. if (elementToEncrypt1 == null) { throw new XmlException("The specified element was not found"); } ////////////////////////////////////////////////// // Create a new instance of the EncryptedXml class // and use it to encrypt the XmlElement with the // symmetric key. ////////////////////////////////////////////////// EncryptedXml eXml = new EncryptedXml(); // Add the key mapping. eXml.AddKeyNameMapping(keyName, alg); // Encrypt the element. EncryptedData edElement = eXml.Encrypt(elementToEncrypt1, keyName); //////////////////////////////////////////////////// // Replace the element from the original XmlDocument // object with the EncryptedData element. //////////////////////////////////////////////////// EncryptedXml.ReplaceElement(elementToEncrypt1, edElement, false); } //Encrypt public static void Decrypt(XmlDocument doc, SymmetricAlgorithm alg, String keyName) { // Check the arguments. if (doc == null) { throw new ArgumentNullException("doc"); } if (alg == null) { throw new ArgumentNullException("Alg"); } if (keyName == null) { throw new ArgumentNullException("keyName"); } // Create a new EncryptedXml object. EncryptedXml eXml = new EncryptedXml(doc); // Add the key name mapping. eXml.AddKeyNameMapping(keyName, alg); // Decrypt the XML document. eXml.DecryptDocument(); } //Decrypt } //Program

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- EncryptedXml.AddKeyNameMapping メソッドのページへのリンク