referenceとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 日本語表現辞典 > referenceの意味・解説 

reference

別表記:リファレンス

「reference」とは、言及・参照参考参考文献・出典のことを意味する表現

「reference」とは・「reference」の意味

「reference」とは、言及・参照参考参考文献・出典のほかに、照会推薦状推薦人保証人などの意味を持つ名詞である。複数形は「references」。英文履歴書にある「reference」は、自分推薦してくれる人の名前を書く項目である。一般的に新卒であれば学校の先生が、転職であれば現職以前勤務先の上司や同僚の名前を記載する

「reference」の発音・読み方

「reference」の発音記号は、réfərənsである。日本ではリファレンス」と読まれることが多くカタカナ語として馴染んでいる。「リフェレンス」のほうが、英語本来の読み方に近い。

「reference」の活用変化一覧

「reference」は、単語後ろに「s」が付く規則的な変化をする名詞である。単数形は「reference」、複数形は「references」となる。複数形になると意味が変わる名詞もあるが、「reference」は複数形になっても意味は同じである。

「reference」の語源・由来

「reference」の語源は、「refer言及する)」+「-ence(こと)」。「refer」は古期フランス語referer」に由来している。「-ence」はラテン語の「-ens現在分詞)」+「-ia抽象名詞)」が由来である。ちなみに、「reference」と「conference会議)」と同じ語源である。

「reference」を含む英熟語・英語表現

「for reference」とは


参考に」「参考のために」という意味である。

「for your reference」とは


参考に」「参考までに」という意味である。「for reference」と、意味は同じであるが、yourを入れることにより「あなたに参考になる」という意図加えた表現である。

「as a reference」とは


参考として」という意味である。

「reference to」とは


「~への参考」「~への参照」という意味を持つ。

「reference number」とは

参照番号」「整理番号」という意味である。チケット公文書申込書などに、取り間違いなどが生じないように、あらかじめ割り振ってある番号のことである。

「reference」を含むその他の用語の解説

「product reference」とは


参考商品」「参照商品」のことである。意味は同じであるが、単語順番が逆の「reference product」のほうが使われている。

「contact reference」とは


参照連絡先」「推薦人連絡先」「保証人連絡先」のことである。

「reference book」とは


参考図書」のことである。辞書百科事典のほか、参考書含まれる

「reference library」とは


参考図書館」のことである。館外での貸し出しをしない図書館のことである。「参考図書蔵書」という意味も持つ。

「reference mark」とは


参照符号」のことである。「参照符号」とは、「☆」「*」などをいう。「reference markではなく、単に「reference」でも同じ意味を持っている

「have reference to」とは


~に関連している」という意味である。「reference」自体には「関連」という意味はないが、haveを「reference」の前に持ってくることにより「~に関連している」という意味を持たせている。

「in reference to」とは


~に関して」という意味である。同じ意味で「with reference to」という表現もある。「reference」は、「reference」の後ろto付けると「~について」という意味にもなる。

「without reference to」とは


~に関係なく」という意味である。「reference」は単独では関係という意味は持たない

「reference」の使い方・例文

She failed to give references in her thesis.:彼女は論文出典載せるのを忘れてしまった。
For your reference, I've attached the document in this letter.:ご参考までに、こちらの手紙に資料添付しておきました
Please send your reference with your resume.:履歴書一緒に推薦状送ってください
I buy a reference book with a textbook.:私はテキスト一緒に参考書も買う。
Try to avoid any reference to her recent accident.:彼女の最近事故について言及しないようにしよう。
Your teacher will gladly write you a reference.:あなたの先生は、喜んであなたのために推薦状書きます
We make reference to a guidebook.:私たちガイドブック参考にする
He has a good reference from him former employer.:彼は前の雇い主から立派な推薦状もらっている。
He gave the bank as a reference.:彼は照会先としてその銀行をあげた。
I called his bank for a reference.:私は彼の信用度照会するため彼の銀行電話をかけた。

リファレンス

別表記:リフェレンスレファレンス
英語:reference

「リファレンス」とは、言及する参照する出典といった意味を持つ英単語referenceをカタカナ読みした単語情報持ち出してその情報源関わりを持つ過程のことを意味する表現

リファレンスの複数の意味

(1)物事言及すること、参照することなどを意味する語。
(2)参考文献参考資料意味する語。
(3)プログラミング分野における、開発の手順や関数変数参照文書意味する語。

リファレンス【reference】

読み方:りふぁれんす

《「レファレンス」とも》

参照照会照合。「—ブック

図書館参考調査係。


レファレンス【reference】

読み方:れふぁれんす

リファレンス


REF [reference]


リファレンス [reference]

基準になる信号データのこと。主に同期基準信号を言う。=REF

reference

【英】reference

何ものかを対象として、適宜参照されるために、その仕様操作方法などについて書かれ文書のことである。おおむね、より一般的な文献であるマニュアルよりも記述は一層詳細であるか、あるいは一覧などで項目が引きやすくなっている。


reference

【英】reference

プログラミング言語において定数関数などを参照すること。


reference

【英】reference

ハードウェアソフトウェアの互換性チェックするために使用する標準的なハードウエアのこと。こちらは特にリファレンス機と呼ぶ場合が多い。


Reference クラス

XML 署名<reference> 要素表します

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

public class Reference
public ref class Reference
public class Reference
public class Reference
解説解説
使用例使用例

Reference オブジェクト使用してXML エンベロープ シグネチャ生成および検証する方法次のコード例示します

'
' This example signs an XML file using an
' envelope signature. It then verifies the 
' signed XML.
'
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.Xml
Imports System.Text
Imports System.Xml



Public Class SignVerifyEnvelope
   
   Overloads Public Shared
 Sub Main(args() As [String])
      Try
         ' Generate a signing key.
         Dim Key As New
 RSACryptoServiceProvider()
         
         ' Create an XML file to sign.
         CreateSomeXml("Example.xml")
         Console.WriteLine("New XML file created.")
         
         ' Sign the XML that was just created and save it in a 
         ' new file.
         SignXmlFile("Example.xml", "SignedExample.xml",
 Key)
         Console.WriteLine("XML file signed.")
         
         ' Verify the signature of the signed XML.
         Console.WriteLine("Verifying signature...")
         Dim result As Boolean
 = VerifyXmlFile("SignedExample.xml")
         
         ' Display the results of the signature verification to \
         ' the console.
         If result Then
            Console.WriteLine("The XML signature is valid.")
         Else
            Console.WriteLine("The XML signature is not valid.")
         End If
      Catch e As CryptographicException
         Console.WriteLine(e.Message)
      End Try
   End Sub 
   
   
   ' Sign an XML file and save the signature in a new file.
   Public Shared Sub SignXmlFile(FileName
 As String, SignedFileName As
 String, Key As RSA)
      ' Create a new XML document.
      Dim doc As New XmlDocument()
      
      ' Format the document to ignore white spaces.
      doc.PreserveWhitespace = False
      
      ' Load the passed XML file using it's name.
      doc.Load(New XmlTextReader(FileName))
      
      ' Create a SignedXml object.
      Dim signedXml As New
 SignedXml(doc)
      
      ' Add the key to the SignedXml document. 
      signedXml.SigningKey = Key
      
      ' Create a reference to be signed.
      Dim reference As New
 Reference()
      reference.Uri = ""
      
      ' Add an enveloped transformation to the reference.
      Dim env As New XmlDsigEnvelopedSignatureTransform()
      reference.AddTransform(env)
      
      ' Add the reference to the SignedXml object.
      signedXml.AddReference(reference)
      
      
      ' Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
      Dim keyInfo As New
 KeyInfo()
      keyInfo.AddClause(New RSAKeyValue(CType(Key, RSA)))
      signedXml.KeyInfo = keyInfo
      
      ' Compute the signature.
      signedXml.ComputeSignature()
      
      ' Get the XML representation of the signature and save
      ' it to an XmlElement object.
      Dim xmlDigitalSignature As XmlElement
 = signedXml.GetXml()
      
      ' Append the element to the XML document.
      doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))
      
      
      If TypeOf doc.FirstChild Is
 XmlDeclaration Then
         doc.RemoveChild(doc.FirstChild)
      End If
      
      ' Save the signed XML document to a file specified
      ' using the passed string.
      Dim xmltw As New XmlTextWriter(SignedFileName,
 New UTF8Encoding(False))
      doc.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
   ' Verify the signature of an XML file and return the result.
   Public Shared Function
 VerifyXmlFile(Name As [String]) As [Boolean]
      ' Create a new XML document.
      Dim xmlDocument As New
 XmlDocument()
      
      ' Format using white spaces.
      xmlDocument.PreserveWhitespace = True
      
      ' Load the passed XML file into the document. 
      xmlDocument.Load(Name)
      
      ' Create a new SignedXml object and pass it
      ' the XML document class.
      Dim signedXml As New
 SignedXml(xmlDocument)
      
      ' Find the "Signature" node and create a new
      ' XmlNodeList object.
      Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")
      
      ' Load the signature node.
      signedXml.LoadXml(CType(nodeList(0), XmlElement))
      
      ' Check the signature and return the result.
      Return signedXml.CheckSignature()
   End Function 
   
   
   ' Create example data to sign.
   Public Shared Sub CreateSomeXml(FileName
 As String)
      ' Create a new XmlDocument object.
      Dim document As New
 XmlDocument()
      
      ' Create a new XmlNode object.
      Dim node As XmlNode = document.CreateNode(XmlNodeType.Element,
 "", "MyElement",
 "samples")
      
      ' Add some text to the node.
      node.InnerText = "Example text to be signed."
      
      ' Append the node to the document.
      document.AppendChild(node)
      
      ' Save the XML document to the file name specified.
      Dim xmltw As New XmlTextWriter(FileName,
 New UTF8Encoding(False))
      document.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
End Class
//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Xml;

public class SignVerifyEnvelope
{

    public static void Main(String[]
 args)
    {
        try
        {
            // Generate a signing key.
            RSACryptoServiceProvider Key = new RSACryptoServiceProvider();

            // Create an XML file to sign.
            CreateSomeXml("Example.xml");
            Console.WriteLine("New XML file created."); 

            // Sign the XML that was just created and save it in a 
            // new file.
            SignXmlFile("Example.xml", "SignedExample.xml", Key);
            Console.WriteLine("XML file signed."); 

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");
            bool result = VerifyXmlFile("SignedExample.xml");

            // Display the results of the signature verification to
 \
            // the console.
            if(result)
            {
                Console.WriteLine("The XML signature is valid.");
            }
            else
            {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch(CryptographicException e)
        {
            Console.WriteLine(e.Message);
        }
    }

    // Sign an XML file and save the signature in a new file.
    public static void SignXmlFile(string
 FileName, string SignedFileName, RSA Key)
    {
        // Create a new XML document.
        XmlDocument doc = new XmlDocument();

        // Format the document to ignore white spaces.
        doc.PreserveWhitespace = false;

        // Load the passed XML file using it's name.
        doc.Load(new XmlTextReader(FileName));

        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml(doc);

        // Add the key to the SignedXml document. 
        signedXml.SigningKey = Key;

        // Create a reference to be signed.
        Reference reference = new Reference();
        reference.Uri = "";

        // Add an enveloped transformation to the reference.
        XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
        reference.AddTransform(env);

        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        
        // Add an RSAKeyValue KeyInfo (optional; helps recipient find
 key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue((RSA)Key));
        signedXml.KeyInfo = keyInfo;

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Append the element to the XML document.
        doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, true));
        
        
        if (doc.FirstChild is XmlDeclaration)  
        {
            doc.RemoveChild(doc.FirstChild);
        }

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmltw = new XmlTextWriter(SignedFileName,
 new UTF8Encoding(false));
        doc.WriteTo(xmltw);
        xmltw.Close();
    }
    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyXmlFile(String
 Name)
    {
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Format using white spaces.
        xmlDocument.PreserveWhitespace = true;

        // Load the passed XML file into the document. 
        xmlDocument.Load(Name);

        // Create a new SignedXml object and pass it
        // the XML document class.
        SignedXml signedXml = new SignedXml(xmlDocument);

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml((XmlElement)nodeList[0]);

        // Check the signature and return the result.
        return signedXml.CheckSignature();
    }

    // Create example data to sign.
    public static void CreateSomeXml(string
 FileName)
    {
        // Create a new XmlDocument object.
        XmlDocument document = new XmlDocument();

        // Create a new XmlNode object.
        XmlNode  node = document.CreateNode(XmlNodeType.Element, "", "MyElement",
 "samples");
        
        // Add some text to the node.
        node.InnerText = "Example text to be signed.";

        // Append the node to the document.
        document.AppendChild(node);

        // Save the XML document to the file name specified.
        XmlTextWriter xmltw = new XmlTextWriter(FileName, new
 UTF8Encoding(false));
        document.WriteTo(xmltw);
        xmltw.Close();
    }
}
//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
#using <System.Security.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::Security::Cryptography::Xml;
using namespace System::Text;
using namespace System::Xml;

// Sign an XML file and save the signature in a new file.
void SignXmlFile( String^ FileName, String^ SignedFileName, RSA^
 Key )
{
   
   // Create a new XML document.
   XmlDocument^ doc = gcnew XmlDocument;
   
   // Format the document to ignore white spaces.
   doc->PreserveWhitespace = false;
   
   // Load the passed XML file using its name.
   doc->Load( gcnew XmlTextReader( FileName ) );
   
   // Create a SignedXml object.
   SignedXml^ signedXml = gcnew SignedXml( doc );
   
   // Add the key to the SignedXml document. 
   signedXml->SigningKey = Key;
   
   // Create a reference to be signed.
   Reference^ reference = gcnew Reference;
   reference->Uri = "";
   
   // Add an enveloped transformation to the reference.
   XmlDsigEnvelopedSignatureTransform^ env = gcnew XmlDsigEnvelopedSignatureTransform;
   reference->AddTransform( env );
   
   // Add the reference to the SignedXml object.
   signedXml->AddReference( reference );
   
   // Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
   KeyInfo^ keyInfo = gcnew KeyInfo;
   keyInfo->AddClause( gcnew RSAKeyValue( safe_cast<RSA^>(Key) ) );
   signedXml->KeyInfo = keyInfo;
   
   // Compute the signature.
   signedXml->ComputeSignature();
   
   // Get the XML representation of the signature and save
   // it to an XmlElement object.
   XmlElement^ xmlDigitalSignature = signedXml->GetXml();
   
   // Append the element to the XML document.
   doc->DocumentElement->AppendChild( doc->ImportNode( xmlDigitalSignature,
 true ) );
   if ( (doc->FirstChild)->GetType() == XmlDeclaration::typeid
 )
   {
      doc->RemoveChild( doc->FirstChild );
   }

   
   // Save the signed XML document to a file specified
   // using the passed string.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( SignedFileName,gcnew UTF8Encoding(
 false ) );
   doc->WriteTo( xmltw );
   xmltw->Close();
}


// Verify the signature of an XML file and return the result.
Boolean VerifyXmlFile( String^ Name )
{
   
   // Create a new XML document.
   XmlDocument^ xmlDocument = gcnew XmlDocument;
   
   // Format using white spaces.
   xmlDocument->PreserveWhitespace = true;
   
   // Load the passed XML file into the document. 
   xmlDocument->Load( Name );
   
   // Create a new SignedXml object and pass it
   // the XML document class.
   SignedXml^ signedXml = gcnew SignedXml( xmlDocument );
   
   // Find the "Signature" node and create a new
   // XmlNodeList object.
   XmlNodeList^ nodeList = xmlDocument->GetElementsByTagName( "Signature"
 );
   
   // Load the signature node.
   signedXml->LoadXml( safe_cast<XmlElement^>(nodeList->Item( 0 )) );
   
   // Check the signature and return the result.
   return signedXml->CheckSignature();
}


// Create example data to sign.
void CreateSomeXml( String^ FileName )
{
   
   // Create a new XmlDocument object.
   XmlDocument^ document = gcnew XmlDocument;
   
   // Create a new XmlNode object.
   XmlNode^ node = document->CreateNode( XmlNodeType::Element, "", "MyElement",
 "samples" );
   
   // Add some text to the node.
   node->InnerText = "Example text to be signed.";
   
   // Append the node to the document.
   document->AppendChild( node );
   
   // Save the XML document to the file name specified.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( FileName,gcnew UTF8Encoding( false
 ) );
   document->WriteTo( xmltw );
   xmltw->Close();
}

int main()
{
   try
   {
      
      // Generate a signing key.
      RSACryptoServiceProvider^ Key = gcnew RSACryptoServiceProvider;
      
      // Create an XML file to sign.
      CreateSomeXml( "Example.xml" );
      Console::WriteLine( "New XML file created." );
      
      // Sign the XML that was just created and save it in a 
      // new file.
      SignXmlFile( "Example.xml", "SignedExample.xml", Key );
      Console::WriteLine( "XML file signed." );
      
      // Verify the signature of the signed XML.
      Console::WriteLine( "Verifying signature..." );
      bool result = VerifyXmlFile( "SignedExample.xml"
 );
      
      // Display the results of the signature verification to
      // the console.
      if ( result )
      {
         Console::WriteLine( "The XML signature is valid." );
      }
      else
      {
         Console::WriteLine( "The XML signature is not valid." );
      }
   }
   catch ( CryptographicException^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
import System.*;
import System.Security.Cryptography.*;
import System.Security.Cryptography.X509Certificates.*;
import System.Security.Cryptography.Xml.*;
import System.Text.*;
import System.Xml.*;

public class SignVerifyEnvelope
{
    public static void main(String[]
 args)
    {
        try {
            // Generate a signing key.
            RSACryptoServiceProvider key = new RSACryptoServiceProvider();

            // Create an XML file to sign.
            CreateSomeXml("Example.xml");
            Console.WriteLine("New XML file created.");

            // Sign the XML that was just created and save it in a 
            // new file.
            SignXmlFile("Example.xml", "SignedExample.xml", key);
            Console.WriteLine("XML file signed.");

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");

            boolean result = VerifyXmlFile("SignedExample.xml").booleanValue();

            // Display the results of the signature verification to
 \
            // the console.
            if (result) {
                Console.WriteLine("The XML signature is valid.");
            }
            else {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch (CryptographicException e) {
            Console.WriteLine(e.get_Message());
        }
    } //main

    // Sign an XML file and save the signature in a new file.
    public static void SignXmlFile(String
 fileName, String signedFileName, 
        RSA key)
    {
        // Create a new XML document.
        XmlDocument doc = new XmlDocument();

        // Format the document to ignore white spaces.
        doc.set_PreserveWhitespace(false);

        // Load the passed XML file using it's name.
        doc.Load(new XmlTextReader(fileName));

        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml(doc);

        // Add the key to the SignedXml document. 
        signedXml.set_SigningKey(key);

        // Create a reference to be signed.
        Reference reference = new Reference();
        reference.set_Uri("");

        // Add a transformation to the reference.
        Transform trns = new XmlDsigC14NTransform();

        reference.AddTransform(trns);

        // Add an enveloped transformation to the reference.
        XmlDsigEnvelopedSignatureTransform env = 
            new XmlDsigEnvelopedSignatureTransform();
        reference.AddTransform(env);

        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient 
        // find key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue(((RSA)(key))));
        signedXml.set_KeyInfo(keyInfo);

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Append the element to the XML document.
        doc.get_DocumentElement().AppendChild(doc.ImportNode(
            xmlDigitalSignature, true));
        if (doc.get_FirstChild() instanceof XmlDeclaration) {
            doc.RemoveChild(doc.get_FirstChild());
        }

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmlTW = new XmlTextWriter(signedFileName,
 
            new UTF8Encoding(false));
        doc.WriteTo(xmlTW);
        xmlTW.Close();
    } //SignXmlFile   

    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyXmlFile(String
 name)
    {
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Format using white spaces.
        xmlDocument.set_PreserveWhitespace(true);

        // Load the passed XML file into the document. 
        xmlDocument.Load(name);

        // Create a new SignedXml object and pass it
        // the XML document class.
        SignedXml signedXml = new SignedXml(xmlDocument);

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml(((XmlElement)(nodeList.get_ItemOf(0))));

        // Check the signature and return the result.
        return new Boolean(signedXml.CheckSignature());
    } //VerifyXmlFile   

    // Create example data to sign.
    public static void CreateSomeXml(String
 fileName)
    {
        // Create a new XmlDocument object.
        XmlDocument document = new XmlDocument();

        // Create a new XmlNode object.
        XmlNode node = document.CreateNode(XmlNodeType.Element, "", 
            "MyElement", "samples");

        // Add some text to the node.
        node.set_InnerText("Example text to be signed.");

        // Append the node to the document.
        document.AppendChild(node);

        // Save the XML document to the file name specified.
        XmlTextWriter xmlTW = new XmlTextWriter(fileName, 
            new UTF8Encoding(false));
        document.WriteTo(xmlTW);
        xmlTW.Close();
    } //CreateSomeXml
} //SignVerifyEnvelope

Reference オブジェクト使用してXML デタッチ シグネチャ生成および検証する方法次のコード例示します

'
' This example signs a file specified by a URI 
' using a detached signature. It then verifies  
' the signed XML.
'
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.Text
Imports System.Xml


Class XMLDSIGDetached

   
   <STAThread()>  _
   Overloads Shared Sub
 Main(args() As String)
      ' The URI to sign.
      Dim resourceToSign As String
 = "http://www.microsoft.com"
      
      ' The name of the file to which to save the XML signature.
      Dim XmlFileName As String
 = "xmldsig.xml"
      
      Try
         
         ' Generate a signing key.
         Dim Key As New
 RSACryptoServiceProvider()
         
         Console.WriteLine("Signing: {0}", resourceToSign)
         
         ' Sign the detached resourceand save the signature in an XML
 file.
         SignDetachedResource(resourceToSign, XmlFileName, Key)
         
         Console.WriteLine("XML signature was succesfully computed
 and saved to {0}.", XmlFileName)
         
         ' Verify the signature of the signed XML.
         Console.WriteLine("Verifying signature...")
         
         'Verify the XML signature in the XML file.
         Dim result As Boolean
 = VerifyDetachedSignature(XmlFileName)
         
         ' Display the results of the signature verification to 
         ' the console.
         If result Then
            Console.WriteLine("The XML signature is valid.")
         Else
            Console.WriteLine("The XML signature is not valid.")
         End If
      Catch e As CryptographicException
         Console.WriteLine(e.Message)
      End Try 
   End Sub 
   
   
   ' Sign an XML file and save the signature in a new file.
   Public Shared Sub SignDetachedResource(URIString
 As String, XmlSigFileName As
 String, Key As RSA)
      ' Create a SignedXml object.
      Dim signedXml As New
 SignedXml()
      
      ' Assign the key to the SignedXml object.
      signedXml.SigningKey = Key
      
      ' Create a reference to be signed.
      Dim reference As New
 Reference()
      
      ' Add the passed URI to the reference object.
      reference.Uri = URIString
      
      ' Add the reference to the SignedXml object.
      signedXml.AddReference(reference)
      
      ' Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
      Dim keyInfo As New
 KeyInfo()
      keyInfo.AddClause(New RSAKeyValue(CType(Key, RSA)))
      signedXml.KeyInfo = keyInfo
      
      ' Compute the signature.
      signedXml.ComputeSignature()
      
      ' Get the XML representation of the signature and save
      ' it to an XmlElement object.
      Dim xmlDigitalSignature As XmlElement
 = signedXml.GetXml()
      
      ' Save the signed XML document to a file specified
      ' using the passed string.
      Dim xmltw As New XmlTextWriter(XmlSigFileName,
 New UTF8Encoding(False))
      xmlDigitalSignature.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
 
   ' Verify the signature of an XML file and return the result.
   Public Shared Function
 VerifyDetachedSignature(XmlSigFileName As String)
 As [Boolean]
      ' Create a new XML document.
      Dim xmlDocument As New
 XmlDocument()
      
      ' Load the passed XML file into the document.
      xmlDocument.Load(XmlSigFileName)
      
      ' Create a new SignedXMl object.
      Dim signedXml As New
 SignedXml()
      
      ' Find the "Signature" node and create a new
      ' XmlNodeList object.
      Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")
      
      ' Load the signature node.
      signedXml.LoadXml(CType(nodeList(0), XmlElement))
      
      ' Check the signature and return the result.
      Return signedXml.CheckSignature()
   End Function
End Class 
//
// This example signs a file specified by a URI 
// using a detached signature. It then verifies  
// the signed XML.
//

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Xml;



class XMLDSIGDetached
{
    
    [STAThread]
    static void Main(string[]
 args)
    {
    // The URI to sign.
        string resourceToSign = "http://www.microsoft.com";
        
        // The name of the file to which to save the XML signature.
        string XmlFileName = "xmldsig.xml";

        try
        {

            // Generate a signing key.
            RSACryptoServiceProvider Key = new RSACryptoServiceProvider();

            Console.WriteLine("Signing: {0}", resourceToSign);

            // Sign the detached resourceand save the signature in an
 XML file.
            SignDetachedResource(resourceToSign, XmlFileName, Key);

            Console.WriteLine("XML signature was succesfully computed and saved
 to {0}.", XmlFileName);

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");

            //Verify the XML signature in the XML file.
            bool result = VerifyDetachedSignature(XmlFileName);

            // Display the results of the signature verification to
 
            // the console.
            if(result)
            {
                Console.WriteLine("The XML signature is valid.");
            }
            else
            {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch(CryptographicException e)
        {
            Console.WriteLine(e.Message);

        }
        
    }

    // Sign an XML file and save the signature in a new file.
    public static void SignDetachedResource(string
 URIString, string XmlSigFileName, RSA Key)
    {
        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml();

        // Assign the key to the SignedXml object.
        signedXml.SigningKey = Key;

        // Create a reference to be signed.
        Reference reference = new Reference();

        // Add the passed URI to the reference object.
        reference.Uri = URIString;
        
        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient find
 key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue((RSA)Key));    
        signedXml.KeyInfo = keyInfo;

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmltw = new XmlTextWriter(XmlSigFileName,
 new UTF8Encoding(false));
        xmlDigitalSignature.WriteTo(xmltw);
        xmltw.Close();
    }
    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyDetachedSignature(string
 XmlSigFileName)
    {    
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Load the passed XML file into the document.
        xmlDocument.Load(XmlSigFileName);
    
        // Create a new SignedXMl object.
        SignedXml signedXml = new SignedXml();

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml((XmlElement)nodeList[0]);

        // Check the signature and return the result.
        return signedXml.CheckSignature();
    }
}
//
// This example signs a file specified by a URI 
// using a detached signature. It then verifies  
// the signed XML.
//
#using <System.Security.dll>
#using <System.Xml.dll>

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

// Sign an XML file and save the signature in a new file.
void SignDetachedResource( String^ URIString, String^ XmlSigFileName,
 RSA^ Key )
{
   
   // Create a SignedXml object.
   SignedXml^ signedXml = gcnew SignedXml;
   
   // Assign the key to the SignedXml object.
   signedXml->SigningKey = Key;
   
   // Create a reference to be signed.
   Reference^ reference = gcnew Reference;
   
   // Add the passed URI to the reference object.
   reference->Uri = URIString;

   // Add the reference to the SignedXml object.
   signedXml->AddReference( reference );
   
   // Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
   KeyInfo^ keyInfo = gcnew KeyInfo;
   keyInfo->AddClause( gcnew RSAKeyValue( safe_cast<RSA^>(Key) ) );
   signedXml->KeyInfo = keyInfo;
   
   // Compute the signature.
   signedXml->ComputeSignature();
   
   // Get the XML representation of the signature and save
   // it to an XmlElement object.
   XmlElement^ xmlDigitalSignature = signedXml->GetXml();
   
   // Save the signed XML document to a file specified
   // using the passed string.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( XmlSigFileName,gcnew UTF8Encoding(
 false ) );
   xmlDigitalSignature->WriteTo( xmltw );
   xmltw->Close();
}


// Verify the signature of an XML file and return the result.
Boolean VerifyDetachedSignature( String^ XmlSigFileName )
{
   
   // Create a new XML document.
   XmlDocument^ xmlDocument = gcnew XmlDocument;
   
   // Load the passed XML file into the document.
   xmlDocument->Load( XmlSigFileName );
   
   // Create a new SignedXMl object.
   SignedXml^ signedXml = gcnew SignedXml;
   
   // Find the "Signature" node and create a new
   // XmlNodeList object.
   XmlNodeList^ nodeList = xmlDocument->GetElementsByTagName( "Signature"
 );
   
   // Load the signature node.
   signedXml->LoadXml( safe_cast<XmlElement^>(nodeList->Item( 0 )) );
   
   // Check the signature and return the result.
   return signedXml->CheckSignature();
}



[STAThread]
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   
   // The URI to sign.
   String^ resourceToSign = "http://www.microsoft.com";
   
   // The name of the file to which to save the XML signature.
   String^ XmlFileName = "xmldsig.xml";
   try
   {
      
      // Generate a signing key.
      RSACryptoServiceProvider^ Key = gcnew RSACryptoServiceProvider;
      Console::WriteLine( "Signing: {0}", resourceToSign );
      
      // Sign the detached resourceand save the signature in an XML
 file.
      SignDetachedResource( resourceToSign, XmlFileName, Key );
      Console::WriteLine( "XML signature was succesfully computed and saved
 to {0}.", XmlFileName );
      
      // Verify the signature of the signed XML.
      Console::WriteLine( "Verifying signature..." );
      
      //Verify the XML signature in the XML file.
      bool result = VerifyDetachedSignature( XmlFileName );
      
      // Display the results of the signature verification to 
      // the console.
      if ( result )
      {
         Console::WriteLine( "The XML signature is valid." );
      }
      else
      {
         Console::WriteLine( "The XML signature is not valid." );
      }
   }
   catch ( CryptographicException^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

//
// This example signs a file specified by a URI 
// using a detached signature. It then verifies  
// the signed XML.
//
import System .* ;
import System.Security.Cryptography .* ;
import System.Security.Cryptography.Xml .* ;
import System.Text .* ;
import System.Xml .* ;

class XMLDSIGDetached
{
    /** @attribute STAThread()
     */
    public static void main(String[]
 args)
    {
        // The URI to sign.
        String resourceToSign = "http://www.microsoft.com";

        // The name of the file to which to save the XML signature.
        String xmlFileName = "xmldsig.xml";

        try {
            // Generate a signing key.
            RSACryptoServiceProvider key = new RSACryptoServiceProvider();

            Console.WriteLine("Signing: {0}", resourceToSign);

            // Sign the detached resourceand save the signature in an
 XML file.
            SignDetachedResource(resourceToSign, xmlFileName, key);
            Console.WriteLine("XML signature was succesfully computed "
 
                + "and saved to {0}.", xmlFileName);

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");

            //Verify the XML signature in the XML file.
            boolean result = VerifyDetachedSignature(xmlFileName).booleanValue();

            // Display the results of the signature verification to
 
            // the console.
            if (result) {
                Console.WriteLine("The XML signature is valid.");
            }
            else {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch (CryptographicException e) {
            Console.WriteLine(e.get_Message());
        }
    } //main

    // Sign an XML file and save the signature in a new file.
    public static void SignDetachedResource(String
 uriString, 
        String xmlSigFileName, RSA key)
    {
        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml();

        // Assign the key to the SignedXml object.
        signedXml.set_SigningKey(key);

        // Create a reference to be signed.
        Reference reference = new Reference();

        // Add the passed URI to the reference object.
        reference.set_Uri(uriString);

        // Add a transformation if the URI is an XML file.
        if (uriString.EndsWith("xml")) {
            reference.AddTransform(new XmlDsigC14NTransform());
        }

        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient 
        // find key to validate).
        KeyInfo keyInfo = new KeyInfo();

        keyInfo.AddClause(new RSAKeyValue(((RSA)(key))));
        signedXml.set_KeyInfo(keyInfo);

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmlTW = new XmlTextWriter(xmlSigFileName,
 
            new UTF8Encoding(false));

        xmlDigitalSignature.WriteTo(xmlTW);
        xmlTW.Close();
    } //SignDetachedResource   

    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyDetachedSignature(String
 xmlSigFileName)
    {
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Load the passed XML file into the document.
        xmlDocument.Load(xmlSigFileName);

        // Create a new SignedXMl object.
        SignedXml signedXml = new SignedXml();

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml(((XmlElement)(nodeList.get_ItemOf(0))));

        // Check the signature and return the result.
        return new Boolean(signedXml.CheckSignature());
    } //VerifyDetachedSignature
} //XMLDSIGDetached
継承階層継承階層
System.Object
  System.Security.Cryptography.Xml.Reference
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Reference メンバ
System.Security.Cryptography.Xml 名前空間

Reference コンストラクタ ()

Reference クラス新しインスタンス既定プロパティ使用して初期化します。

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

使用例使用例

Reference オブジェクト使用してXML エンベロープ シグネチャ生成および検証する方法次のコード例示します

'
' This example signs an XML file using an
' envelope signature. It then verifies the 
' signed XML.
'
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Cryptography.Xml
Imports System.Text
Imports System.Xml



Public Class SignVerifyEnvelope
   
   Overloads Public Shared
 Sub Main(args() As [String])
      Try
         ' Generate a signing key.
         Dim Key As New
 RSACryptoServiceProvider()
         
         ' Create an XML file to sign.
         CreateSomeXml("Example.xml")
         Console.WriteLine("New XML file created.")
         
         ' Sign the XML that was just created and save it in a 
         ' new file.
         SignXmlFile("Example.xml", "SignedExample.xml",
 Key)
         Console.WriteLine("XML file signed.")
         
         ' Verify the signature of the signed XML.
         Console.WriteLine("Verifying signature...")
         Dim result As Boolean
 = VerifyXmlFile("SignedExample.xml")
         
         ' Display the results of the signature verification to \
         ' the console.
         If result Then
            Console.WriteLine("The XML signature is valid.")
         Else
            Console.WriteLine("The XML signature is not valid.")
         End If
      Catch e As CryptographicException
         Console.WriteLine(e.Message)
      End Try
   End Sub 
   
   
   ' Sign an XML file and save the signature in a new file.
   Public Shared Sub SignXmlFile(FileName
 As String, SignedFileName As
 String, Key As RSA)
      ' Create a new XML document.
      Dim doc As New XmlDocument()
      
      ' Format the document to ignore white spaces.
      doc.PreserveWhitespace = False
      
      ' Load the passed XML file using it's name.
      doc.Load(New XmlTextReader(FileName))
      
      ' Create a SignedXml object.
      Dim signedXml As New
 SignedXml(doc)
      
      ' Add the key to the SignedXml document. 
      signedXml.SigningKey = Key
      
      ' Create a reference to be signed.
      Dim reference As New
 Reference()
      reference.Uri = ""
      
      ' Add an enveloped transformation to the reference.
      Dim env As New XmlDsigEnvelopedSignatureTransform()
      reference.AddTransform(env)
      
      ' Add the reference to the SignedXml object.
      signedXml.AddReference(reference)
      
      
      ' Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
      Dim keyInfo As New
 KeyInfo()
      keyInfo.AddClause(New RSAKeyValue(CType(Key, RSA)))
      signedXml.KeyInfo = keyInfo
      
      ' Compute the signature.
      signedXml.ComputeSignature()
      
      ' Get the XML representation of the signature and save
      ' it to an XmlElement object.
      Dim xmlDigitalSignature As XmlElement
 = signedXml.GetXml()
      
      ' Append the element to the XML document.
      doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))
      
      
      If TypeOf doc.FirstChild Is
 XmlDeclaration Then
         doc.RemoveChild(doc.FirstChild)
      End If
      
      ' Save the signed XML document to a file specified
      ' using the passed string.
      Dim xmltw As New XmlTextWriter(SignedFileName,
 New UTF8Encoding(False))
      doc.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
   ' Verify the signature of an XML file and return the result.
   Public Shared Function
 VerifyXmlFile(Name As [String]) As [Boolean]
      ' Create a new XML document.
      Dim xmlDocument As New
 XmlDocument()
      
      ' Format using white spaces.
      xmlDocument.PreserveWhitespace = True
      
      ' Load the passed XML file into the document. 
      xmlDocument.Load(Name)
      
      ' Create a new SignedXml object and pass it
      ' the XML document class.
      Dim signedXml As New
 SignedXml(xmlDocument)
      
      ' Find the "Signature" node and create a new
      ' XmlNodeList object.
      Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")
      
      ' Load the signature node.
      signedXml.LoadXml(CType(nodeList(0), XmlElement))
      
      ' Check the signature and return the result.
      Return signedXml.CheckSignature()
   End Function 
   
   
   ' Create example data to sign.
   Public Shared Sub CreateSomeXml(FileName
 As String)
      ' Create a new XmlDocument object.
      Dim document As New
 XmlDocument()
      
      ' Create a new XmlNode object.
      Dim node As XmlNode = document.CreateNode(XmlNodeType.Element,
 "", "MyElement",
 "samples")
      
      ' Add some text to the node.
      node.InnerText = "Example text to be signed."
      
      ' Append the node to the document.
      document.AppendChild(node)
      
      ' Save the XML document to the file name specified.
      Dim xmltw As New XmlTextWriter(FileName,
 New UTF8Encoding(False))
      document.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
End Class
//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Xml;

public class SignVerifyEnvelope
{

    public static void Main(String[]
 args)
    {
        try
        {
            // Generate a signing key.
            RSACryptoServiceProvider Key = new RSACryptoServiceProvider();

            // Create an XML file to sign.
            CreateSomeXml("Example.xml");
            Console.WriteLine("New XML file created."); 

            // Sign the XML that was just created and save it in a 
            // new file.
            SignXmlFile("Example.xml", "SignedExample.xml", Key);
            Console.WriteLine("XML file signed."); 

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");
            bool result = VerifyXmlFile("SignedExample.xml");

            // Display the results of the signature verification to
 \
            // the console.
            if(result)
            {
                Console.WriteLine("The XML signature is valid.");
            }
            else
            {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch(CryptographicException e)
        {
            Console.WriteLine(e.Message);
        }
    }

    // Sign an XML file and save the signature in a new file.
    public static void SignXmlFile(string
 FileName, string SignedFileName, RSA Key)
    {
        // Create a new XML document.
        XmlDocument doc = new XmlDocument();

        // Format the document to ignore white spaces.
        doc.PreserveWhitespace = false;

        // Load the passed XML file using it's name.
        doc.Load(new XmlTextReader(FileName));

        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml(doc);

        // Add the key to the SignedXml document. 
        signedXml.SigningKey = Key;

        // Create a reference to be signed.
        Reference reference = new Reference();
        reference.Uri = "";

        // Add an enveloped transformation to the reference.
        XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
        reference.AddTransform(env);

        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        
        // Add an RSAKeyValue KeyInfo (optional; helps recipient find
 key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue((RSA)Key));
        signedXml.KeyInfo = keyInfo;

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Append the element to the XML document.
        doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, true));
        
        
        if (doc.FirstChild is XmlDeclaration)  
        {
            doc.RemoveChild(doc.FirstChild);
        }

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmltw = new XmlTextWriter(SignedFileName,
 new UTF8Encoding(false));
        doc.WriteTo(xmltw);
        xmltw.Close();
    }
    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyXmlFile(String
 Name)
    {
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Format using white spaces.
        xmlDocument.PreserveWhitespace = true;

        // Load the passed XML file into the document. 
        xmlDocument.Load(Name);

        // Create a new SignedXml object and pass it
        // the XML document class.
        SignedXml signedXml = new SignedXml(xmlDocument);

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml((XmlElement)nodeList[0]);

        // Check the signature and return the result.
        return signedXml.CheckSignature();
    }

    // Create example data to sign.
    public static void CreateSomeXml(string
 FileName)
    {
        // Create a new XmlDocument object.
        XmlDocument document = new XmlDocument();

        // Create a new XmlNode object.
        XmlNode  node = document.CreateNode(XmlNodeType.Element, "", "MyElement",
 "samples");
        
        // Add some text to the node.
        node.InnerText = "Example text to be signed.";

        // Append the node to the document.
        document.AppendChild(node);

        // Save the XML document to the file name specified.
        XmlTextWriter xmltw = new XmlTextWriter(FileName, new
 UTF8Encoding(false));
        document.WriteTo(xmltw);
        xmltw.Close();
    }
}
//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
#using <System.Security.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::Security::Cryptography::Xml;
using namespace System::Text;
using namespace System::Xml;

// Sign an XML file and save the signature in a new file.
void SignXmlFile( String^ FileName, String^ SignedFileName, RSA^
 Key )
{
   
   // Create a new XML document.
   XmlDocument^ doc = gcnew XmlDocument;
   
   // Format the document to ignore white spaces.
   doc->PreserveWhitespace = false;
   
   // Load the passed XML file using its name.
   doc->Load( gcnew XmlTextReader( FileName ) );
   
   // Create a SignedXml object.
   SignedXml^ signedXml = gcnew SignedXml( doc );
   
   // Add the key to the SignedXml document. 
   signedXml->SigningKey = Key;
   
   // Create a reference to be signed.
   Reference^ reference = gcnew Reference;
   reference->Uri = "";
   
   // Add an enveloped transformation to the reference.
   XmlDsigEnvelopedSignatureTransform^ env = gcnew XmlDsigEnvelopedSignatureTransform;
   reference->AddTransform( env );
   
   // Add the reference to the SignedXml object.
   signedXml->AddReference( reference );
   
   // Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
   KeyInfo^ keyInfo = gcnew KeyInfo;
   keyInfo->AddClause( gcnew RSAKeyValue( safe_cast<RSA^>(Key) ) );
   signedXml->KeyInfo = keyInfo;
   
   // Compute the signature.
   signedXml->ComputeSignature();
   
   // Get the XML representation of the signature and save
   // it to an XmlElement object.
   XmlElement^ xmlDigitalSignature = signedXml->GetXml();
   
   // Append the element to the XML document.
   doc->DocumentElement->AppendChild( doc->ImportNode( xmlDigitalSignature,
 true ) );
   if ( (doc->FirstChild)->GetType() == XmlDeclaration::typeid
 )
   {
      doc->RemoveChild( doc->FirstChild );
   }

   
   // Save the signed XML document to a file specified
   // using the passed string.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( SignedFileName,gcnew UTF8Encoding(
 false ) );
   doc->WriteTo( xmltw );
   xmltw->Close();
}


// Verify the signature of an XML file and return the result.
Boolean VerifyXmlFile( String^ Name )
{
   
   // Create a new XML document.
   XmlDocument^ xmlDocument = gcnew XmlDocument;
   
   // Format using white spaces.
   xmlDocument->PreserveWhitespace = true;
   
   // Load the passed XML file into the document. 
   xmlDocument->Load( Name );
   
   // Create a new SignedXml object and pass it
   // the XML document class.
   SignedXml^ signedXml = gcnew SignedXml( xmlDocument );
   
   // Find the "Signature" node and create a new
   // XmlNodeList object.
   XmlNodeList^ nodeList = xmlDocument->GetElementsByTagName( "Signature"
 );
   
   // Load the signature node.
   signedXml->LoadXml( safe_cast<XmlElement^>(nodeList->Item( 0 )) );
   
   // Check the signature and return the result.
   return signedXml->CheckSignature();
}


// Create example data to sign.
void CreateSomeXml( String^ FileName )
{
   
   // Create a new XmlDocument object.
   XmlDocument^ document = gcnew XmlDocument;
   
   // Create a new XmlNode object.
   XmlNode^ node = document->CreateNode( XmlNodeType::Element, "", "MyElement",
 "samples" );
   
   // Add some text to the node.
   node->InnerText = "Example text to be signed.";
   
   // Append the node to the document.
   document->AppendChild( node );
   
   // Save the XML document to the file name specified.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( FileName,gcnew UTF8Encoding( false
 ) );
   document->WriteTo( xmltw );
   xmltw->Close();
}

int main()
{
   try
   {
      
      // Generate a signing key.
      RSACryptoServiceProvider^ Key = gcnew RSACryptoServiceProvider;
      
      // Create an XML file to sign.
      CreateSomeXml( "Example.xml" );
      Console::WriteLine( "New XML file created." );
      
      // Sign the XML that was just created and save it in a 
      // new file.
      SignXmlFile( "Example.xml", "SignedExample.xml", Key );
      Console::WriteLine( "XML file signed." );
      
      // Verify the signature of the signed XML.
      Console::WriteLine( "Verifying signature..." );
      bool result = VerifyXmlFile( "SignedExample.xml"
 );
      
      // Display the results of the signature verification to
      // the console.
      if ( result )
      {
         Console::WriteLine( "The XML signature is valid." );
      }
      else
      {
         Console::WriteLine( "The XML signature is not valid." );
      }
   }
   catch ( CryptographicException^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
import System.*;
import System.Security.Cryptography.*;
import System.Security.Cryptography.X509Certificates.*;
import System.Security.Cryptography.Xml.*;
import System.Text.*;
import System.Xml.*;

public class SignVerifyEnvelope
{
    public static void main(String[]
 args)
    {
        try {
            // Generate a signing key.
            RSACryptoServiceProvider key = new RSACryptoServiceProvider();

            // Create an XML file to sign.
            CreateSomeXml("Example.xml");
            Console.WriteLine("New XML file created.");

            // Sign the XML that was just created and save it in a 
            // new file.
            SignXmlFile("Example.xml", "SignedExample.xml", key);
            Console.WriteLine("XML file signed.");

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");

            boolean result = VerifyXmlFile("SignedExample.xml").booleanValue();

            // Display the results of the signature verification to
 \
            // the console.
            if (result) {
                Console.WriteLine("The XML signature is valid.");
            }
            else {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch (CryptographicException e) {
            Console.WriteLine(e.get_Message());
        }
    } //main

    // Sign an XML file and save the signature in a new file.
    public static void SignXmlFile(String
 fileName, String signedFileName, 
        RSA key)
    {
        // Create a new XML document.
        XmlDocument doc = new XmlDocument();

        // Format the document to ignore white spaces.
        doc.set_PreserveWhitespace(false);

        // Load the passed XML file using it's name.
        doc.Load(new XmlTextReader(fileName));

        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml(doc);

        // Add the key to the SignedXml document. 
        signedXml.set_SigningKey(key);

        // Create a reference to be signed.
        Reference reference = new Reference();
        reference.set_Uri("");

        // Add a transformation to the reference.
        Transform trns = new XmlDsigC14NTransform();

        reference.AddTransform(trns);

        // Add an enveloped transformation to the reference.
        XmlDsigEnvelopedSignatureTransform env = 
            new XmlDsigEnvelopedSignatureTransform();
        reference.AddTransform(env);

        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient 
        // find key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue(((RSA)(key))));
        signedXml.set_KeyInfo(keyInfo);

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Append the element to the XML document.
        doc.get_DocumentElement().AppendChild(doc.ImportNode(
            xmlDigitalSignature, true));
        if (doc.get_FirstChild() instanceof XmlDeclaration) {
            doc.RemoveChild(doc.get_FirstChild());
        }

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmlTW = new XmlTextWriter(signedFileName,
 
            new UTF8Encoding(false));
        doc.WriteTo(xmlTW);
        xmlTW.Close();
    } //SignXmlFile   

    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyXmlFile(String
 name)
    {
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Format using white spaces.
        xmlDocument.set_PreserveWhitespace(true);

        // Load the passed XML file into the document. 
        xmlDocument.Load(name);

        // Create a new SignedXml object and pass it
        // the XML document class.
        SignedXml signedXml = new SignedXml(xmlDocument);

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml(((XmlElement)(nodeList.get_ItemOf(0))));

        // Check the signature and return the result.
        return new Boolean(signedXml.CheckSignature());
    } //VerifyXmlFile   

    // Create example data to sign.
    public static void CreateSomeXml(String
 fileName)
    {
        // Create a new XmlDocument object.
        XmlDocument document = new XmlDocument();

        // Create a new XmlNode object.
        XmlNode node = document.CreateNode(XmlNodeType.Element, "", 
            "MyElement", "samples");

        // Add some text to the node.
        node.set_InnerText("Example text to be signed.");

        // Append the node to the document.
        document.AppendChild(node);

        // Save the XML document to the file name specified.
        XmlTextWriter xmlTW = new XmlTextWriter(fileName, 
            new UTF8Encoding(false));
        document.WriteTo(xmlTW);
        xmlTW.Close();
    } //CreateSomeXml
} //SignVerifyEnvelope

Reference オブジェクト使用してXML デタッチ シグネチャ生成および検証する方法次のコード例示します

'
' This example signs a file specified by a URI 
' using a detached signature. It then verifies  
' the signed XML.
'
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.Text
Imports System.Xml


Class XMLDSIGDetached

   
   <STAThread()>  _
   Overloads Shared Sub
 Main(args() As String)
      ' The URI to sign.
      Dim resourceToSign As String
 = "http://www.microsoft.com"
      
      ' The name of the file to which to save the XML signature.
      Dim XmlFileName As String
 = "xmldsig.xml"
      
      Try
         
         ' Generate a signing key.
         Dim Key As New
 RSACryptoServiceProvider()
         
         Console.WriteLine("Signing: {0}", resourceToSign)
         
         ' Sign the detached resourceand save the signature in an XML
 file.
         SignDetachedResource(resourceToSign, XmlFileName, Key)
         
         Console.WriteLine("XML signature was succesfully computed
 and saved to {0}.", XmlFileName)
         
         ' Verify the signature of the signed XML.
         Console.WriteLine("Verifying signature...")
         
         'Verify the XML signature in the XML file.
         Dim result As Boolean
 = VerifyDetachedSignature(XmlFileName)
         
         ' Display the results of the signature verification to 
         ' the console.
         If result Then
            Console.WriteLine("The XML signature is valid.")
         Else
            Console.WriteLine("The XML signature is not valid.")
         End If
      Catch e As CryptographicException
         Console.WriteLine(e.Message)
      End Try 
   End Sub 
   
   
   ' Sign an XML file and save the signature in a new file.
   Public Shared Sub SignDetachedResource(URIString
 As String, XmlSigFileName As
 String, Key As RSA)
      ' Create a SignedXml object.
      Dim signedXml As New
 SignedXml()
      
      ' Assign the key to the SignedXml object.
      signedXml.SigningKey = Key
      
      ' Create a reference to be signed.
      Dim reference As New
 Reference()
      
      ' Add the passed URI to the reference object.
      reference.Uri = URIString
      
      ' Add the reference to the SignedXml object.
      signedXml.AddReference(reference)
      
      ' Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
      Dim keyInfo As New
 KeyInfo()
      keyInfo.AddClause(New RSAKeyValue(CType(Key, RSA)))
      signedXml.KeyInfo = keyInfo
      
      ' Compute the signature.
      signedXml.ComputeSignature()
      
      ' Get the XML representation of the signature and save
      ' it to an XmlElement object.
      Dim xmlDigitalSignature As XmlElement
 = signedXml.GetXml()
      
      ' Save the signed XML document to a file specified
      ' using the passed string.
      Dim xmltw As New XmlTextWriter(XmlSigFileName,
 New UTF8Encoding(False))
      xmlDigitalSignature.WriteTo(xmltw)
      xmltw.Close()
   End Sub 
 
   ' Verify the signature of an XML file and return the result.
   Public Shared Function
 VerifyDetachedSignature(XmlSigFileName As String)
 As [Boolean]
      ' Create a new XML document.
      Dim xmlDocument As New
 XmlDocument()
      
      ' Load the passed XML file into the document.
      xmlDocument.Load(XmlSigFileName)
      
      ' Create a new SignedXMl object.
      Dim signedXml As New
 SignedXml()
      
      ' Find the "Signature" node and create a new
      ' XmlNodeList object.
      Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")
      
      ' Load the signature node.
      signedXml.LoadXml(CType(nodeList(0), XmlElement))
      
      ' Check the signature and return the result.
      Return signedXml.CheckSignature()
   End Function
End Class 
//
// This example signs a file specified by a URI 
// using a detached signature. It then verifies  
// the signed XML.
//

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Xml;



class XMLDSIGDetached
{
    
    [STAThread]
    static void Main(string[]
 args)
    {
    // The URI to sign.
        string resourceToSign = "http://www.microsoft.com";
        
        // The name of the file to which to save the XML signature.
        string XmlFileName = "xmldsig.xml";

        try
        {

            // Generate a signing key.
            RSACryptoServiceProvider Key = new RSACryptoServiceProvider();

            Console.WriteLine("Signing: {0}", resourceToSign);

            // Sign the detached resourceand save the signature in an
 XML file.
            SignDetachedResource(resourceToSign, XmlFileName, Key);

            Console.WriteLine("XML signature was succesfully computed and saved
 to {0}.", XmlFileName);

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");

            //Verify the XML signature in the XML file.
            bool result = VerifyDetachedSignature(XmlFileName);

            // Display the results of the signature verification to
 
            // the console.
            if(result)
            {
                Console.WriteLine("The XML signature is valid.");
            }
            else
            {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch(CryptographicException e)
        {
            Console.WriteLine(e.Message);

        }
        
    }

    // Sign an XML file and save the signature in a new file.
    public static void SignDetachedResource(string
 URIString, string XmlSigFileName, RSA Key)
    {
        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml();

        // Assign the key to the SignedXml object.
        signedXml.SigningKey = Key;

        // Create a reference to be signed.
        Reference reference = new Reference();

        // Add the passed URI to the reference object.
        reference.Uri = URIString;
        
        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient find
 key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue((RSA)Key));    
        signedXml.KeyInfo = keyInfo;

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmltw = new XmlTextWriter(XmlSigFileName,
 new UTF8Encoding(false));
        xmlDigitalSignature.WriteTo(xmltw);
        xmltw.Close();
    }
    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyDetachedSignature(string
 XmlSigFileName)
    {    
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Load the passed XML file into the document.
        xmlDocument.Load(XmlSigFileName);
    
        // Create a new SignedXMl object.
        SignedXml signedXml = new SignedXml();

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml((XmlElement)nodeList[0]);

        // Check the signature and return the result.
        return signedXml.CheckSignature();
    }
}
//
// This example signs a file specified by a URI 
// using a detached signature. It then verifies  
// the signed XML.
//
#using <System.Security.dll>
#using <System.Xml.dll>

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

// Sign an XML file and save the signature in a new file.
void SignDetachedResource( String^ URIString, String^ XmlSigFileName,
 RSA^ Key )
{
   
   // Create a SignedXml object.
   SignedXml^ signedXml = gcnew SignedXml;
   
   // Assign the key to the SignedXml object.
   signedXml->SigningKey = Key;
   
   // Create a reference to be signed.
   Reference^ reference = gcnew Reference;
   
   // Add the passed URI to the reference object.
   reference->Uri = URIString;

   // Add the reference to the SignedXml object.
   signedXml->AddReference( reference );
   
   // Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
   KeyInfo^ keyInfo = gcnew KeyInfo;
   keyInfo->AddClause( gcnew RSAKeyValue( safe_cast<RSA^>(Key) ) );
   signedXml->KeyInfo = keyInfo;
   
   // Compute the signature.
   signedXml->ComputeSignature();
   
   // Get the XML representation of the signature and save
   // it to an XmlElement object.
   XmlElement^ xmlDigitalSignature = signedXml->GetXml();
   
   // Save the signed XML document to a file specified
   // using the passed string.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( XmlSigFileName,gcnew UTF8Encoding(
 false ) );
   xmlDigitalSignature->WriteTo( xmltw );
   xmltw->Close();
}


// Verify the signature of an XML file and return the result.
Boolean VerifyDetachedSignature( String^ XmlSigFileName )
{
   
   // Create a new XML document.
   XmlDocument^ xmlDocument = gcnew XmlDocument;
   
   // Load the passed XML file into the document.
   xmlDocument->Load( XmlSigFileName );
   
   // Create a new SignedXMl object.
   SignedXml^ signedXml = gcnew SignedXml;
   
   // Find the "Signature" node and create a new
   // XmlNodeList object.
   XmlNodeList^ nodeList = xmlDocument->GetElementsByTagName( "Signature"
 );
   
   // Load the signature node.
   signedXml->LoadXml( safe_cast<XmlElement^>(nodeList->Item( 0 )) );
   
   // Check the signature and return the result.
   return signedXml->CheckSignature();
}



[STAThread]
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   
   // The URI to sign.
   String^ resourceToSign = "http://www.microsoft.com";
   
   // The name of the file to which to save the XML signature.
   String^ XmlFileName = "xmldsig.xml";
   try
   {
      
      // Generate a signing key.
      RSACryptoServiceProvider^ Key = gcnew RSACryptoServiceProvider;
      Console::WriteLine( "Signing: {0}", resourceToSign );
      
      // Sign the detached resourceand save the signature in an XML
 file.
      SignDetachedResource( resourceToSign, XmlFileName, Key );
      Console::WriteLine( "XML signature was succesfully computed and saved
 to {0}.", XmlFileName );
      
      // Verify the signature of the signed XML.
      Console::WriteLine( "Verifying signature..." );
      
      //Verify the XML signature in the XML file.
      bool result = VerifyDetachedSignature( XmlFileName );
      
      // Display the results of the signature verification to 
      // the console.
      if ( result )
      {
         Console::WriteLine( "The XML signature is valid." );
      }
      else
      {
         Console::WriteLine( "The XML signature is not valid." );
      }
   }
   catch ( CryptographicException^ e ) 
   {
      Console::WriteLine( e->Message );
   }

}

//
// This example signs a file specified by a URI 
// using a detached signature. It then verifies  
// the signed XML.
//
import System .* ;
import System.Security.Cryptography .* ;
import System.Security.Cryptography.Xml .* ;
import System.Text .* ;
import System.Xml .* ;

class XMLDSIGDetached
{
    /** @attribute STAThread()
     */
    public static void main(String[]
 args)
    {
        // The URI to sign.
        String resourceToSign = "http://www.microsoft.com";

        // The name of the file to which to save the XML signature.
        String xmlFileName = "xmldsig.xml";

        try {
            // Generate a signing key.
            RSACryptoServiceProvider key = new RSACryptoServiceProvider();

            Console.WriteLine("Signing: {0}", resourceToSign);

            // Sign the detached resourceand save the signature in an
 XML file.
            SignDetachedResource(resourceToSign, xmlFileName, key);
            Console.WriteLine("XML signature was succesfully computed "
 
                + "and saved to {0}.", xmlFileName);

            // Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...");

            //Verify the XML signature in the XML file.
            boolean result = VerifyDetachedSignature(xmlFileName).booleanValue();

            // Display the results of the signature verification to
 
            // the console.
            if (result) {
                Console.WriteLine("The XML signature is valid.");
            }
            else {
                Console.WriteLine("The XML signature is not valid.");
            }
        }
        catch (CryptographicException e) {
            Console.WriteLine(e.get_Message());
        }
    } //main

    // Sign an XML file and save the signature in a new file.
    public static void SignDetachedResource(String
 uriString, 
        String xmlSigFileName, RSA key)
    {
        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml();

        // Assign the key to the SignedXml object.
        signedXml.set_SigningKey(key);

        // Create a reference to be signed.
        Reference reference = new Reference();

        // Add the passed URI to the reference object.
        reference.set_Uri(uriString);

        // Add a transformation if the URI is an XML file.
        if (uriString.EndsWith("xml")) {
            reference.AddTransform(new XmlDsigC14NTransform());
        }

        // Add the reference to the SignedXml object.
        signedXml.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient 
        // find key to validate).
        KeyInfo keyInfo = new KeyInfo();

        keyInfo.AddClause(new RSAKeyValue(((RSA)(key))));
        signedXml.set_KeyInfo(keyInfo);

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmlTW = new XmlTextWriter(xmlSigFileName,
 
            new UTF8Encoding(false));

        xmlDigitalSignature.WriteTo(xmlTW);
        xmlTW.Close();
    } //SignDetachedResource   

    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyDetachedSignature(String
 xmlSigFileName)
    {
        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Load the passed XML file into the document.
        xmlDocument.Load(xmlSigFileName);

        // Create a new SignedXMl object.
        SignedXml signedXml = new SignedXml();

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml(((XmlElement)(nodeList.get_ItemOf(0))));

        // Check the signature and return the result.
        return new Boolean(signedXml.CheckSignature());
    } //VerifyDetachedSignature
} //XMLDSIGDetached
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Reference クラス
Reference メンバ
System.Security.Cryptography.Xml 名前空間

Reference コンストラクタ (String)

Uri指定してReference クラス新しインスタンス初期化します。

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

解説解説

このコンストラクタは、""#xpointer(/) および #xxxx 専用の処理によって Reference オブジェクトURIデータ初期化します。

使用例使用例

Reference クラス使用しエンベロープ シグネチャXML ドキュメント署名および検証を行うコードの例次に示します

' This example signs an XML file using an
' envelope signature. It then verifies the 
' signed XML.
'
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Imports System.Text
Imports System.Xml



Module SignVerifyEnvelope


    Sub Main(ByVal args() As
 String)
        ' Generate a signing key.
        Dim Key As New RSACryptoServiceProvider()

        Try

            ' Sign an XML file and save the signature to a 
            ' new file.
            SignXmlFile("Test.xml", "SignedExample.xml",
 Key)
            Console.WriteLine("XML file signed.")

            ' Verify the signature of the signed XML.
            Console.WriteLine("Verifying signature...")

            Dim result As Boolean
 = VerifyXmlFile("SignedExample.xml")

            ' Display the results of the signature verification to 
            ' the console.
            If result Then
                Console.WriteLine("The XML signature is valid.")
            Else
                Console.WriteLine("The XML signature is not valid.")
            End If
        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        Finally
            ' Clear resources associated with the 
            ' RSACryptoServiceProvider.
            Key.Clear()
        End Try

    End Sub


    ' Sign an XML file and save the signature in a new file.
    Sub SignXmlFile(ByVal FileName As
 String, ByVal SignedFileName As
 String, ByVal Key As RSA)
        ' Check the arguments.  
        If FileName Is Nothing
 Then
            Throw New ArgumentNullException("FileName")
        End If
        If SignedFileName Is Nothing
 Then
            Throw New ArgumentNullException("SignedFileName")
        End If
        If Key Is Nothing
 Then
            Throw New ArgumentNullException("Key")
        End If

        ' Create a new XML document.
        Dim doc As New XmlDocument()

        ' Format the document to ignore white spaces.
        doc.PreserveWhitespace = False

        ' Load the passed XML file using it's name.
        doc.Load(New XmlTextReader(FileName))

        ' Create a SignedXml object.
        Dim signedXml As New
 SignedXml(doc)

        ' Add the key to the SignedXml document. 
        signedXml.SigningKey = Key

        ' Get the signature object from the SignedXml object.
        Dim XMLSignature As Signature = signedXml.Signature

        ' Create a reference to be signed.  Pass "" 
        ' to specify that all of the current XML
        ' document should be signed.
        Dim reference As New
 Reference("")

        ' Add an enveloped transformation to the reference.
        Dim env As New XmlDsigEnvelopedSignatureTransform()
        reference.AddTransform(env)

        ' Add the Reference object to the Signature object.
        XMLSignature.SignedInfo.AddReference(reference)

        ' Add an RSAKeyValue KeyInfo (optional; helps recipient find
 key to validate).
        Dim keyInfo As New
 KeyInfo()
        keyInfo.AddClause(New RSAKeyValue(CType(Key, RSA)))

        ' Add the KeyInfo object to the Reference object.
        XMLSignature.KeyInfo = keyInfo

        ' Compute the signature.
        signedXml.ComputeSignature()

        ' Get the XML representation of the signature and save
        ' it to an XmlElement object.
        Dim xmlDigitalSignature As XmlElement
 = signedXml.GetXml()

        ' Append the element to the XML document.
        doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))


        If TypeOf doc.FirstChild Is
 XmlDeclaration Then
            doc.RemoveChild(doc.FirstChild)
        End If

        ' Save the signed XML document to a file specified
        ' using the passed string.
        Dim xmltw As New
 XmlTextWriter(SignedFileName, New UTF8Encoding(False))
        doc.WriteTo(xmltw)
        xmltw.Close()

    End Sub

    ' Verify the signature of an XML file and return the result.
    Function VerifyXmlFile(ByVal Name As
 String) As [Boolean]
        ' Check the arguments.  
        If Name Is Nothing
 Then
            Throw New ArgumentNullException("Name")
        End If
        ' Create a new XML document.
        Dim xmlDocument As New
 XmlDocument()

        ' Format using white spaces.
        xmlDocument.PreserveWhitespace = True

        ' Load the passed XML file into the document. 
        xmlDocument.Load(Name)

        ' Create a new SignedXml object and pass it
        ' the XML document class.
        Dim signedXml As New
 SignedXml(xmlDocument)

        ' Find the "Signature" node and create a new
        ' XmlNodeList object.
        Dim nodeList As XmlNodeList = xmlDocument.GetElementsByTagName("Signature")

        ' Load the signature node.
        signedXml.LoadXml(CType(nodeList(0), XmlElement))

        ' Check the signature and return the result.
        Return signedXml.CheckSignature()

    End Function
End Module
//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Text;
using System.Xml;

public class SignVerifyEnvelope
{

    public static void Main(String[]
 args)
    {
        // Generate a signing key.
       RSACryptoServiceProvider Key = new RSACryptoServiceProvider();

       try
       {

           // Sign an XML file and save the signature to a 
           // new file.
           SignXmlFile("Test.xml", "SignedExample.xml", Key);
           Console.WriteLine("XML file signed.");

           // Verify the signature of the signed XML.
           Console.WriteLine("Verifying signature...");

           bool result = VerifyXmlFile("SignedExample.xml");

           // Display the results of the signature verification to 
           // the console.
           if (result)
           {
               Console.WriteLine("The XML signature is valid.");
           }
           else
           {
               Console.WriteLine("The XML signature is not valid.");
           }
       }
       catch (CryptographicException e)
       {
           Console.WriteLine(e.Message);
       }
       finally
       {
           // Clear resources associated with the 
           // RSACryptoServiceProvider.
           Key.Clear();
       }
   }

    // Sign an XML file and save the signature in a new file.
    public static void SignXmlFile(string
 FileName, string SignedFileName, RSA Key)
    {
        // Check the arguments.  
        if (FileName == null)
            throw new ArgumentNullException("FileName");
        if (SignedFileName == null)
            throw new ArgumentNullException("SignedFileName");
        if (Key == null)
            throw new ArgumentNullException("Key");


        // Create a new XML document.
        XmlDocument doc = new XmlDocument();

        // Format the document to ignore white spaces.
        doc.PreserveWhitespace = false;

        // Load the passed XML file using it's name.
        doc.Load(new XmlTextReader(FileName));

        // Create a SignedXml object.
        SignedXml signedXml = new SignedXml(doc);

        // Add the key to the SignedXml document. 
        signedXml.SigningKey = Key;

        // Get the signature object from the SignedXml object.
        Signature XMLSignature = signedXml.Signature;

        // Create a reference to be signed.  Pass "" 
        // to specify that all of the current XML
        // document should be signed.
        Reference reference = new Reference("");

        // Add an enveloped transformation to the reference.
        XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
        reference.AddTransform(env);

        // Add the Reference object to the Signature object.
        XMLSignature.SignedInfo.AddReference(reference);

        // Add an RSAKeyValue KeyInfo (optional; helps recipient find
 key to validate).
        KeyInfo keyInfo = new KeyInfo();
        keyInfo.AddClause(new RSAKeyValue((RSA)Key));

        // Add the KeyInfo object to the Reference object.
        XMLSignature.KeyInfo = keyInfo;

        // Compute the signature.
        signedXml.ComputeSignature();

        // Get the XML representation of the signature and save
        // it to an XmlElement object.
        XmlElement xmlDigitalSignature = signedXml.GetXml();

        // Append the element to the XML document.
        doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, true));


        if (doc.FirstChild is XmlDeclaration)
        {
            doc.RemoveChild(doc.FirstChild);
        }

        // Save the signed XML document to a file specified
        // using the passed string.
        XmlTextWriter xmltw = new XmlTextWriter(SignedFileName,
 new UTF8Encoding(false));
        doc.WriteTo(xmltw);
        xmltw.Close();
    }
    // Verify the signature of an XML file and return the result.
    public static Boolean VerifyXmlFile(String
 Name)
    {
        // Check the arguments.  
        if (Name == null)
            throw new ArgumentNullException("Name");

        // Create a new XML document.
        XmlDocument xmlDocument = new XmlDocument();

        // Format using white spaces.
        xmlDocument.PreserveWhitespace = true;

        // Load the passed XML file into the document. 
        xmlDocument.Load(Name);

        // Create a new SignedXml object and pass it
        // the XML document class.
        SignedXml signedXml = new SignedXml(xmlDocument);

        // Find the "Signature" node and create a new
        // XmlNodeList object.
        XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

        // Load the signature node.
        signedXml.LoadXml((XmlElement)nodeList[0]);

        // Check the signature and return the result.
        return signedXml.CheckSignature();
    }
}
//
// This example signs an XML file using an
// envelope signature. It then verifies the 
// signed XML.
//
#using <System.Xml.dll>
#using <System.Security.dll>
#using <System.dll>

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

// Sign an XML file and save the signature in a new file.
static void SignXmlFile( String^ FileName,
 String^ SignedFileName, RSA^ Key )
{
   
   // Check the arguments.  
   if ( FileName == nullptr )
      throw gcnew ArgumentNullException( L"FileName" );

   if ( SignedFileName == nullptr )
      throw gcnew ArgumentNullException( L"SignedFileName" );

   if ( Key == nullptr )
      throw gcnew ArgumentNullException( L"Key" );

   
   // Create a new XML document.
   XmlDocument^ doc = gcnew XmlDocument;
   
   // Format the document to ignore white spaces.
   doc->PreserveWhitespace = false;
   
   // Load the passed XML file using it's name.
   doc->Load( gcnew XmlTextReader( FileName ) );
   
   // Create a SignedXml object.
   SignedXml^ signedXml = gcnew SignedXml( doc );
   
   // Add the key to the SignedXml document. 
   signedXml->SigningKey = Key;
   
   // Get the signature object from the SignedXml object.
   Signature^ XMLSignature = signedXml->Signature;
   
   // Create a reference to be signed.  Pass "" 
   // to specify that all of the current XML
   // document should be signed.
   Reference^ reference = gcnew Reference( L"" );
   
   // Add an enveloped transformation to the reference.
   XmlDsigEnvelopedSignatureTransform^ env = gcnew XmlDsigEnvelopedSignatureTransform;
   reference->AddTransform( env );
   
   // Add the Reference object to the Signature object.
   XMLSignature->SignedInfo->AddReference( reference );
   
   // Add an RSAKeyValue KeyInfo (optional; helps recipient find key
 to validate).
   KeyInfo^ keyInfo = gcnew KeyInfo;
   keyInfo->AddClause( gcnew RSAKeyValue( dynamic_cast<RSA^>(Key) ) );
   
   // Add the KeyInfo object to the Reference object.
   XMLSignature->KeyInfo = keyInfo;
   
   // Compute the signature.
   signedXml->ComputeSignature();
   
   // Get the XML representation of the signature and save
   // it to an XmlElement object.
   XmlElement^ xmlDigitalSignature = signedXml->GetXml();
   
   // Append the element to the XML document.
   doc->DocumentElement->AppendChild( doc->ImportNode( xmlDigitalSignature,
 true ) );
   if ( dynamic_cast<XmlDeclaration^>(doc->FirstChild)
 )
   {
      doc->RemoveChild( doc->FirstChild );
   }

   
   // Save the signed XML document to a file specified
   // using the passed string.
   XmlTextWriter^ xmltw = gcnew XmlTextWriter( SignedFileName,gcnew UTF8Encoding(
 false ) );
   doc->WriteTo( xmltw );
   xmltw->Close();
}


// Verify the signature of an XML file and return the result.
static Boolean VerifyXmlFile( String^ Name )
{
   
   // Check the arguments.  
   if ( Name == nullptr )
      throw gcnew ArgumentNullException( L"Name" );

   
   // Create a new XML document.
   XmlDocument^ xmlDocument = gcnew XmlDocument;
   
   // Format using white spaces.
   xmlDocument->PreserveWhitespace = true;
   
   // Load the passed XML file into the document. 
   xmlDocument->Load( Name );
   
   // Create a new SignedXml object and pass it
   // the XML document class.
   SignedXml^ signedXml = gcnew SignedXml( xmlDocument );
   
   // Find the "Signature" node and create a new
   // XmlNodeList object.
   XmlNodeList^ nodeList = xmlDocument->GetElementsByTagName( L"Signature"
 );
   
   // Load the signature node.
   signedXml->LoadXml( dynamic_cast<XmlElement^>(nodeList->Item( 0 ))
 );
   
   // Check the signature and return the result.
   return signedXml->CheckSignature();
}

int main()
{
   
   // Generate a signing key.
   RSACryptoServiceProvider^ Key = gcnew RSACryptoServiceProvider;
   try
   {
      
      // Sign an XML file and save the signature to a 
      // new file.
      SignXmlFile( L"Test.xml", L"SignedExample.xml", Key );
      Console::WriteLine( L"XML file signed." );
      
      // Verify the signature of the signed XML.
      Console::WriteLine( L"Verifying signature..." );
      bool result = VerifyXmlFile( L"SignedExample.xml"
 );
      
      // Display the results of the signature verification to 
      // the console.
      if ( result )
      {
         Console::WriteLine( L"The XML signature is valid." );
      }
      else
      {
         Console::WriteLine( L"The XML signature is not valid." );
      }
   }
   catch ( CryptographicException^ e ) 
   {
      Console::WriteLine( e->Message );
   }
   finally
   {
      
      // Clear resources associated with the 
      // RSACryptoServiceProvider.
      Key->Clear();
   }

   return 1;
}

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Reference クラス
Reference メンバ
System.Security.Cryptography.Xml 名前空間

Reference コンストラクタ (Stream)


Reference コンストラクタ


Reference プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ DigestMethod 現在の Reference のダイジェスト メソッド URI取得または設定します
パブリック プロパティ DigestValue 現在の Referenceダイジェスト値を取得または設定します
パブリック プロパティ Id 現在の ReferenceID取得または設定します
パブリック プロパティ TransformChain 現在の Reference変換チェイン取得します
パブリック プロパティ Type 署名されるオブジェクトの型を取得または設定します
パブリック プロパティ Uri 現在の ReferenceUri取得または設定します
参照参照

関連項目

Reference クラス
System.Security.Cryptography.Xml 名前空間

Reference メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

Reference クラス
System.Security.Cryptography.Xml 名前空間

Reference メンバ

XML 署名<reference> 要素表します

Reference データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ DigestMethod 現在の Referenceダイジェスト メソッド URI取得または設定します
パブリック プロパティ DigestValue 現在の Referenceダイジェスト値を取得または設定します
パブリック プロパティ Id 現在の ReferenceID取得または設定します
パブリック プロパティ TransformChain 現在の Reference変換チェイン取得します
パブリック プロパティ Type 署名されるオブジェクトの型を取得または設定します
パブリック プロパティ Uri 現在の ReferenceUri取得または設定します
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

Reference クラス
System.Security.Cryptography.Xml 名前空間

参考文献

(reference から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/27 14:44 UTC 版)

参考文献(さんこうぶんけん、: reference, works cited, bibliography など)とは、記事書籍・学術論文執筆など、著述を行う際に参考にした図書や文献、新聞記事、またはその書誌事項を記したもの。参考や引用を行った出所を出典(しゅってん、: source, citation)という。


  1. ^ CiNii. “論文詳細表示画面の使い方”. CiNii マニュアル. 2022年7月13日閲覧。
  2. ^ Howard 2012, pp. 199–220.
  3. ^ 村上 2019, pp. 31–79.
  4. ^ 村上 2019, pp. 167–182.


「参考文献」の続きの解説一覧

Reference

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2016/09/29 03:59 UTC 版)

レッスルマニアXII」の記事における「Reference」の解説

^ “PWI Awards”. 1996 Wrestling Almanac & Book of Facts. (1996). 。 表 話 編 歴 WWE PPVイベントレッスルマニア I - 2 - III - IV - V - VI - VII - VIII - IX - X - XI - XII - 13 - XIV - XV - 2000 - X-Seven - X8 - XIX - XX - 21 - 22 - 23 - XXIV - XXV - XXVI - XXVII - XXVIII - 29 - XXX - 31 - 32 四大PPV ロイヤルランブル - レッスルマニア - サマースラム - サバイバー・シリーズ 通常PPV ファスト・レーン - ペイバック - エクストリーム・ルールズ - マネー・イン・ザ・バンク - バトルグラウンド - バックラッシュ - クラッシュ・オブ・チャンピオンズ - ノー・マーシー - ヘル・イン・ア・セル - TLC:テーブルズ・ラダーズ・アンド・チェアーズ 終了PPV ザ・レスリング・クラシック - ゴールデンボンバー - ディス・チューズデイ・イン・テキサス - ワン・ナイト・オンリー - キャピタル・カーネイジ - イン・ユア・ハウス - オーバー・ジ・エッジ - フューリー・ローデッド - インベイジョン - キング・オブ・ザ・リング - リベリオン - インサレクション - バッド・ブラッド - タブー・チューズデイ - ディセンバー・トゥ・ディスメンバー - ニュー・イヤーズ・レボリューション - ワン・ナイト・スタンド - グレート・アメリカン・バッシュ - アンフォーギヴェン - サイバー・サンデー - アルマゲドン - キャピタル・パニッシュメント - ジャッジメント・デイ - ザ・バッシュ - ブレーキング・ポイント - フェイタル・4ウェイ - ブラッギング・ライツ - ヴェンジェンス - ノー・ウェイ・アウト - オーバー・ザ・リミット - エリミネーション・チェンバー - ナイト・オブ・チャンピオンズ

※この「Reference」の解説は、「レッスルマニアXII」の解説の一部です。
「Reference」を含む「レッスルマニアXII」の記事については、「レッスルマニアXII」の概要を参照ください。


Reference

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/11/09 14:28 UTC 版)

レッスルマニア13」の記事における「Reference」の解説

^ 2006年WWE殿堂式典ブレットスピーチにおいて ^ “Pro Wrestling Illustrated Award Winners Match of the Year”. Wrestling Information Archive. 2008年4月15日時点オリジナル[リンク切れ]よりアーカイブ2008年7月1日閲覧。 ^ en:List of Wrestling Observer Newsletter awards ^ “Fight Game BlogWrestlemania 13 Enter The Stone Cold Era”. 2011年4月11日閲覧。 表 話 編 歴 WWE PPVイベントレッスルマニア I - 2 - III - IV - V - VI - VII - VIII - IX - X - XI - XII - 13 - XIV - XV - 2000 - X-Seven - X8 - XIX - XX - 21 - 22 - 23 - XXIV - XXV - XXVI - XXVII - XXVIII - 29 - XXX - 31 - 32 - 33 - 34 四大PPV ロイヤルランブル - レッスルマニア - サマースラム - サバイバー・シリーズ 通常PPV エリミネーション・チェンバー - ファスト・レーン - グレイテスト・ロイヤルランブル - バックラッシュ - マネー・イン・ザ・バンク - エクストリーム・ルールズ - ヘル・イン・ア・セル - スーパーショー・ダウン - エボリューション - クラウン・ジュエル - TLC:テーブルズ・ラダーズ・アンド・チェアーズ 終了PPV ザ・レスリング・クラシック - ゴールデンボンバー - ディス・チューズデイ・イン・テキサス - ワン・ナイト・オンリー - キャピタル・カーネイジ - イン・ユア・ハウス - オーバー・ジ・エッジ - フューリー・ローデッド - インベイジョン - キング・オブ・ザ・リング - リベリオン - インサレクション - バッド・ブラッド - タブー・チューズデイ - ディセンバー・トゥ・ディスメンバー - ニュー・イヤーズ・レボリューション - ワン・ナイト・スタンド - グレート・アメリカン・バッシュ - アンフォーギヴェン - サイバー・サンデー - アルマゲドン - キャピタル・パニッシュメント - ジャッジメント・デイ - ザ・バッシュ - ブレーキング・ポイント - フェイタル・4ウェイ - ブラッギング・ライツ - ヴェンジェンス - ノー・ウェイ・アウト - オーバー・ザ・リミット - ナイト・オブ・チャンピオンズ - ロードブロック:エンド・オブ・ライン - ペイバック - グレート・ボールズ・オブ・ファイヤー - バトルグラウンド - ノー・マーシー - クラッシュ・オブ・チャンピオンズ NXT PPV NXTテイクオーバー

※この「Reference」の解説は、「レッスルマニア13」の解説の一部です。
「Reference」を含む「レッスルマニア13」の記事については、「レッスルマニア13」の概要を参照ください。

ウィキペディア小見出し辞書の「reference」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


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

辞書ショートカット

すべての辞書の索引

「reference」の関連用語

referenceのお隣キーワード
検索ランキング

   

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



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

   
実用日本語表現辞典実用日本語表現辞典
Copyright © 2024実用日本語表現辞典 All Rights Reserved.
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
音楽電子事業協会音楽電子事業協会
Copyright 2024 AMEI.OR.JP
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリreferencereferencereferenceの記事を利用しております。
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの参考文献 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのレッスルマニアXII (改訂履歴)、レッスルマニア13 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS