<Type Name="SignedXml" FullName="System.Security.Cryptography.Xml.SignedXml">
  <TypeSignature Language="C#" Value="public class SignedXml" Maintainer="auto" />
  <AssemblyInfo>
    <AssemblyName>System.Security</AssemblyName>
    <AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 07 D1 FA 57 C4 AE D9 F0 A3 2E 84 AA 0F AE FD 0D E9 E8 FD 6A EC 8F 87 FB 03 76 6C 83 4C 99 92 1E B2 3B E7 9A D9 D5 DC C1 DD 9A D2 36 13 21 02 90 0B 72 3C F9 80 95 7F C4 E1 77 10 8F C6 07 77 4F 29 E8 32 0E 92 EA 05 EC E4 E8 21 C0 A5 EF E8 F1 64 5C 4C 0C 93 C1 AB 99 28 5D 62 2C AA 65 2C 1D FA D6 3D 74 5D 6F 2D E5 F1 7E 5E AF 0F C4 96 3D 26 1C 8A 12 43 65 18 20 6D C0 93 34 4D 5A D2 93]</AssemblyPublicKey>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyCulture>neutral</AssemblyCulture>
    <Attributes>
      <Attribute>
        <AttributeName>System.Resources.NeutralResourcesLanguageAttribute</AttributeName>
      </Attribute>
      <Attribute>
        <AttributeName>System.Runtime.InteropServices.ComVisibleAttribute</AttributeName>
      </Attribute>
      <Attribute>
        <AttributeName>System.CLSCompliantAttribute</AttributeName>
      </Attribute>
      <Attribute>
        <AttributeName>System.Resources.SatelliteContractVersionAttribute</AttributeName>
      </Attribute>
    </Attributes>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Docs>
    <summary>Master class to load and verify signed XML document and to generate new XML signatures.</summary>
    <remarks>To be added</remarks>
  </Docs>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes />
  <Members>
    <Member MemberName="XmlDsigCanonicalizationUrl">
      <MemberSignature Language="C#" Value="public static string XmlDsigCanonicalizationUrl;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the XMLDSIG default canonicalization algorithm.</summary>
        <remarks>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigCanonicalizationWithCommentsUrl">
      <MemberSignature Language="C#" Value="public static string XmlDsigCanonicalizationWithCommentsUrl;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the XMLDSIG default canonicalization algorithm when signing/verifying XML comments.</summary>
        <remarks>http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigNamespaceUrl">
      <MemberSignature Language="C#" Value="public static string XmlDsigNamespaceUrl;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the W3 XMLDSIG namespace.</summary>
        <remarks>http://www.w3.org/2000/09/xmldsig#</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigDSAUrl">
      <MemberSignature Language="C#" Value="public static string XmlDsigDSAUrl;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the Digital Signature Algorithm (DSA) using SHA-1.</summary>
        <remarks>http://www.w3.org/2000/09/xmldsig#dsa-sha1</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigHMACSHA1Url">
      <MemberSignature Language="C#" Value="public static string XmlDsigHMACSHA1Url;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the HMAC mechanism using the SHA1 hash algorithm.</summary>
        <remarks>http://www.w3.org/2000/09/xmldsig#hmac-sha1</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigMinimalCanonicalizationUrl">
      <MemberSignature Language="C#" Value="public static string XmlDsigMinimalCanonicalizationUrl;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the XMLDSIG minimal canonicalization algorithm.</summary>
        <remarks>http://www.w3.org/2000/09/xmldsig#minimal</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigRSASHA1Url">
      <MemberSignature Language="C#" Value="public static string XmlDsigRSASHA1Url;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the RSA signatures using SHA-1 (PKCS #1).</summary>
        <remarks>http://www.w3.org/2000/09/xmldsig#rsa-sha1</remarks>
      </Docs>
    </Member>
    <Member MemberName="XmlDsigSHA1Url">
      <MemberSignature Language="C#" Value="public static string XmlDsigSHA1Url;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Unique URL identifier for the SHA1 hash algorithm.</summary>
        <remarks>http://www.w3.org/2000/09/xmldsig#sha1</remarks>
      </Docs>
    </Member>
    <Member MemberName="m_signature">
      <MemberSignature Language="C#" Value="protected Signature m_signature;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Cryptography.Xml.Signature</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="m_strSigningKeyName">
      <MemberSignature Language="C#" Value="protected string m_strSigningKeyName;" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="AddObject">
      <MemberSignature Language="C#" Value="public void AddObject (DataObject dataObject);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="dataObject" Type="System.Security.Cryptography.Xml.DataObject" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="dataObject">a <see cref="T:System.Security.Cryptography.Xml.DataObject" /></param>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="AddReference">
      <MemberSignature Language="C#" Value="public void AddReference (Reference reference);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="reference" Type="System.Security.Cryptography.Xml.Reference" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="reference">a <see cref="T:System.Security.Cryptography.Xml.Reference" /></param>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="CheckSignature">
      <MemberSignature Language="C#" Value="public bool CheckSignature ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Check the document signature using the keys specified under the &lt;KeyInfo&gt;.</summary>
        <returns>True if the signature was verified, false otherwise.</returns>
        <remarks>False could also mean that the public key to verify the document isn't part of the document (and must be supplied independently).</remarks>
      </Docs>
    </Member>
    <Member MemberName="CheckSignature">
      <MemberSignature Language="C#" Value="public bool CheckSignature (System.Security.Cryptography.AsymmetricAlgorithm key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Security.Cryptography.AsymmetricAlgorithm" />
      </Parameters>
      <Docs>
        <summary>Check the document signature using the specified public key.</summary>
        <param name="key">a <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /></param>
        <returns>True if the signature was verified, false otherwise.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="CheckSignature">
      <MemberSignature Language="C#" Value="public bool CheckSignature (System.Security.Cryptography.KeyedHashAlgorithm macAlg);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="macAlg" Type="System.Security.Cryptography.KeyedHashAlgorithm" />
      </Parameters>
      <Docs>
        <summary>Check the document signature using the specified secret (symmetric) key.</summary>
        <param name="macAlg">a <see cref="T:System.Security.Cryptography.KeyedHashAlgorithm" /></param>
        <returns>True if the signature was verified, false otherwise.</returns>
        <remarks>
          <para>Only <see cref="T:System.Security.Cryptography.HMACSHA1" /> is supported by the XMLDSIG specification.</para>
          <para>This example read a XML file (document.xml) and verify if it has been signed with the shared secret "trustme".</para>
          <example>
            <code lang="C#">
XmlDocument doc = new XmlDocument ();
// Whitespaces are very important for XML signature!
doc.PreserveWhitespace = true;
doc.Load ("document.xml");
                
XmlNodeList nodeList = doc.GetElementsByTagName ("Signature", SignedXml.XmlDsigNamespaceUrl);
// only check the first signature (there could be many - or none)
XmlElement signature = (XmlElement) nodeList [0];

SignedXml s = new SignedXml ();
s.LoadXml (signature);

byte[] sharedsecret = Encoding.ASCII.GetBytes ("trustme");
HMACSHA1 mac = new HMACSHA1 (sharedsecret);
if (s.CheckSignature (mac)) {
	Console.WriteLine ("Signature is valid");
}
else {
	Console.WriteLine ("Invalid signature");
}
  </code>
          </example>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="CheckSignatureReturningKey">
      <MemberSignature Language="C#" Value="public bool CheckSignatureReturningKey (out System.Security.Cryptography.AsymmetricAlgorithm signingKey);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="signingKey" Type="System.Security.Cryptography.AsymmetricAlgorithm&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <summary>Check the document signature using the keys specified under the &lt;KeyInfo&gt; and return the public key that verified the signature.</summary>
        <param name="signingKey">an <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /> instance that verified the XML signature or null if the signature couldn't be verified using the key available in the XML document.</param>
        <returns>True if the signature was verified, false otherwise.</returns>
        <remarks>False could also mean that the public key to verify the document isn't part of the document (and must be supplied independently).</remarks>
      </Docs>
    </Member>
    <Member MemberName="ComputeSignature">
      <MemberSignature Language="C#" Value="public void ComputeSignature ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Generate the signature using the private key available if the SigningKey property.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="ComputeSignature">
      <MemberSignature Language="C#" Value="public void ComputeSignature (System.Security.Cryptography.KeyedHashAlgorithm macAlg);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="macAlg" Type="System.Security.Cryptography.KeyedHashAlgorithm" />
      </Parameters>
      <Docs>
        <summary>Generate the signature using the specified secret (symmetric) algorithm.</summary>
        <param name="macAlg">the keyed-hash algorithm instance to use to sign the XML document.</param>
        <remarks>Only <see cref="T:System.Security.Cryptography.HMACSHA1" /> is supported by the XMLDSIG specification.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetIdElement">
      <MemberSignature Language="C#" Value="public virtual System.Xml.XmlElement GetIdElement (System.Xml.XmlDocument document, string idValue);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Xml.XmlElement</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="document" Type="System.Xml.XmlDocument" />
        <Parameter Name="idValue" Type="System.String" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="document">a <see cref="T:System.Xml.XmlDocument" /></param>
        <param name="idValue">a <see cref="T:System.String" /></param>
        <returns>a <see cref="T:System.Xml.XmlElement" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetPublicKey">
      <MemberSignature Language="C#" Value="protected virtual System.Security.Cryptography.AsymmetricAlgorithm GetPublicKey ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Cryptography.AsymmetricAlgorithm</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetXml">
      <MemberSignature Language="C#" Value="public System.Xml.XmlElement GetXml ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Xml.XmlElement</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Xml.XmlElement" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="LoadXml">
      <MemberSignature Language="C#" Value="public void LoadXml (System.Xml.XmlElement value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Xml.XmlElement" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="value">a <see cref="T:System.Xml.XmlElement" /></param>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public SignedXml ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Security.Cryptography.Xml.SignedXml" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public SignedXml (System.Xml.XmlDocument document);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="document" Type="System.Xml.XmlDocument" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="document">a <see cref="T:System.Xml.XmlDocument" /></param>
        <returns>a <see cref="T:System.Security.Cryptography.Xml.SignedXml" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public SignedXml (System.Xml.XmlElement elem);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="elem" Type="System.Xml.XmlElement" />
      </Parameters>
      <Docs>
        <summary>To be added</summary>
        <param name="elem">a <see cref="T:System.Xml.XmlElement" /></param>
        <returns>a <see cref="T:System.Security.Cryptography.Xml.SignedXml" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="KeyInfo">
      <MemberSignature Language="C#" Value="public KeyInfo KeyInfo { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Cryptography.Xml.KeyInfo</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Security.Cryptography.Xml.KeyInfo" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Signature">
      <MemberSignature Language="C#" Value="public Signature Signature { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Cryptography.Xml.Signature</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Security.Cryptography.Xml.Signature" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SignatureLength">
      <MemberSignature Language="C#" Value="public string SignatureLength { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.String" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SignatureMethod">
      <MemberSignature Language="C#" Value="public string SignatureMethod { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.String" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SignatureValue">
      <MemberSignature Language="C#" Value="public byte [] SignatureValue { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Byte[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Byte[]" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SignedInfo">
      <MemberSignature Language="C#" Value="public SignedInfo SignedInfo { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Cryptography.Xml.SignedInfo</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Security.Cryptography.Xml.SignedInfo" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SigningKey">
      <MemberSignature Language="C#" Value="public System.Security.Cryptography.AsymmetricAlgorithm SigningKey { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Cryptography.AsymmetricAlgorithm</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Security.Cryptography.AsymmetricAlgorithm" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="SigningKeyName">
      <MemberSignature Language="C#" Value="public string SigningKeyName { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.String" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Resolver">
      <MemberSignature Language="C#" Value="public System.Xml.XmlResolver Resolver { set; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Xml.XmlResolver</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added</summary>
        <returns>a <see cref="T:System.Xml.XmlResolver" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>