CipherReference クラスとは? わかりやすく解説

CipherReference クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

XML 暗号化<CipherReference> 要素表します。このクラス継承できません。

名前空間: System.Security.Cryptography.Xml
アセンブリ: System.Security (system.security.dll 内)
構文構文

Public NotInheritable Class
 CipherReference
    Inherits EncryptedReference
Dim instance As CipherReference
public sealed class CipherReference : EncryptedReference
public ref class CipherReference sealed : public
 EncryptedReference
public final class CipherReference extends
 EncryptedReference
public final class CipherReference extends
 EncryptedReference
解説解説

このクラスは、XML 暗号化<CipherReference> 要素表します。このクラスは、暗号化されたデータ生成元ソース識別します。

<CipherReference> によって参照される実際暗号化されたデータは、次のプロセスによって取得されます。<CipherReference> URI プロパティは、逆参照される URI (Uniform Resource Identifier) を格納します<CipherReference> 要素変換チェーン格納される場合URI を逆参照した結果データ指定に従って変換されて、暗号化されたデータ生成されます。たとえば、暗号化されたデータXML ドキュメント内で base64エンコードされている場合変換では、暗号化されたデータ抽出するために、XPath 式に続けて base64 でのデコード指定します

URI および変換構文は、XML デジタル署名構文似てます。ただし、XML デジタル署名では、生成プロセス検証プロセスどちらも同じソース データ開始され、同じ順序変換実行しますXML 暗号化では、復号化アプリケーションは、暗号化されたデータ指定され変換を持つだけです。これらの変換は、暗号化されたデータ取得するために必要な順序列挙されます。

メモ   既定では、Web サイトからのファイルなどの、ソース不明なドキュメントから暗号参照を逆参照することはできません。これは、DocumentEvidence プロパティnull だからです。たとえば、Web 上のファイル参照する <CipherReference> 要素含んでいるファイル復号化ようとすると、完全に信頼されアセンブリからその要求出した場合であっても SecurityException がスローさます。

復号化ようとしているドキュメント信頼できることが確実にわかっている場合は、次のコード使用して、完全に信頼されアプリケーション動作変更できます

        Evidence ev = new Evidence();
        ev.AddHost (new Zone(SecurityZone.MyComputer));
        EncryptedXml exml = new EncryptedXml(doc, ev);
使用例使用例

CipherReference新しインスタンス作成するコード例次に示します

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. It demonstrates the use of CipherReference.
Module Module1

    Sub Main()
        ' Create a URI string.
        Dim uri As String
 = "http://www.woodgrovebank.com/document.xml"
        ' Create a Base64 transform. The input content retrieved from
 the
        ' URI should be Base64-decoded before other processing.
        Dim base64 As Transform = New
 XmlDsigBase64Transform
        Dim tc As New TransformChain
        tc.Add(base64)
        ' Create <CipherReference> information.
        Dim reference As CipherReference =
 New CipherReference(uri, tc)

        ' Create a new CipherData object.
        ' Note that you cannot assign both a CipherReference and a CipherValue
        ' to a CipherData object.
        Dim cd As CipherData = New
 CipherData(Reference)

        ' 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 Module
using System;
using System.Security.Cryptography.Xml;
using System.Xml;
using System.IO;

/// This sample used the EncryptedData class to create an encrypted
 data element
/// and write it to an XML file. It demonstrates the use of CipherReference.
namespace EncryptedDataSample
{
    class Sample1
    {
        [STAThread]
        static void Main(string[]
 args)
        {
            //Create a URI string.
            String uri = "http://www.woodgrovebank.com/document.xml";
            // Create a Base64 transform. The input content retrieved
 from the
            // URI should be Base64-decoded before other processing.
            Transform base64 = new XmlDsigBase64Transform();
            //Create a transform chain and add the transform to it.
            TransformChain tc = new TransformChain();
            tc.Add(base64);
            //Create <CipherReference> information.
            CipherReference reference = new CipherReference(uri,
 tc);

            // Create a new CipherData object using the CipherReference
 information.
            // Note that you cannot assign both a CipherReference and
 a CipherValue
            // to a CipherData object.
            CipherData cd = new CipherData(reference);

            // 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.
            try
            {
                string path = @"c:\test\MyTest.xml";

                File.WriteAllText(path, ed.GetXml().OuterXml);
            }
            catch (IOException e)
            {
                Console.WriteLine("File IO error. {0}", e);
            }

        }
    }
}
#using <System.Xml.dll>
#using <System.Security.dll>
#using <System.dll>

using namespace System;
using namespace System::Security::Cryptography::Xml;
using namespace System::Xml;
using namespace System::IO;

/// This sample used the EncryptedData class to create an encrypted
 data element
/// and write it to an XML file. It demonstrates the use of CipherReference.

[STAThread]
int main()
{
   
   //Create a URI string.
   String^ uri = "http://www.woodgrovebank.com/document.xml";
   
   // Create a Base64 transform. The input content retrieved from the
   // URI should be Base64-decoded before other processing.
   Transform^ base64 = gcnew XmlDsigBase64Transform;
   
   //Create a transform chain and add the transform to it.
   TransformChain^ tc = gcnew TransformChain;
   tc->Add( base64 );
   
   //Create <CipherReference> information.
   CipherReference ^ reference = gcnew CipherReference( uri,tc );
   
   // Create a new CipherData object using the CipherReference information.
   // Note that you cannot assign both a CipherReference and a CipherValue
   // to a CipherData object.
   CipherData ^ cd = gcnew CipherData( reference );
   
   // Create a new EncryptedData object.
   EncryptedData^ ed = gcnew EncryptedData;
   
   //Add an encryption method to the object.
   ed->Id = "ED";
   ed->EncryptionMethod = gcnew EncryptionMethod( "http://www.w3.org/2001/04/xmlenc#aes128-cbc"
 );
   ed->CipherData = cd;
   
   //Add key information to the object.
   KeyInfo^ ki = gcnew KeyInfo;
   ki->AddClause( gcnew 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 = gcnew XmlDocument;
   XmlElement^ encryptionPropertyElement = dynamic_cast<XmlElement^>(doc->CreateElement(
 "EncryptionProperty", EncryptedXml::XmlEncNamespaceUrl ));
   EncryptionProperty ^ ep = gcnew EncryptionProperty( encryptionPropertyElement
 );
   ed->AddProperty( ep );
   
   // Output the resulting XML information into a file.
   try
   {
      String^ path = "c:\\test\\MyTest.xml";
      File::WriteAllText( path, ed->GetXml()->OuterXml );
   }
   catch ( IOException^ e ) 
   {
      Console::WriteLine( "File IO error. {0}", e );
   }

}

package EncryptedDataSample;

import System.*;
import System.Security.Cryptography.Xml.*;
import System.Xml.*;
import System.IO.*;

/// This sample used the EncryptedData class to create an encrypted
 data element
/// and write it to an XML file. It demonstrates the use of CipherReference.
class Sample1
{
    /** @attribute STAThread()
     */
    public static void main(String[]
 args)
    {
        //Create a URI string.
        String uri = "http://www.woodgrovebank.com/document.xml";
        // Create a Base64 transform. The input content retrieved from
 the
        // URI should be Base64-decoded before other processing.
        Transform base64 = new XmlDsigBase64Transform();
        //Create a transform chain and add the transform to it.
        TransformChain tc = new TransformChain();
        tc.Add(base64);
        //Create <CipherReference> information.
        CipherReference reference = new CipherReference(uri, tc);
        // Create a new CipherData object using the CipherReference
 information.
        // Note that you cannot assign both a CipherReference and a
 CipherValue
        // to a CipherData object.
        CipherData cd = new CipherData(reference);
        // Create a new EncryptedData object.
        EncryptedData ed = new EncryptedData();
        //Add an encryption method to the object.
        ed.set_Id("ED");
        ed.set_EncryptionMethod(new EncryptionMethod(
            "http://www.w3.org/2001/04/xmlenc#aes128-cbc"));
        ed.set_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.set_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.
        try {
            String path = "c:\\test\\MyTest.xml";

            File.WriteAllText(path, ed.GetXml().get_OuterXml());
        }
        catch (IOException e) {
            Console.WriteLine("File IO error. {0}", e);
        }
    } //main
} //Sample1
継承階層継承階層
System.Object
   System.Security.Cryptography.Xml.EncryptedReference
    System.Security.Cryptography.Xml.CipherReference
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CipherReference メンバ
System.Security.Cryptography.Xml 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「CipherReference クラス」の関連用語

CipherReference クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CipherReference クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS