Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
//
// AssemblyInfo.cs
//
// Authors:
// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
// Sebastien Pouliot (sebastien@ximian.com)
//
// (C) 2003 Ximian, Inc. http://www.ximian.com
// (C) 2004 Novell (http://www.novell.com)
//
using System;
using System.Reflection;
using System.Resources;
using System.Security;
using System.Security.Permissions;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about the system assembly
[assembly: AssemblyVersion (Consts.FxVersion)]
[assembly: AssemblyCompany ("MONO development team")]
[assembly: AssemblyCopyright ("(c) 2003-2004 Various Authors")]
[assembly: AssemblyDescription ("Mono.Security.Win32.dll")]
[assembly: AssemblyProduct ("MONO CLI")]
[assembly: AssemblyTitle ("Mono.Security.Win32.dll")]
[assembly: CLSCompliant (true)]
[assembly: ComVisible (false)]
[assembly: NeutralResourcesLanguage ("en-US")]
[assembly: AssemblyDelaySign (true)]
[assembly: AssemblyKeyFile ("../mono.pub")]

View File

@@ -0,0 +1,5 @@
2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
* AssemblyInfo.cs: New. Copied and ajusted from System.Security.
* Locale.cs: New. Copied (verbatim) from System.Security.
* ChangeLog: New.

View File

@@ -0,0 +1,21 @@
2004-11-25 Raja R Harinath <rharinath@novell.com>
* Makefile (NO_TEST): Define when not in W32.
2004-05-06 Sebastien Pouliot <sebastien@ximian.com>
* README: Updated to match the new version and public token for the
assembly. Also changed my email address.
2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
* Mono.Security.Win32.dll.sources: Added AssemblyInfo.cs and Locale.cs
to the assembly.
2003-02-05 Sebastien Pouliot <spouliot@videotron.ca>
* Mono.Security.Win32.build: New. NAnt build file. As this
assembly works only on Windows there are no makefile.gnu.
* README: New. Describe how to use (and not to use) this
assembly.

View File

@@ -0,0 +1,139 @@
<Type Name="CapiContext" FullName="Mono.Security.Cryptography.CapiContext">
<TypeSignature Language="C#" Value="public class CapiContext : IDisposable" Maintainer="auto" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>This class encapsulate the access around the CryptoAPI handles to a CSP provider (HCRYPTPROV).
</summary>
<remarks>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CapiContext ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Return a context to the default Cryptographic Service Provider (CSP).</summary>
<remarks>The capabilities of the default CSP can varies between operating system version and locations (e.g. US versus export).</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CapiContext (System.Security.Cryptography.CspParameters csp);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="csp" Type="System.Security.Cryptography.CspParameters" />
</Parameters>
<Docs>
<param name="csp">a <see cref="T:System.Security.Cryptography.CspParameters" /> which includes the informations required to select a specific CSP (name) or the default provider for a category of CSP (type).</param>
<summary>Return a context to the specified Cryptographic Service Provider (CSP). </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="public void Dispose ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Release the unmanaged resources held by the class.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Error">
<MemberSignature Language="C#" Value="public int Error { get; }" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Return the error code of the last operation.</summary>
<value>a <see cref="T:System.Int32" /> representing the Win32 error code returned in the last operation (cryptographic or not).</value>
<remarks>This returns Win32's GetLastError result. So this will only be result of the last cryptographic operation is checked right after the operation (as further operation can change this value).</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~CapiContext ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Handle">
<MemberSignature Language="C#" Value="public IntPtr Handle { get; }" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>System.IntPtr</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Return the HCRYPTPROV handle managed by the class.</summary>
<value>a <see cref="T:System.IntPtr" /> representing the CryptoAPI HCRYPTPROV handle.</value>
<remarks>This property is useful if you need to directly call some unmanaged CryptoAPI functions without managing yourself the context.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Result">
<MemberSignature Language="C#" Value="public bool Result { get; }" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Return the result of the last cryptographic operation made using this context.</summary>
<value>a <see cref="T:System.Boolean" /> which is true if the last operation succeeded or false if the last operation failed.</value>
<remarks>You can't only trust the Error property to know the result of an operation. Some error codes are warnings or even success codes in special circumstances.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,204 @@
<Type Name="CapiHash" FullName="Mono.Security.Cryptography.CapiHash">
<TypeSignature Language="C#" Value="public class CapiHash : IDisposable" Maintainer="auto" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>This class encapsulate the access around the CryptoAPI handles to a hash object (HCRYPTHASH).</summary>
<remarks>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CapiHash (int hashAlgorithm);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="hashAlgorithm" Type="System.Int32" />
</Parameters>
<Docs>
<param name="hashAlgorithm">a <see cref="T:System.Int32" /> representing the CryptoAPI hash implementation to use.</param>
<summary>Return a context to do a series of hashing operation with the default Cryptographic Service Provider (CSP).</summary>
<remarks>A default <see cref="T:Mono.Security.Cryptography.CapiContext" /> will be created for the hashing operations.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CapiHash (Mono.Security.Cryptography.CapiContext ctx, int hashAlgorithm);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="ctx" Type="Mono.Security.Cryptography.CapiContext" />
<Parameter Name="hashAlgorithm" Type="System.Int32" />
</Parameters>
<Docs>
<param name="ctx">a <see cref="T:Mono.Security.Cryptography.CapiContext" /> representing the Cryptographic Service Provider (CSP) to use.</param>
<param name="hashAlgorithm">a <see cref="T:System.Int32" /> representing the CryptoAPI hash implementation to use.</param>
<summary>Return a context to do a series of hashing operation with the specified Cryptographic Service Provider (CSP).</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CapiHash (System.Security.Cryptography.CspParameters cspParams, int hashAlgorithm);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="cspParams" Type="System.Security.Cryptography.CspParameters" />
<Parameter Name="hashAlgorithm" Type="System.Int32" />
</Parameters>
<Docs>
<param name="cspParams">a <see cref="T:System.Security.Cryptography.CspParameters" /> containing the parameters to create the cryptographic context.</param>
<param name="hashAlgorithm">a <see cref="T:System.Int32" /> representing the CryptoAPI hash implementation to use.</param>
<summary>Return a context to do a series of hashing operation with a Cryptographic Service Provider (CSP) created with the specifed parameters.</summary>
<remarks>A <see cref="T:Mono.Security.Cryptography.CapiContext" /> will be created with the specified <see cref="T:System.Security.Cryptography.CspParameters" /> for the hashing operations.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="public void Dispose ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Release the unmanaged resources held by the class.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~CapiHash ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Handle">
<MemberSignature Language="C#" Value="public IntPtr Handle { get; }" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>System.IntPtr</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Return the HCRYPTHASH handle managed by the class.</summary>
<value>a <see cref="T:System.IntPtr" /> representing the CryptoAPI HCRYPTHASH handle.</value>
<remarks>This property is useful if you need to directly call some unmanaged CryptoAPI functions without managing yourself the hash context. </remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashCore">
<MemberSignature Language="C#" Value="public void HashCore (byte[] data, int start, int length);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="System.Byte[]" />
<Parameter Name="start" Type="System.Int32" />
<Parameter Name="length" Type="System.Int32" />
</Parameters>
<Docs>
<param name="data">Byte array containing the data to hash.</param>
<param name="start">Where in the input buffer to start.</param>
<param name="length">Size in bytes of the data in the buffer to hash. </param>
<summary>Drives the hashing function.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashFinal">
<MemberSignature Language="C#" Value="public byte[] HashFinal ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>This finalizes the hash. Takes the data from the chaining variables and returns it.</summary>
<returns>a <see cref="T:System.Byte[]" /></returns>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashSize">
<MemberSignature Language="C#" Value="public int HashSize { get; }" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns the size in bits of the hash.</summary>
<value>a <see cref="T:System.Int32" /> representing the number of bits in the hash result.</value>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Initialize">
<MemberSignature Language="C#" Value="public void Initialize (int algo);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="algo" Type="System.Int32" />
</Parameters>
<Docs>
<param name="algo">a <see cref="T:System.Int32" /> representing the CryptoAPI hash implementation to use. </param>
<summary>Resets the class after use.</summary>
<remarks> Called automatically after hashing is done.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,130 @@
<Type Name="MD2CryptoServiceProvider" FullName="Mono.Security.Cryptography.MD2CryptoServiceProvider">
<TypeSignature Language="C#" Maintainer="auto" Value="public class MD2CryptoServiceProvider : Mono.Security.Cryptography.MD2" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>Mono.Security.Cryptography.MD2</BaseTypeName>
</Base>
<Interfaces>
</Interfaces>
<Docs>
<summary>Provides access to the unmanaged implementation of the MD2 cryptographic hash function in CryptoAPI.</summary>
<remarks>
<para>WARNING: The MD2 algorithm hasn't been broken but is no more considered safe for newer design. It is included in Mono.Security for compatibility reasons as older, but still valid, root certificates are signed using an MD2 hash.</para>
<para>The MD2 algorithm is detailled in the IETF RFC 1319 "The MD2 Message-Digest Algorithm", available at http://www.ietf.org/rfc/rfc1319.txt</para>
<para>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</para>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MD2CryptoServiceProvider ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Creates a new CryptoAPI-based instance to hash data using the MD2 algorithm.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="disposing" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="disposing">a <see cref="T:System.Boolean" /></param>
<summary>Release the unmanaged resources held by the class. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~MD2CryptoServiceProvider ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashCore">
<MemberSignature Language="C#" Value="protected override void HashCore (byte[] rgb, int ibStart, int cbSize);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rgb" Type="System.Byte[]" />
<Parameter Name="ibStart" Type="System.Int32" />
<Parameter Name="cbSize" Type="System.Int32" />
</Parameters>
<Docs>
<param name="rgb">Byte array containing the data to hash.</param>
<param name="ibStart">Where in the input buffer to start.</param>
<param name="cbSize">a <see cref="T:System.Int32" /></param>
<summary>Drives the hashing function.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashFinal">
<MemberSignature Language="C#" Value="protected override byte[] HashFinal ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>This finalizes the hash. Takes the data from the chaining variables and returns it.</summary>
<returns>a <see cref="T:System.Byte[]" /></returns>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Initialize">
<MemberSignature Language="C#" Value="public override void Initialize ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Resets the class after use.</summary>
<remarks> Called automatically after hashing is done.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,130 @@
<Type Name="MD4CryptoServiceProvider" FullName="Mono.Security.Cryptography.MD4CryptoServiceProvider">
<TypeSignature Language="C#" Maintainer="auto" Value="public class MD4CryptoServiceProvider : Mono.Security.Cryptography.MD4" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>Mono.Security.Cryptography.MD4</BaseTypeName>
</Base>
<Interfaces>
</Interfaces>
<Docs>
<summary>Provides access to the unmanaged implementation of the MD4 cryptographic hash function in CryptoAPI.</summary>
<remarks>
<para>WARNING: The MD4 algorithm has been broken. It should not be used in any new design. It is included in Mono.Security for compatibility reasons as some protocols, like NTLM, requires it.</para>
<para>The MD4 algorithm is detailled in the IETF RFC 1320 "The MD4 Message-Digest Algorithm", available at http://www.ietf.org/rfc/rfc1320.txt</para>
<para>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</para>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MD4CryptoServiceProvider ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Creates a new CryptoAPI-based instance to hash data using the MD4 algorithm. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="disposing" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="disposing">a <see cref="T:System.Boolean" /></param>
<summary>Release the unmanaged resources held by the class. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~MD4CryptoServiceProvider ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashCore">
<MemberSignature Language="C#" Value="protected override void HashCore (byte[] rgb, int ibStart, int cbSize);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rgb" Type="System.Byte[]" />
<Parameter Name="ibStart" Type="System.Int32" />
<Parameter Name="cbSize" Type="System.Int32" />
</Parameters>
<Docs>
<param name="rgb">Byte array containing the data to hash.</param>
<param name="ibStart">Where in the input buffer to start.</param>
<param name="cbSize">Size in bytes of the data in the buffer to hash. </param>
<summary>Drives the hashing function.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashFinal">
<MemberSignature Language="C#" Value="protected override byte[] HashFinal ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>This finalizes the hash. Takes the data from the chaining variables and returns it.</summary>
<returns>a <see cref="T:System.Byte[]" /></returns>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Initialize">
<MemberSignature Language="C#" Value="public override void Initialize ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Resets the class after use.</summary>
<remarks> Called automatically after hashing is done.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,126 @@
<Type Name="MD5CryptoServiceProvider" FullName="Mono.Security.Cryptography.MD5CryptoServiceProvider">
<TypeSignature Language="C#" Maintainer="auto" Value="public class MD5CryptoServiceProvider : System.Security.Cryptography.MD5" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>System.Security.Cryptography.MD5</BaseTypeName>
</Base>
<Interfaces>
</Interfaces>
<Docs>
<summary>Provides access to the unmanaged implementation of the MD5 cryptographic hash function in CryptoAPI.</summary>
<remarks>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public MD5CryptoServiceProvider ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Creates a new CryptoAPI-based instance to hash data using the MD5 algorithm. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="disposing" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="disposing">a <see cref="T:System.Boolean" /></param>
<summary>Release the unmanaged resources held by the class. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~MD5CryptoServiceProvider ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashCore">
<MemberSignature Language="C#" Value="protected override void HashCore (byte[] rgb, int ibStart, int cbSize);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rgb" Type="System.Byte[]" />
<Parameter Name="ibStart" Type="System.Int32" />
<Parameter Name="cbSize" Type="System.Int32" />
</Parameters>
<Docs>
<param name="rgb">Byte array containing the data to hash.</param>
<param name="ibStart">Where in the input buffer to start.</param>
<param name="cbSize">Size in bytes of the data in the buffer to hash. </param>
<summary>Drives the hashing function.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashFinal">
<MemberSignature Language="C#" Value="protected override byte[] HashFinal ();" />
<MemberType>Method</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>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Initialize">
<MemberSignature Language="C#" Value="public override void Initialize ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Resets the class after use.</summary>
<remarks> Called automatically after hashing is done.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,139 @@
<Type Name="RNGCryptoServiceProvider" FullName="Mono.Security.Cryptography.RNGCryptoServiceProvider">
<TypeSignature Language="C#" Value="public class RNGCryptoServiceProvider : System.Security.Cryptography.RandomNumberGenerator" Maintainer="auto" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>System.Security.Cryptography.RandomNumberGenerator</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Provides access to the unmanaged implementation of the default random data source in CryptoAPI.</summary>
<remarks>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RNGCryptoServiceProvider ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Creates a new CryptoAPI-based instance to get new random data. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RNGCryptoServiceProvider (byte[] rgb);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="rgb" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="rgb">an array of bytes used as a seed for by the RNG.</param>
<summary>Creates a new CryptoAPI-based instance to get new random data. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RNGCryptoServiceProvider (System.Security.Cryptography.CspParameters cspParams);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="cspParams" Type="System.Security.Cryptography.CspParameters" />
</Parameters>
<Docs>
<param name="cspParams">a <see cref="T:System.Security.Cryptography.CspParameters" /> containing the parameters to create the cryptographic context. </param>
<summary>Creates a new CryptoAPI-based instance to get new random data. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public RNGCryptoServiceProvider (string str);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="str" Type="System.String" />
</Parameters>
<Docs>
<param name="str">a <see cref="T:System.String" /> used as a seed fot the RNG.</param>
<summary>Creates a new CryptoAPI-based instance to get new random data. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~RNGCryptoServiceProvider ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="GetBytes">
<MemberSignature Language="C#" Value="public override void GetBytes (byte[] data);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="data">The buffer to be filled with random bytes.</param>
<summary>Fill the supplied buffer with random bytes.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="GetNonZeroBytes">
<MemberSignature Language="C#" Value="public override void GetNonZeroBytes (byte[] data);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="data">The buffer to be filled with random bytes. </param>
<summary>Fill the supplied buffer with random bytes excluding zeros (0x00).</summary>
<remarks>Some cryptographic functions requires random that do not contain zeros. However this restriction do not apply to most application code so this method shouldn't be used.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,126 @@
<Type Name="SHA1CryptoServiceProvider" FullName="Mono.Security.Cryptography.SHA1CryptoServiceProvider">
<TypeSignature Language="C#" Maintainer="auto" Value="public class SHA1CryptoServiceProvider : System.Security.Cryptography.SHA1" />
<AssemblyInfo>
<AssemblyName>Mono.Security.Win32</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 79 15 99 77 D2 D0 3A 8E 6B EA 7A 2E 74 E8 D1 AF CC 93 E8 85 19 74 95 2B B4 80 A1 2C 91 34 47 4D 04 06 24 47 C3 7E 0E 68 C0 80 53 6F CF 3C 3F BE 2F F9 C9 79 CE 99 84 75 E5 06 E8 CE 82 DD 5B 0F 35 0D C1 0E 93 BF 2E EE CF 87 4B 24 77 0C 50 81 DB EA 74 47 FD DA FA 27 7B 22 DE 47 D6 FF EA 44 96 74 A4 F9 FC CF 84 D1 50 69 08 93 80 28 4D BD D3 5F 46 CD FF 12 A1 BD 78 E4 EF 00 65 D0 16 DF]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</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>
<Base>
<BaseTypeName>System.Security.Cryptography.SHA1</BaseTypeName>
</Base>
<Interfaces>
</Interfaces>
<Docs>
<summary>Provides access to the unmanaged implementation of the SHA1 cryptographic hash function in CryptoAPI.</summary>
<remarks>This class is part of the Mono.Security.Win32.dll assembly. This assembly provides a managed wrapper aound the unmanaged CryptoAPI. As such the assembly will only work on Windows operating system providing CryptoAPI.</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public SHA1CryptoServiceProvider ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Creates a new CryptoAPI-based instance to hash data using the SHA1 algorithm. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="disposing" Type="System.Boolean" />
</Parameters>
<Docs>
<param name="disposing">a <see cref="T:System.Boolean" /></param>
<summary>Release the unmanaged resources held by the class. </summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~SHA1CryptoServiceProvider ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>To be added</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashCore">
<MemberSignature Language="C#" Value="protected override void HashCore (byte[] rgb, int ibStart, int cbSize);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="rgb" Type="System.Byte[]" />
<Parameter Name="ibStart" Type="System.Int32" />
<Parameter Name="cbSize" Type="System.Int32" />
</Parameters>
<Docs>
<param name="rgb">Byte array containing the data to hash.</param>
<param name="ibStart">Where in the input buffer to start.</param>
<param name="cbSize">Size in bytes of the data in the buffer to hash. </param>
<summary>Drives the hashing function.</summary>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="HashFinal">
<MemberSignature Language="C#" Value="protected override byte[] HashFinal ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>This finalizes the hash. Takes the data from the chaining variables and returns it.</summary>
<returns>a <see cref="T:System.Byte[]" /></returns>
<remarks>To be added</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Initialize">
<MemberSignature Language="C#" Value="public override void Initialize ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Resets the class after use.</summary>
<remarks> Called automatically after hashing is done.</remarks>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,51 @@
<Overview>
<Assemblies>
<Assembly Name="Mono.Security.Win32" Version="2.0.0.0">
<Attributes>
<Attribute>
<AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Resources.NeutralResourcesLanguage("en-US")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.CLSCompliant(true)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyTitle("Mono.Security.Win32.dll")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyProduct("MONO CLI")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyDescription("Mono.Security.Win32.dll")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyCopyright("(c) 2003-2004 Various Authors")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyCompany("MONO development team")</AttributeName>
</Attribute>
</Attributes>
</Assembly>
</Assemblies>
<Remarks>To be added.</Remarks>
<Copyright>To be added.</Copyright>
<Types>
<Namespace Name="Mono.Security.Cryptography">
<Type Name="CapiContext" Kind="Class" />
<Type Name="CapiHash" Kind="Class" />
<Type Name="MD2" Kind="Class" />
<Type Name="MD2CryptoServiceProvider" Kind="Class" />
<Type Name="MD4" Kind="Class" />
<Type Name="MD4CryptoServiceProvider" Kind="Class" />
<Type Name="MD5CryptoServiceProvider" Kind="Class" />
<Type Name="RNGCryptoServiceProvider" Kind="Class" />
<Type Name="SHA1CryptoServiceProvider" Kind="Class" />
</Namespace>
</Types>
<Title>Mono.Security.Win32</Title>
</Overview>

View File

@@ -0,0 +1,6 @@
<Namespace Name="Mono.Security.Cryptography">
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
</Namespace>

View File

@@ -0,0 +1,13 @@
thisdir = class/Mono.Security.Win32
SUBDIRS =
include ../../build/rules.make
LIBRARY = Mono.Security.Win32.dll
LIB_MCS_FLAGS = /unsafe
EXTRA_DISTFILES = README Test/ChangeLog
ifneq (win32, $(PROFILE))
NO_TEST = yes
endif
include ../../build/library.make

View File

@@ -0,0 +1,96 @@
//
// Mono.Security.Cryptography.CapiContext
//
// Authors:
// Sebastien Pouliot (sebastien@ximian.com)
//
// Copyright (C) 2003 Motus Technologies Inc. (http://www.motus.com)
// Copyright (C) 2004 Novell (http://www.novell.com)
//
using System;
using System.Security.Cryptography;
namespace Mono.Security.Cryptography {
// we deal with unmanaged resources - they MUST be released after use!
public class CapiContext : IDisposable {
// handles to CryptoAPI - they are
private IntPtr providerHandle;
private CspParameters cspParams;
// has the last call succeded ?
private bool lastResult;
// Create an instance using the default CSP
public CapiContext () : this (null)
{
}
// Create an instance using the specified CSP
public CapiContext (CspParameters csp)
{
providerHandle = IntPtr.Zero;
if (csp == null) {
// default parameters
cspParams = new CspParameters ();
}
else {
// keep of copy of the parameters
cspParams = new CspParameters (csp.ProviderType, csp.ProviderName, csp.KeyContainerName);
cspParams.KeyNumber = csp.KeyNumber;
cspParams.Flags = csp.Flags;
}
// do not show user interface (CRYPT_SILENT) - if UI is required then the function fails.
uint flags = CryptoAPI.CRYPT_SILENT;
if ((cspParams.Flags & CspProviderFlags.UseMachineKeyStore) == CspProviderFlags.UseMachineKeyStore) {
flags |= CryptoAPI.CRYPT_MACHINE_KEYSET;
}
lastResult = CryptoAPI.CryptAcquireContextA (ref providerHandle, cspParams.KeyContainerName,
cspParams.ProviderName, cspParams.ProviderType, flags);
if (!lastResult) {
// key container may not exist
flags |= CryptoAPI.CRYPT_NEWKEYSET;
lastResult = CryptoAPI.CryptAcquireContextA (ref providerHandle, cspParams.KeyContainerName,
cspParams.ProviderName, cspParams.ProviderType, flags);
}
}
~CapiContext ()
{
Dispose ();
}
public int Error {
get { return CryptoAPI.GetLastError (); }
}
public IntPtr Handle {
get { return providerHandle; }
}
public bool Result {
get { return lastResult; }
}
internal bool InternalResult {
set { lastResult = value; }
}
// release unmanaged resources
public void Dispose ()
{
if (providerHandle != IntPtr.Zero) {
lastResult = CryptoAPI.CryptReleaseContext (providerHandle, 0);
GC.KeepAlive (this);
providerHandle = IntPtr.Zero;
GC.SuppressFinalize (this);
}
}
}
}

View File

@@ -0,0 +1,99 @@
//
// Mono.Security.Cryptography.CapiHash
//
// Authors:
// Sebastien Pouliot (sebastien@ximian.com)
//
// Copyright (C) 2003 Motus Technologies Inc. (http://www.motus.com)
// Copyright (C) 2004 Novell (http://www.novell.com)
//
using System;
using System.Security.Cryptography;
namespace Mono.Security.Cryptography {
public class CapiHash : IDisposable {
private CapiContext context;
private IntPtr handle;
private uint hashSize;
public CapiHash (int hashAlgorithm)
{
context = new CapiContext ();
Initialize (hashAlgorithm);
}
public CapiHash (CapiContext ctx, int hashAlgorithm)
{
context = ctx;
Initialize (hashAlgorithm);
}
public CapiHash (CspParameters cspParams, int hashAlgorithm)
{
context = new CapiContext (cspParams);
Initialize (hashAlgorithm);
}
~CapiHash ()
{
Dispose ();
}
public IntPtr Handle {
get { return handle; }
}
public int HashSize {
get { return (int) hashSize; }
}
public void Initialize (int algo)
{
if (context != null) {
context.InternalResult = CryptoAPI.CryptCreateHash (context.Handle, (uint)algo, IntPtr.Zero, 0, ref handle);
hashSize = 0;
if (context.Result)
context.InternalResult = CryptoAPI.CryptGetHashParam (handle, CryptoAPI.HP_HASHVAL, null, ref hashSize, 0);
GC.KeepAlive (this);
}
}
public void Dispose ()
{
if (handle != IntPtr.Zero) {
CryptoAPI.CryptDestroyHash (handle);
context.Dispose ();
GC.KeepAlive (this);
handle = IntPtr.Zero;
GC.SuppressFinalize (this);
}
}
// FIXME: calling this function 1,000,000 times (with a single character)
// is a good way to lose time (and hung NUnit)
// TODO: find the bug that hang NUnit
// TODO: optimize the function to call CryptHashData less often (bufferize)
public void HashCore (byte[] data, int start, int length)
{
byte[] toBeHashed = data;
if (start != 0) {
toBeHashed = new byte [length];
Array.Copy (data, start, toBeHashed, 0, length);
}
context.InternalResult = CryptoAPI.CryptHashData (handle, toBeHashed, (uint)length, 0);
GC.KeepAlive (this);
}
public byte[] HashFinal ()
{
byte[] hash = new byte [hashSize];
context.InternalResult = CryptoAPI.CryptGetHashParam (handle, CryptoAPI.HP_HASHVAL, hash, ref hashSize, 0);
GC.KeepAlive (this);
return hash;
}
}
}

View File

@@ -0,0 +1,28 @@
//
// Mono.Security.Cryptography.CapiRandomNumberGenerator
//
// Authors:
// Sebastien Pouliot (spouliot@motus.com)
//
// Copyright (C) 2003 Motus Technologies Inc. (http://www.motus.com)
//
using System;
using System.Security.Cryptography;
namespace Mono.Security.Cryptography {
class CapiRandomNumberGenerator : CapiContext {
public CapiRandomNumberGenerator () : base () {}
public CapiRandomNumberGenerator (CspParameters cspParams) : base (cspParams) {}
public void GenRandom (byte[] data)
{
uint l = (uint) data.Length;
InternalResult = CryptoAPI.CryptGenRandom (Handle, l, data);
}
}
}

View File

@@ -0,0 +1,29 @@
2004-04-13 Sebastien Pouliot <sebastien@ximian.com>
* CapiContext.cs: Better support to create key container (when non
existing). Added machine key container support. FxCop-ized.
* CapiHash.cs: FxCop-ized for CLS compliance and GC awareness.
* CapiRandomNumberGenerator.cs: Now use properties (not fields).
* CryptoAPI.cs: Changed some uint to int for easier CLS compliance.
2003-12-09 Patrik Torstensson <p@rxc.se>
* CryptAPI.cs: Added stdcall callconv to all Win32
calls, default in Mono is CDECL
2003-02-05 Sebastien Pouliot <spouliot@videotron.ca>
* CapiContext.cs: New. Class to acquire and release an
unmanaged context with CryptoAPI.
* CapiHash.cs: New. Base class to handle hash algorithms.
* CapiRandomNumberGenerator.cs: New. Base class to handle
random number generation.
* CryptoAPI.cs: Wrapper class around CryptoAPI.
* MD2.cs: Abstract class for Message Digest 2 (RFC1319).
* MD2CryptoServiceProvider.cs: Unmanaged MD2 implementation.
* MD4.cs: Abstract class for Message Digest 4 (RFC1320).
* MD4CryptoServiceProvider.cs: Unmanaged MD4 implementation.
* MD5CryptoServiceProvider.cs: Unmanaged MD5 implementation.
* RNGCryptoServiceProvider.cs: Unmanaged RNG implementation.
* MD2CryptoServiceProvider.cs: Unmanaged SHA1 implementation.

View File

@@ -0,0 +1,65 @@
//
// Mono.Security.Cryptography.CryptoAPI
//
// Authors:
// Sebastien Pouliot (spouliot@motus.com)
//
// Copyright (C) 2003 Motus Technologies Inc. (http://www.motus.com)
//
using System;
using System.Runtime.InteropServices;
namespace Mono.Security.Cryptography {
internal class CryptoAPI {
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptAcquireContextA (ref IntPtr phProv, string pszContainer, string pszProvider, int dwProvType, uint dwFlags);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptCreateHash (IntPtr hProv, uint Algid, IntPtr hKey, uint dwFlags, ref IntPtr phHash);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptDecrypt (IntPtr hKey, IntPtr hHash, bool Final, uint dwFlags, byte[] pbData, ref uint pdwDataLen);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptDestroyHash (IntPtr hHash);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptDestroyKey (IntPtr hKey);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptEncrypt (IntPtr hKey, IntPtr hHash, bool Final, uint dwFlags, byte[] pbData, ref uint pdwDataLen, uint dwBufLen);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptGenKey (IntPtr hProv, uint Algid, uint dwFlags, ref IntPtr phKey);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptGenRandom (IntPtr hProv, uint dwLen, byte[] pbBuffer);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptGetHashParam (IntPtr hHash, uint dwParam, byte[] pbData, ref uint pdwDataLen, uint dwFlags);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptHashData (IntPtr hHash, byte[] pbData, uint dwDataLen, uint dwFlags);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptImportKey (IntPtr hProv, byte[] pbData, uint dwDataLen, IntPtr hPubKey, uint dwFlags, ref IntPtr phKey);
[DllImport ("advapi32.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true)]
public static extern bool CryptReleaseContext (IntPtr hProv, uint dwFlags);
public static readonly uint CRYPT_VERIFYCONTEXT = 0xF0000000;
public static readonly uint CRYPT_NEWKEYSET = 0x00000008;
public static readonly uint CRYPT_DELETEKEYSET = 0x00000010;
public static readonly uint CRYPT_MACHINE_KEYSET = 0x00000020;
public static readonly uint CRYPT_SILENT = 0x00000040;
public static readonly int PROV_RSA_FULL = 1;
public static readonly uint HP_HASHVAL = 0x0002;
public static readonly int CALG_MD2 = 0x8001;
public static readonly int CALG_MD4 = 0x8002;
public static readonly int CALG_MD5 = 0x8003;
public static readonly int CALG_SHA1 = 0x8004;
// just so we don't have to add System.Runtime.InteropServices
// in every file
static public int GetLastError ()
{
return Marshal.GetLastWin32Error ();
}
}
}

View File

@@ -0,0 +1,40 @@
//
// MD2.cs - Message Digest 2 Abstract class
//
// Author:
// Sebastien Pouliot (spouliot@motus.com)
//
// (C) 2001-2003 Motus Technologies Inc. (http://www.motus.com)
//
using System;
using System.Security.Cryptography;
namespace Mono.Security.Cryptography {
public abstract class MD2 : HashAlgorithm {
protected MD2 ()
{
// MD2 hash length are 128 bits long
HashSizeValue = 128;
}
public static new MD2 Create ()
{
// for this to work we must register ourself with CryptoConfig
return Create ("MD2");
}
public static new MD2 Create (string hashName)
{
object o = CryptoConfig.CreateFromName (hashName);
// in case machine.config isn't configured to use any MD2 implementation
if (o == null) {
o = new MD2CryptoServiceProvider ();
}
return (MD2) o;
}
}
}

View File

@@ -0,0 +1,70 @@
//
// Mono.Security.Cryptography.MD2CryptoServiceProvider
//
// Authors:
// Sebastien Pouliot (spouliot@motus.com)
//
// Copyright (C) 2003 Motus Technologies Inc. (http://www.motus.com)
//
using System;
using System.Security.Cryptography;
namespace Mono.Security.Cryptography {
public class MD2CryptoServiceProvider : MD2 {
private CapiHash hash;
public MD2CryptoServiceProvider ()
{
hash = null;
}
~MD2CryptoServiceProvider ()
{
Dispose (true);
}
// 2 cases:
// a. we were calculing a hash and want to abort
// b. we haven't started yet
public override void Initialize ()
{
State = 0;
if (hash == null) {
hash = new CapiHash (CryptoAPI.CALG_MD2);
}
}
protected override void Dispose (bool disposing)
{
if (hash != null) {
hash.Dispose ();
hash = null;
// there's no unmanaged resources (so disposing isn't used)
}
}
protected override void HashCore (byte[] rgb, int ibStart, int cbSize)
{
if (State == 0)
Initialize ();
if (hash == null)
throw new ObjectDisposedException ("MD2CryptoServiceProvider");
State = 1;
hash.HashCore (rgb, ibStart, cbSize);
}
protected override byte[] HashFinal ()
{
if (hash == null)
throw new ObjectDisposedException ("MD2CryptoServiceProvider");
State = 0;
byte[] result = hash.HashFinal ();
Dispose (false);
return result;
}
}
}

Some files were not shown because too many files have changed in this diff Show More