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】
reference
何ものかを対象として、適宜参照されるために、その仕様や操作方法などについて書かれた文書のことである。おおむね、より一般的な文献であるマニュアルよりも記述は一層詳細であるか、あるいは一覧などで項目が引きやすくなっている。
reference
プログラミング言語において、定数や関数などを参照すること。
reference
Reference クラス
アセンブリ: System.Security (system.security.dll 内)
構文
解説
Reference オブジェクトは、XML デジタル署名仕様によって定義された XML デジタル署名の <reference> 要素を表します。
Reference オブジェクトを使用して、次の情報を指定します。
-
署名するデータ オブジェクトの URI (Uniform Resource Identifier)。URI は、ファイル パスまたは XML ドキュメント内の固有の要素を指定できます。この値は必須です。
<reference> 要素の詳細については、www.w3.org/TR/xmldsig-core/ の W3C 仕様を参照してください。
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.Security.Cryptography.Xml.Reference
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Reference コンストラクタ ()
アセンブリ: 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
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Reference コンストラクタ (String)
アセンブリ: 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.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; }
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Reference コンストラクタ (Stream)
アセンブリ: System.Security (system.security.dll 内)
構文
解説
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Reference コンストラクタ
オーバーロードの一覧
名前 | 説明 |
---|---|
Reference () | Reference クラスの新しいインスタンスを既定のプロパティを使用して初期化します。 |
Reference (Stream) | 指定した Stream のハッシュ値を使用して、Reference クラスの新しいインスタンスを初期化します。 |
Reference (String) | Uri を指定して、Reference クラスの新しいインスタンスを初期化します。 |
Reference プロパティ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
DigestMethod | 現在の Reference のダイジェスト メソッド URI を取得または設定します。 | |
DigestValue | 現在の Reference のダイジェスト値を取得または設定します。 | |
Id | 現在の Reference の ID を取得または設定します。 | |
TransformChain | 現在の Reference の変換チェインを取得します。 | |
Type | 署名されるオブジェクトの型を取得または設定します。 | |
Uri | 現在の Reference の Uri を取得または設定します。 |
Reference メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
AddTransform | データ上で実行される変換を、ダイジェスト アルゴリズムに渡す前に、Transform オブジェクトを変換のリストに追加します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
GetXml | Reference の XML 表現を返します。 | |
LoadXml | XML 要素から Reference の状態を読み込みます。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
Reference メンバ
Reference データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
DigestMethod | 現在の Reference のダイジェスト メソッド URI を取得または設定します。 | |
DigestValue | 現在の Reference のダイジェスト値を取得または設定します。 | |
Id | 現在の Reference の ID を取得または設定します。 | |
TransformChain | 現在の Reference の変換チェインを取得します。 | |
Type | 署名されるオブジェクトの型を取得または設定します。 | |
Uri | 現在の Reference の Uri を取得または設定します。 |
名前 | 説明 | |
---|---|---|
AddTransform | データ上で実行される変換を、ダイジェスト アルゴリズムに渡す前に、Transform オブジェクトを変換のリストに追加します。 | |
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
GetXml | Reference の XML 表現を返します。 | |
LoadXml | XML 要素から Reference の状態を読み込みます。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
参考文献
参考文献(さんこうぶんけん、英: reference, works cited, bibliography など)とは、記事や書籍・学術論文執筆など、著述を行う際に参考にした図書や文献、新聞記事、またはその書誌事項を記したもの。参考や引用を行った出所を出典(しゅってん、英: source, citation)という。
解説
巻末(尾注)や本文中(脚注)に書き記される。一般図書などでは書名、出版年月日、引用・参考ページなどがある。雑誌論文の引用時には雑誌名も記される。最近はインターネットの普及により参考サイトのURLが記されることが増えている。日本の科学技術関連の書誌情報の記述の指針として科学技術振興機構 (JST) の科学技術情報流通技術基準 (SIST) がある。
「参考」や「引用」(著作権法32条)を使用する場合は出典を明示しなければならない。
国立情報学研究所の学術情報データベース「CiNii(サイニィ)」では、参考文献となりうる学術論文や図書・雑誌、所蔵している図書館などが検索できる[1]。
方式
英文
参考文献の重要性
学術論文や書籍の執筆などにおいて、他者の意見や研究成果、周知の事実の確認等のために参考文献は重要である。
研究の場合、過去の誰かの先行研究と、自身の研究内容が重複しないようにする確認や、過去にいかなる研究がいかなる論証・プロセスを経て行われ、現在の学説や理論が構築されてきたかを概観する「研究史の整理」、またその後の分析、解釈の段階にいたるまで、参考文献は極めて重大な役割をもっている[2][3][4]。
出典
- ^ CiNii. “論文詳細表示画面の使い方”. CiNii マニュアル. 2022年7月13日閲覧。
- ^ Howard 2012, pp. 199–220.
- ^ 村上 2019, pp. 31–79.
- ^ 村上 2019, pp. 167–182.
参考文献
- Becker, Howard「文献に怯える」『ベッカー先生の論文教室(小川芳範・訳)』慶應義塾大学出版会、2012年4月30日、199-220頁。ISBN 9784766419375。 NCID BB08994076。
- 村上, 紀夫「第3章 論文の集め方と読み方」『歴史学で卒業論文を書くために』創元社、2019年9月20日、31-79頁。ISBN 9784422800417。 NCID BB28929146。
- 村上, 紀夫「第10章「はじめに」を書く」『歴史学で卒業論文を書くために』創元社、2019年9月20日、167-182頁。ISBN 9784422800417。 NCID BB28929146。
関連項目
外部リンク
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のページへのリンク