<?xml version="1.0" encoding="utf-8"?>
<Type Name="X509Extension" FullName="System.Security.Cryptography.X509Certificates.X509Extension">
  <TypeSignature Language="C#" Value="public class X509Extension : System.Security.Cryptography.AsnEncodedData" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit X509Extension extends System.Security.Cryptography.AsnEncodedData" />
  <AssemblyInfo>
    <AssemblyName>System</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Security.Cryptography.AsnEncodedData</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <since version=".NET 2.0" />
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>X509 extensions are dynamic, extended properties that can be added to an X509 certificate and changed. The <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> class can be used to create extensions that are associated with a certificate but are not part of a certificate as issued by a certification authority (CA).</para>
      <para>In its most basic form, an X509 extension has an object identifier (OID), a Boolean value describing whether the extension is considered critical or not, and ASN-encoded data. Custom extensions can be registered in a <see cref="T:System.Security.Cryptography.CryptoConfig" /> file.</para>
      <para>The.NET Framework includes implementations of several common X509 extensions: </para>
      <list type="bullet">
        <item>
          <para>
            <see cref="T:System.Security.Cryptography.X509Certificates.X509KeyUsageExtension" />. Describes the key usages of a certificate.</para>
        </item>
        <item>
          <para>
            <see cref="T:System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension" />. Describes the constraints for a certificate.</para>
        </item>
        <item>
          <para>
            <see cref="T:System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension" />. Describes the enhanced key usages of a certificate.</para>
        </item>
        <item>
          <para>
            <see cref="T:System.Security.Cryptography.X509Certificates.X509SubjectKeyIdentifierExtension" />. Describes the key identifier. For example, used with XMLDSIG.</para>
        </item>
      </list>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Represents an X509 extension.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected X509Extension ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters />
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This constructor creates an empty <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> object, unlike the other constructors for this class that use certificate information from either a byte array, a pointer or a certificate file to create the object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> class.</para>
        </summary>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public X509Extension (System.Security.Cryptography.AsnEncodedData encodedExtension, bool critical);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Security.Cryptography.AsnEncodedData encodedExtension, bool critical) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="encodedExtension" Type="System.Security.Cryptography.AsnEncodedData" />
        <Parameter Name="critical" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use this constructor if the information to create the extension is already in an <see cref="T:System.Security.Cryptography.AsnEncodedData" /> object.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> class.</para>
        </summary>
        <param name="encodedExtension">
          <attribution license="cc4" from="Microsoft" modified="false" />The encoded data to be used to create the extension.</param>
        <param name="critical">
          <attribution license="cc4" from="Microsoft" modified="false" />true if the extension is critical; otherwise false.</param>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public X509Extension (System.Security.Cryptography.Oid oid, byte[] rawData, bool critical);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Security.Cryptography.Oid oid, unsigned int8[] rawData, bool critical) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="oid" Type="System.Security.Cryptography.Oid" />
        <Parameter Name="rawData" Type="System.Byte[]" />
        <Parameter Name="critical" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This constructor uses information from the <paramref name="oid" /> parameter to provide an object identifier for the extension. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> class.</para>
        </summary>
        <param name="oid">
          <attribution license="cc4" from="Microsoft" modified="false" />The object identifier used to identify the extension.</param>
        <param name="rawData">
          <attribution license="cc4" from="Microsoft" modified="false" />The encoded data used to create the extension.</param>
        <param name="critical">
          <attribution license="cc4" from="Microsoft" modified="false" />true if the extension is critical; otherwise false.</param>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public X509Extension (string oid, byte[] rawData, bool critical);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string oid, unsigned int8[] rawData, bool critical) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="oid" Type="System.String" />
        <Parameter Name="rawData" Type="System.Byte[]" />
        <Parameter Name="critical" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>This constructor uses information from the <paramref name="oid" /> parameter to provide an object identifier for the extension. </para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> class.</para>
        </summary>
        <param name="oid">
          <attribution license="cc4" from="Microsoft" modified="false" />A string representing the object identifier.</param>
        <param name="rawData">
          <attribution license="cc4" from="Microsoft" modified="false" />The encoded data used to create the extension.</param>
        <param name="critical">
          <attribution license="cc4" from="Microsoft" modified="false" />true if the extension is critical; otherwise false.</param>
      </Docs>
    </Member>
    <Member MemberName="CopyFrom">
      <MemberSignature Language="C#" Value="public override void CopyFrom (System.Security.Cryptography.AsnEncodedData asnEncodedData);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void CopyFrom(class System.Security.Cryptography.AsnEncodedData asnEncodedData) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="asnEncodedData" Type="System.Security.Cryptography.AsnEncodedData" />
      </Parameters>
      <Docs>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use this method to copy the extension properties of the specified <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> and add them to the instance of the <see cref="T:System.Security.Cryptography.X509Certificates.X509Extension" /> class from which this method is called.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Copies the extension properties of the specified <see cref="T:System.Security.Cryptography.AsnEncodedData" /> object.</para>
        </summary>
        <param name="asnEncodedData">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Security.Cryptography.AsnEncodedData" /> to be copied.</param>
      </Docs>
    </Member>
    <Member MemberName="Critical">
      <MemberSignature Language="C#" Value="public bool Critical { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool Critical" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <since version=".NET 2.0" />
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Use this property to designate whether an extension is critical.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets a Boolean value indicating whether the extension is critical.</para>
        </summary>
      </Docs>
    </Member>
  </Members>
</Type>