<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Org.Mentalis.Security.Cryptography</name>
    </assembly>
    <members>
        <member name="T:Org.Mentalis.Security.Cryptography.DHKeyGeneration">
            <summary>
            Defines the different Diffie-Hellman key generation methods.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DHKeyGeneration.Random">
            <summary>
            Returns dynamically generated values for P and G. Unlike the Sophie Germain or DSA key generation methods,
            this method does not ensure that the selected prime offers an adequate security level.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DHKeyGeneration.Static">
            <summary>
            Returns values for P and G that are hard coded in this library. Contrary to what your intuition may tell you,
            using these hard coded values is perfectly safe.
            The values of the P and G parameters are taken from 'The OAKLEY Key Determination Protocol' [RFC2412].
            This is the prefered key generation method, because it is very fast and very safe.
            Because this method uses fixed values for the P and G parameters, not all bit sizes are supported.
            The current implementation supports bit sizes of 768, 1024 and 1536.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.DHParameters">
            <summary>
            Represents the parameters of the Diffie-Hellman algorithm.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.P">
            <summary>
            Represents the public <b>P</b> parameter of the Diffie-Hellman algorithm.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.G">
            <summary>
            Represents the public <b>G</b> parameter of the Diffie-Hellman algorithm.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DHParameters.X">
            <summary>
            Represents the private <b>X</b> parameter of the Diffie-Hellman algorithm.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.DiffieHellman">
            <summary>
            Defines a base class from which all Diffie-Hellman implementations inherit.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.Create">
            <summary>
            Creates an instance of the default implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> algorithm.
            </summary>
            <returns>A new instance of the default implementation of DiffieHellman.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.Create(System.String)">
            <summary>
            Creates an instance of the specified implementation of <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.
            </summary>
            <param name="algName">The name of the implementation of DiffieHellman to use.</param>
            <returns>A new instance of the specified implementation of DiffieHellman.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.#ctor">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> instance.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.CreateKeyExchange">
            <summary>
            When overridden in a derived class, creates the key exchange data. 
            </summary>
            <returns>The key exchange data to be sent to the intended recipient.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.DecryptKeyExchange(System.Byte[])">
            <summary>
            When overridden in a derived class, extracts secret information from the key exchange data.
            </summary>
            <param name="keyEx">The key exchange data within which the secret information is hidden.</param>
            <returns>The secret information derived from the key exchange data.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ExportParameters(System.Boolean)">
            <summary>
            When overridden in a derived class, exports the <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
            </summary>
            <param name="includePrivate"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
            <returns>The parameters for Diffie-Hellman.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ImportParameters(Org.Mentalis.Security.Cryptography.DHParameters)">
            <summary>
            When overridden in a derived class, imports the specified <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
            </summary>
            <param name="parameters">The parameters for Diffie-Hellman.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.FromXmlString(System.String)">
            <summary>
            Reconstructs a <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> object from an XML string.
            </summary>
            <param name="xmlString">The XML string to use to reconstruct the DiffieHellman object.</param>
            <exception cref="T:System.Security.Cryptography.CryptographicException">One of the values in the XML string is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellman.ToXmlString(System.Boolean)">
            <summary>
            Creates and returns an XML string representation of the current <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/> object.
            </summary>
            <param name="includePrivateParameters"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
            <returns>An XML string encoding of the current DiffieHellman object.</returns>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged">
            <summary>
            Implements the Diffie-Hellman algorithm.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
            </summary>
            <remarks>The default length of the shared secret is 1024 bits.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Int32,System.Int32,Org.Mentalis.Security.Cryptography.DHKeyGeneration)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
            </summary>
            <param name="bitlen">The length, in bits, of the public P parameter.</param>
            <param name="l">The length, in bits, of the secret value X. This parameter can be set to 0 to use the default size.</param>
            <param name="keygen">One of the <see cref="T:Org.Mentalis.Security.Cryptography.DHKeyGeneration"/> values.</param>
            <remarks>The larger the bit length, the more secure the algorithm is. The default is 1024 bits. The minimum bit length is 128 bits.<br/>The size of the private value will be one fourth of the bit length specified.</remarks>
            <exception cref="T:System.ArgumentException">The specified bit length is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
            </summary>
            <param name="p">The P parameter of the Diffie-Hellman algorithm. This is a public parameter.</param>
            <param name="g">The G parameter of the Diffie-Hellman algorithm. This is a public parameter.</param>
            <param name="x">The X parameter of the Diffie-Hellman algorithm. This is a private parameter. If this parameters is a null reference (<b>Nothing</b> in Visual Basic), a secret value of the default size will be generated.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="p"/> or <paramref name="g"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="p"/> or <paramref name="g"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.#ctor(System.Byte[],System.Byte[],System.Int32)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged"/> instance.
            </summary>
            <param name="p">The P parameter of the Diffie-Hellman algorithm.</param>
            <param name="g">The G parameter of the Diffie-Hellman algorithm.</param>
            <param name="l">The length, in bits, of the private value. If 0 is specified, the default value will be used.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="p"/> or <paramref name="g"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="l"/> is invalid.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="p"/> or <paramref name="g"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.CreateKeyExchange">
            <summary>
            Creates the key exchange data.
            </summary>
            <returns>The key exchange data to be sent to the intended recipient.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.DecryptKeyExchange(System.Byte[])">
            <summary>
            Extracts secret information from the key exchange data.
            </summary>
            <param name="keyEx">The key exchange data within which the shared key is hidden.</param>
            <returns>The shared key derived from the key exchange data.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.ExportParameters(System.Boolean)">
            <summary>
            Exports the <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
            </summary>
            <param name="includePrivateParameters"><b>true</b> to include private parameters; otherwise, <b>false</b>.</param>
            <returns>The parameters for <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.ImportParameters(Org.Mentalis.Security.Cryptography.DHParameters)">
            <summary>
            Imports the specified <see cref="T:Org.Mentalis.Security.Cryptography.DHParameters"/>.
            </summary>
            <param name="parameters">The parameters for <see cref="T:Org.Mentalis.Security.Cryptography.DiffieHellman"/>.</param>
            <exception cref="T:System.Security.Cryptography.CryptographicException"><see cref="F:Org.Mentalis.Security.Cryptography.DHParameters.P">parameters.P</see> or <see cref="F:Org.Mentalis.Security.Cryptography.DHParameters.G">parameters.G</see> is a null reference (<b>Nothing</b> in Visual Basic) -or- <see cref="F:Org.Mentalis.Security.Cryptography.DHParameters.P">parameters.P</see> is not a prime number.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.Finalize">
            <summary>
            Releases the unmanaged resources used by the SymmetricAlgorithm.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.KeyExchangeAlgorithm">
            <summary>
            Gets the name of the key exchange algorithm.
            </summary>
            <value>The name of the key exchange algorithm.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.DiffieHellmanManaged.SignatureAlgorithm">
            <summary>
            Gets the name of the signature algorithm.
            </summary>
            <value>The name of the signature algorithm.</value>
        </member>
    </members>
</doc>
